คำถามติดแท็ก bash

Bash คือ Bourne Again SHell ผู้สืบทอดมาจาก Unix sh (shell) คลาสสิก

3
Bash พรอมต์บน Ubuntu - FQDN (\ H) เหมือนกับชื่อโฮสต์ (\ h)
เรามีสภาพแวดล้อมที่แยกต่างหากในที่ทำงานของฉันเพื่อการพัฒนาการทดสอบการรวมและการจัดเตรียม ภายใน Envs เหล่านั้นเราได้มากเกินไปในชื่อโฮสต์ของ DNS - เช่นในสภาพแวดล้อม dev ที่เครื่องเว็บหลักที่เรียกว่าและในสภาพแวดล้อมการทดสอบเครื่องเว็บหลักคือweb1.dev.example.comweb1.test.example.com เพื่อแยกความแตกต่างระหว่างเครื่องในสภาพแวดล้อมที่แตกต่างกันฉันต้องการกำหนด bash prompts เพื่อแสดง FQDN แทนที่จะเป็นเพียงชื่อโฮสต์ ดีและดี ฉันควรจะสามารถที่จะแทนที่\hด้วย\Hใน$PS1ใช่มั้ย? อืมมม พวกเขาแสดงสิ่งเดียวกัน me@web1:~$ hostname web1 me@web1:~$ hostname -f web1.dev.example.com me@web1:~$ export PS1="\[\u@\h: \w\]\$ " me@web1: ~$ export PS1="\[\u@\H: \w\]\$ " me@web1: ~$ ใน/etc/hostnameฉันมีแค่ชื่อโฮสต์ ( web1) hostnameและhostname -fทั้งสองกลับผลลัพธ์ที่ถูกต้อง ( "web1" และ "web1.test.example.com" ตามลำดับ) /etc/hostsและผมได้มีรายการที่ถูกต้องใน …
14 ubuntu  bash  fqdn 

7
มีใครพบเทอร์มินัลเชลล์ (เช่น bash) สำหรับ Windows และ OS X หรือไม่
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันส่วนใหญ่ใช้ 'git-bash' ซึ่งมาพร้อมกับการติดตั้ง Windows ของ Git vcs ฉันคิดว่ามันเป็นสิ่งเดียวกับที่มาพร้อมกับ Cygwin มันใช้งานได้ดีในทางเทคนิค แต่ UI ดูด: ต้องคลิกขวาที่แถบหัวเรื่องและไปที่คุณสมบัติเพื่อเปลี่ยนความกว้างของหน้าต่าง ที่น่ารำคาญที่สุด ... การคัดลอกและวางและไฮไลต์ด้วยเมาส์นั้นยุ่งยากอย่างเท่าเทียมกัน ในทางตรงกันข้ามแอป Terminal ที่มาพร้อมกับ OS X จะจัดการสิ่งเหล่านี้ด้วย aplomb และทำให้สะดวกสบายในการใช้งาน คุณสามารถลากและวางไฟล์ลงบนมันและมันจะวางพา ธ ของไฟล์ในเคอร์เซอร์ของคุณ! ฉันได้ลองด้วย: http://sourceforge.net/projects/win-bash http://www.steve.org.uk/Software/bash/ http://www.hamiltonlabs.com/cshell.htm สิ่งเหล่านี้ไม่มีการคัดลอกและวางข้อความโดยไม่ต้องคลิกขวาที่ยุ่งยาก ฉันกำลังมองหาเปลือก Unix ที่มีรสชาติเป็นพิเศษใน Windows ดังนั้นฉันไม่ต้องใช้เชลล์ที่แตกต่างกันระหว่าง dev ที่บ้านของฉัน (Windows), เซิร์ฟเวอร์สด (Linux) หรือ dev ที่สำนักงาน …
14 windows  bash  shell  terminal 

2
แก้ไขข้อผิดพลาดในการแสดง bash line-wrapping & backspace ใน Mac OS X หรือไม่
เมื่อฉันเปิด Terminal (บน Mac OS X 10.5.8) และพิมพ์บรรทัดคำสั่งแบบยาว: ... ข้อความไม่ได้ไปที่บรรทัดถัดไปเมื่อมันล้อมรอบ: นอกจากนี้บางครั้งเมื่อฉันพิมพ์คำสั่งแล้วจึงถอยกลับ (หรือลูกศรขึ้นหรือ ^ U): ... เส้นทั้งหมดไม่ถูกลบและฉันไม่สามารถย้อนกลับได้เกินจุดที่แน่นอน: นี่เป็นข้อผิดพลาด bash ที่รู้จัก (บน Mac OS X) หรือไม่ มีวิธีแก้ไขไหม? อัปเดต: Julianoถูกต้องปัญหาเกิดจากการลบลำดับรหัสคอนโซลในตัวแปร PS1 ของฉันไม่ถูกต้อง การเปลี่ยนแปลง: export PS1='\[\033[1;34m\]\$\]\033[0m\] ' ... ในของฉัน.bashrcถึง: export PS1='\[\033[1;34m\]\$\[\033[0m\] ' ... แก้ไขปัญหา
14 mac-osx  bash 

