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

Bash (Bourne-Again SHell) เป็นเชลล์ที่ใช้ในอินเตอร์เฟสบรรทัดคำสั่งของ Ubuntu ตามค่าเริ่มต้น

3
การใช้วงเล็บ `() 'ในการกำหนดฟังก์ชันเชลล์คืออะไร
ฟังก์ชั่นถูกกำหนดเป็น: do_something () { do it } ฉันสามารถเข้าใจชื่อ 'do_something' และวงเล็บปีกกาเพื่อใส่รหัสแอ็คชัน แต่ฉันไม่สามารถเข้าใจว่าจุดประสงค์ของ()ที่นี่คืออะไรเนื่องจากไม่มีพารามิเตอร์ที่มีชื่อในสคริปต์ Bash มันอาจจะดีกว่าและตรงไปตรงมาเพื่อกำหนดเป็น do_something { do it } ซึ่งไม่ขัดแย้งกับไวยากรณ์ปัจจุบันและยิ่งประกาศว่าไม่มีพารามิเตอร์ที่มีชื่อ การใช้งานของ()ที่นี่คืออะไร?
20 bash 

3
'apt-get install update' ทำอะไร
ฉันเห็นตัวอย่างนี้ในคำแนะนำในการติดตั้ง: $ apt-get install update ฉันรู้ว่าสิ่งapt-get install XXXXใดและฉันรู้ว่าapt-get updateทำอะไรแต่ฉันไม่สามารถหาข้อมูลใด ๆ เกี่ยวกับสิ่งที่งบรวมนี้ทำ มันทำอะไร?
20 command-line  apt  bash 

3
ฉันจะส่งผ่านเอาต์พุตของคำสั่งเดียวไปยังหลายคำสั่งได้อย่างไร
การใช้การทดแทนกระบวนการหรือโดยการจัดกลุ่มและการไพพ์คุณสามารถส่งเอาต์พุต ( stdout ) ชุดคำสั่งเป็นอินพุตสำหรับคำสั่งอื่นได้ ตัวอย่าง: wc < <(echo hi;echo bye) (echo hi; bye) | wc แต่มีตรงกันข้ามไหม นั่นคือมีวิธีส่งเอาต์พุตของคำสั่งเดียวเป็นอินพุตสำหรับคำสั่งอื่น ๆ ในบรรทัดเดียวหรือไม่? สิ่งที่ต้องการ : cat testfile | wc | tail -n 5 ( อย่าใช้ท่ออย่างแท้จริง ) ที่นี่ฉันพยายามที่จะส่งออกcat testfileไปยังทั้งสองwcและtail -n 5 อีกตัวอย่างหนึ่งคือ: ( เพื่อให้ได้คำสุดท้ายของประโยค ) echo "some random words"| wc -c | cut -f(out …

2
ฉันสามารถเปิดใช้งาน bash-completion สำหรับคำสั่ง apt ใหม่ได้หรือไม่?
aptคำสั่งใหม่ที่มีอยู่ใน Ubuntu ตั้งแต่ 14.04 ดูเหมือนจะเป็นฟังก์ชั่นการใช้งานที่มีประโยชน์จริง ๆapt-getและapt-cacheแต่เวอร์ชันปัจจุบันbash-completionไม่ทราบเกี่ยวกับมัน ... ซึ่งทำให้ใช้งานได้ยากขึ้นมาก มีวิธีที่รวดเร็วในการเพิ่มฟังก์ชันนี้ใน Bash เพื่อให้aptคำสั่งใช้งานง่ายหรือไม่?


5
วิธีการแสดงชื่อของไฟล์ที่ฉันกำลังแก้ไขด้วย vim ในชื่อ terminal?
ฉันกำลังแก้ไขไฟล์หลายไฟล์ที่อยู่ในโฟลเดอร์เดียวกันในหลายแท็บในเทอร์มินัลเดียว pwd(ไดเรกทอรีที่ฉันใช้งานอยู่) จะปรากฏที่ด้านบนของส่วนหัวของเทอร์มินัล แต่ไม่ใช่ชื่อของไฟล์ที่ฉันกำลังแก้ไข มันเกิดความสับสนเมื่อทำงานกับหลาย ๆ ไฟล์ในไดเรกทอรีเดียวกัน pwdวิธีการแสดงชื่อของไฟล์ปัจจุบันที่ด้านบนของอาคารที่นอกเหนือไปจาก ฉันกำลังทำงานvimใน bash shell ในgnome-terminalวันที่ 12.04 LTS

3
ฉันจะหาข้อมูลอ้างอิงที่สมบูรณ์สำหรับตัวแปร $ PS1 ได้จากที่ใด
ตัวแปร PS1 เริ่มต้นบนเครื่องของฉัน (Kubuntu 13.10) คือ: \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ฉันกำลังมองหาข้อมูลอ้างอิงสำหรับการทำงานของตัวแปร $ PS1 ที่อย่างน้อยช่วยให้ฉันเข้าใจตัวแปร PS1 ข้างต้น
20 bash  ps1 

3
ทำไมคำสั่ง pssh ไม่ทำงาน
ฉันมีแพ็คเกจ pssh ติดตั้งในระบบ Ubuntu 11.10 x64 ของฉัน และฉันสามารถรันโปรแกรมผ่านการโทรแบบขนาน - ssh อย่างไรก็ตาม pssh ให้ฉัน $ pssh No command 'pssh' found, did you mean: Command 'bssh' from package 'avahi-ui-utils' (universe) Command 'cssh' from package 'clusterssh' (universe) Command 'ssh' from package 'openssh-client' (main) Command 'posh' from package 'posh' (universe) Command 'pdsh' from package …

5
รูปแบบ (และที่) จะเปลี่ยนรูปแบบ 'user @ host $:' ใน gnome-terminal ได้อย่างไร
เมื่อฉันเริ่มต้นเทอร์มินัลใน Ubuntu ฉันเห็น: ilya@HOST:~$ ฉันต้องการเพิ่มการประทับเวลาในสิ่งนี้: 2011-10-09T09:32:00 ilya@HOST:~$ ฉันจะกำหนดค่าสิ่งนี้ได้อย่างไร

4
ฉันจะนำไพพ์อินพุตไปยังคำสั่ง ls ได้อย่างไร?
เมื่อฉันพิมพ์บางสิ่งที่ชอบ: find . -name *foo* | ls -lah มันจะส่งกลับผลลัพธ์เช่นเดียวกับlsคำสั่งธรรมดาราวกับว่ามันไม่มีอินพุต อย่างไรก็ตาม: ls -lah $( find . -name *foo* ) ทำงานได้ดี แต่เฉพาะเมื่อfindคำสั่งมีผลลัพธ์ เป็นไปได้ที่จะท่อไปls?
20 bash  command-line  ls  pipe 

2
จะค้นหารุ่นของเครื่อง Ubuntu จากระยะไกลได้อย่างไร
ฉันมีมากกว่า 60 ถึง 80 ระบบที่ใช้งาน Ubuntu บางตัวมาพร้อมกับเวอร์ชัน 8.04 และบางตัวมาพร้อมกับเวอร์ชันล่าสุด 10.10 ตอนนี้เรากำลังอยู่ในขั้นตอนการอัพเกรดอูบุนตูที่เก่ากว่าทั้งหมดไปเป็นเวอร์ชั่นที่ใหม่กว่า เป็นการยากที่จะเปิดทุกระบบ Ubuntu และจดบันทึกรุ่น Ubuntu ที่เก่ากว่าแล้วอัปเกรด ฉันมีที่อยู่ IP ของเครื่องเหล่านี้ทั้งหมดในไฟล์ข้อความ ดังนั้นฉันกำลังมองหาสคริปต์ทุบตีง่าย ๆ ซึ่งจะทำให้งานเป็นไปโดยอัตโนมัติ ฉันคาดหวังว่าผลลัพธ์จะเป็นดังนี้: 172.29.34.40 ubuntu 10.04 172.29.34.41 ubuntu 8.04 172.29.34.42 ubuntu 8.10 และอื่น ๆ .. ทุกคนสามารถช่วยฉันได้ไหม
20 bash  scripts 

2
ฉันสามารถเรียกใช้คำสั่งภายในคำสั่งอื่นได้หรือไม่?
ฉันสามารถเรียกใช้คำสั่งภายในคำสั่งอื่นเช่น: twidge update date dateการเป็นคำสั่ง bash dateอย่างมีประสิทธิภาพtwidgeจะอัพเดท twitter ด้วยวันที่วันนี้ twidgeเป็นไคลเอนต์ทวิตเตอร์ตาม CLI

2
การสร้างไฟล์ที่มีเนื้อหาบางส่วนใน Shell scripting
ฉันยังใหม่กับ Shell Scripting และฉันต้องการสร้างไฟล์ใหม่ภายในสคริปต์และต้องการเพิ่มเนื้อหาแล้วปิดมัน ไม่ควรนำอาร์กิวเมนต์จากผู้ใช้ ทุกอย่างจากเส้นทางและเนื้อหาถูกกำหนดไว้ล่วงหน้า ฉันจะทำมันได้อย่างไร
20 bash 

8
ฉันจะจัดเรียงตามขนาดที่มนุษย์สามารถอ่านได้เป็นตัวเลขได้อย่างไร
ตัวอย่างเช่นฉันมีคำสั่งที่แสดงว่าโฟลเดอร์พื้นที่ใช้เวลาเท่าใด du folder | sort -n มันใช้งานได้ดี แต่ฉันต้องการรูปแบบที่มนุษย์อ่านได้ du -h folder แต่ถ้าฉันทำมากกว่าที่ฉันไม่สามารถจัดเรียงเป็นตัวเลขได้ วิธีการเข้าร่วมdu folderและdu -h folderดูผลลัพธ์เรียงเป็นdu folderแต่มีคอลัมน์แรกจากdu -h folder ปล. นี่เป็นเพียงตัวอย่าง เทคนิคนี้อาจมีประโยชน์มากสำหรับฉัน (ถ้าเป็นไปได้)
20 bash  sort 

6
ในระหว่างความพยายาม chroot ฉันได้รับข้อผิดพลาดนี้:“ chroot: ล้มเหลวในการเรียกใช้คำสั่ง '/ bin / bash': ข้อผิดพลาดการจัดรูปแบบ Exec”
ฉันทำตามคำแนะนำของบทช่วยสอนนี้HOWTO: ล้างข้อมูลและติดตั้ง Grub 2 ใหม่จาก Live CDเมื่อฉันพบข้อผิดพลาดในขั้นตอนที่ 1 เมื่อฉันเปิดใช้งานคำสั่ง sudo chroot /mnt/temp ข้อผิดพลาดดังต่อไปนี้: chroot: failed to run command `/bin/bash': Exec format error สิ่งนั้นมาจากไหน ฉันจะผ่านได้อย่างไร
20 bash  chroot 

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