9
Bash ส่วนย่อยเพื่อย้ายไฟล์ทั้งหมดในไดเรกทอรีไปยังไดเรกทอรีนั้น
ฉันมีไดเรกทอรีที่มีไฟล์และไดเรกทอรีจำนวนมากอยู่ในนั้น เพื่อเป็นระเบียบเรียบร้อยฉันจะใส่ไฟล์เหล่านั้นลงในไดเรกทอรีดังนั้นฉันจะทำสิ่งนี้: $ ls | wc -l 123 $ mkdir new_directory $ mv * ./new_directory แต่ที่เห็นได้ชัดว่าจะไม่ทำงานเพราะก็จะพยายามที่จะย้ายเข้ามาnew_directory new_directoryมีวิธีง่ายๆในการทำสิ่งที่ฉันต้องการในหนึ่งบรรทัดโดยไม่ต้องคัดลอกและวางไฟล์และไดเรกทอรีทั้งหมดในไดเรกทอรีนั้นหรือไม่?
14 linux  unix  bash 

2
ฉันจะได้รับส่วนที่เหลือหลังจากดึงรายการแยกวิเคราะห์โดยใช้ getopts ได้อย่างไร
ฉันต้องการแยกอาร์กิวเมนต์สำหรับสคริปต์ทุบตีโดยใช้ getopts แต่ต้องการเข้าถึง args ที่เหลือซึ่งไม่รวมอยู่ในรายการตัวเลือก ตัวอย่างเช่นถ้าฉันมีสาย: % script -a -b param -c param -d other arguments here ฉันจะมี: while getopts "ab:c:d" opt ; do . done วิธีที่ง่ายที่สุดในการรับ "ข้อโต้แย้งอื่น ๆ ที่นี่" ซึ่งควรได้รับการประมวลผลโดย getopts คืออะไร?
14 bash 

4
ไวยากรณ์ Linux Bash: ความหมายของ &&, \, และ -
' &&', ' \' และ ' -' หมายถึงอะไรในตอนท้ายของคำสั่ง bash? โดยเฉพาะอย่างยิ่งฉันเจอชุดของบรรทัดต่อไปนี้ที่ควรเพิ่มพับลิกคีย์ให้กับตัวจัดการแพ็กเกจความถนัดของ Ubuntu ตัวละครเหล่านี้ใช้สำหรับอะไร gpg - keyserver keyserver.ubuntu.com --recv 26C2E075 && \ gpg - ส่งออก - เกราะ 26C2E075 | sudo apt-key add - && \ sudo apt-get update
14 linux  bash 


3
วิธีเพิ่มโฮสต์ที่รู้จัก SSH ใน bash script
ฉันกำลังสร้างสคริปต์ทุบตีเพื่อจัดเตรียมเซิร์ฟเวอร์ใหม่ที่ฉันสามารถปรับใช้เว็บแอปพลิเคชันให้ สิ่งหนึ่งที่ผมมักจะต้องทำคือการเป็น GitHub ssh git@github.comเป็นที่รู้จักกันโดยใช้โฮสต์ ฉันจะทำให้กระบวนการนี้เป็นแบบอัตโนมัติโดยใช้สคริปต์ทุบตีและทำแบบ idempotent ได้อย่างไร
13 ssh  bash 

4
ฉันจะจำคำสั่งเฉพาะจากประวัติคำสั่งได้อย่างไรโดยไม่ต้องดำเนินการ
ยกตัวอย่างเช่นในทุบตีฉันสามารถพิมพ์ซึ่งจะเรียกใช้คำสั่งสุดท้ายที่ผมเริ่มต้นด้วยการพิมพ์!xyzxyz ฉันจะเรียกใช้คำสั่งสุดท้ายที่ฉันพิมพ์ขึ้นต้นด้วยxyzแต่ไม่ดำเนินการได้อย่างไร เช่นเพื่อให้ฉันสามารถเปลี่ยนพารามิเตอร์ก่อนที่จะดำเนินการ ....
13 linux  bash 

3
grep ทำตัวต่างกันกับ Fedora กับ Ubuntu
ดังนั้นเมื่อฉันเรียกใช้สิ่งนี้ใน Fedora ฉันเห็นสิ่งนี้: $ ls hmm_data/indivA12_AATAAG/refs/par1/ 2R-orths.alleles 2R-ref.alleles $ ls hmm_data/indivA12_AATAAG/refs/par1/ | grep -F '-ref.alleles' 2R-ref.alleles แต่เมื่อฉันทำงานบน Ubuntu (ข้อมูลเดียวกัน) ฉันไม่ได้รับผลลัพธ์ใด ๆ จาก grep: $ ls hmm_data/indivA12_AATAAG/refs/par1/ 2R-orths.alleles 2R-ref.alleles $ ls hmm_data/indivA12_AATAAG/refs/par1/ | grep -F '-ref.alleles' ความคิดใด ๆ ที่อาจเกิดขึ้น? ฉันจะหาบางสิ่งที่จะทำงานเหมือนกันทั้งสองระบบได้อย่างไร
13 ubuntu  bash  fedora  grep 

5
chsh: การรับรองความถูกต้อง PAM ล้มเหลว
ฉันต้องการเปลี่ยนเชลล์เริ่มต้น env และเรียกใช้chsh -s /bin/zshในฐานะผู้ใช้รูท แต่ข้อความแสดงข้อผิดพลาดปรากฏขึ้น: chsh: PAM authentication failed. ฉันพบกระทู้นี้http://ubuntuforums.org/showthread.php?t=1702833 แต่คำตอบไม่ได้แก้ปัญหาของฉัน ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม นี่คือเนื้อหาของ /etc/pam.d/chsh # # The PAM configuration file for the Shadow `chsh' service # # This will not allow a user to change their shell unless # their current one is listed in /etc/shells. This …
13 linux  bash  shell 

2
อะไรคือความแตกต่างระหว่าง "sudo -i" และ "sudo bash -l"
มีคำถามล่าสุดเกี่ยวกับ sysadmins หลายตัวที่ทำงานเป็นรูทและsudo bash -lถูกอ้างอิง ผมค้นหานี้ใน google และ SE แต่ผมไม่เข้าใจความแตกต่างระหว่างและsudo bash -lsudo -i จากหน้า man สำหรับ bash และ sudo ดูเหมือนว่าความแตกต่างอาจเป็นว่าsudo bash -l~ / .bash_profile, ~ / .bash_login และ ~ / .profile และ ~ / .bash_logout ของผู้ใช้ root แต่จากการทดสอบตัวเองดูเหมือนว่า มันรัน. bashrc ของผู้ใช้ปกติและไม่ใช่รูทหนึ่ง ฉันอาจเข้าใจผิดว่าผู้ใช้คนใดที่นิพจน์ ~ กำลังอ้างถึงในหน้าคู่มือ ชี้แจงถึงความแตกต่างและสถานการณ์การใช้งานจะได้รับการชื่นชม
13 linux  bash  sudo  root 

3
คาดว่าจะหมดเวลาในการเขียนสคริปต์ Bash
ฉันจะเพิ่มการหมดเวลาสำหรับ "คาดหวัง" ในสคริปต์ต่อไปนี้ได้อย่างไร ฉันต้องการตั้งค่าเป็น 120 วินาที #!/bin/bash HOST="localhost" USER="myuname" PASS="mypassword" VAR=$(expect -c " spawn ssh $USER@$HOST expect \"password:\" send \"$PASS\r\" expect \"\\\\$\" send \"ls\r\" expect -re \"$USER.*\" send \"logout\" ") echo "===============" echo "$VAR"
13 bash  expect 

3
ฉันจะใช้ sudo เพื่อตรวจสอบว่ามีไฟล์อยู่ได้อย่างไร?
ฉันต้องการตรวจสอบว่ามีไฟล์อยู่หรือไม่ [ -f /path/to/file/ ] อย่างไรก็ตามฉันใช้คำสั่งนี้ในฐานะผู้ใช้ทั่วไปและไฟล์เป็นของ root ฉันจะใช้ sudo เพื่อทำสิ่งนี้ได้อย่างไร sudo [ -f /path/to/file/ ] ไม่ทำงาน, ไม่เป็นผล.
13 linux  bash  sudo 

4
เปลี่ยนเส้นทางการส่งออกของคำสั่งเวลาในยูนิกซ์เป็นตัวแปรในทุบตี?
ฉันแค่อยากจะจับเอาท์พุทของคำสั่งเวลาเช่น: X=$(time ls) หรือ $(time ls) | grep real ฟังก์ชั่นเวลาถ่มน้ำลายไปที่คอนโซลแม้ว่า ฉันจะทำสิ่งนี้ได้อย่างไร
13 linux  bash 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.