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

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

6
ทำไมบางครั้งเทอร์มินัลอัตโนมัติจึงไม่แนะนำอะไรเลยสำหรับคำสั่ง `services '
บางครั้งเมื่อฉันพิมพ์คำสั่งบนเทอร์มินัลการเติมข้อความอัตโนมัติของเทอร์มินัลไม่ทำงานแม้ว่าคำสั่งของฉันจะไม่ผิด ตัวอย่างเช่นลองดูที่: sudo service vsftpd statussudo และบริการไม่มีปัญหาใด ๆ ผมหมายถึงเมื่อคุณพิมพ์sud + tabขั้วขอแนะนำให้คุณsudoหรือฉันพิมพ์Servi + tabขั้วที่สมบูรณ์แบบที่จะให้บริการ แต่สำหรับ vsftpd ฉันไม่ได้รับคำแนะนำใด ๆ มีวิธีที่จะพูดว่า "ขั้วโปรดบอกฉันข้อเสนอแนะใด ๆ !!?"

2
การใช้คำสั่งสมบูรณ์คืออะไร
ในขณะที่รัน completeคำสั่งบน gnome-terminal ของฉันมันจะแสดงคำสั่งบางคำสั่งมันคืออะไร? และการใช้completeคำสั่งคืออะไร? $ complete complete -F _minimal complete -F _filedir_xspec oodraw complete -F _filedir_xspec elinks complete -F _filedir_xspec freeamp complete -F _longopt split complete -F _longopt sed complete -F _longopt ld complete -F _longopt grep complete -F _service /etc/init.d/vboxweb-service complete -F _service /etc/init.d/vboxballoonctrl-service complete -F _service /etc/init.d/rc …

6
ping หลาย IP ที่ใช้ bash หรือไม่
ฉันมี 10 หมายเลข IP ที่ฉันต้อง ping ทุกวันเพื่อตรวจสอบฉันจะทำอย่างไรโดยใช้ BASH script เพื่อให้ฉันสามารถทำงานนั้นโดยอัตโนมัติโดยใช้ cron ฉันต้องการสคริปต์ BASH เท่านั้น ขอขอบคุณ.
17 bash  ip  ping 

1
Bash: รับชื่อไดเรกทอรีการทำงานปัจจุบัน แต่ไม่ใช่เส้นทางแบบเต็ม
ฉันรู้ว่าpwdจะพิมพ์เส้นทางแบบเต็มของไดเรกทอรีการทำงานปัจจุบัน แต่ฉันต้องการพิมพ์เฉพาะชื่อของไดเรกทอรี มีคำสั่งง่ายๆที่จะทำโดยไม่ต้องแยกวิเคราะห์pwd?

1
Bash สำหรับลูปที่มีช่วง {# .. #}
{# .. #} สร้างลำดับของตัวเลขหรือตัวอักษรคล้ายกับช่วง () ใน Python ถ้าฉันรันคำสั่งecho {1..5}ในบรรทัดคำสั่งฉันมี: 1 2 3 4 5 แต่สคริปต์ทุบตีต่อไปนี้ใช้ไม่ได้ตามที่คาดไว้ for i in {1..3}; do echo "Iteration $i" done จะพิมพ์: Iteration {1..3} ทำไม? * ฉันสามารถใช้seqแต่ฉันอ่านมันล้าสมัย ( http://www.cyberciti.biz/faq/bash-for-loop/ )

2
'rm -r ~' ทำอะไรในโฮมไดเร็กตอรี่ของฉัน?
gedit สร้างไฟล์สำรองที่ซ่อนอยู่ซึ่งลงท้ายด้วย '~' ฉันต้องการทำการล้างข้อมูลซ้ำของแผนผังไดเรกทอรีของฉัน คำสั่งrm *~จะลบไฟล์ในตัวเครื่องทั้งหมดที่ลงท้ายด้วย '~' ผมคิดว่าrm -r *~ .จะลบไฟล์ทั้งหมดในต้นไม้ทั้งหมด แต่ผม rm -r ~typo-ED มีข้อความบางไดเรกทอรีไม่สามารถลบได้และฉันออกจากคำสั่ง คำถามคือ: ฉันได้ลบอะไรไปแล้ว? ฉันสังเกตเห็นว่าการกำหนดค่า Filezilla ของฉันหายไป คำสั่งนี้ลบไดเรคทอรี่ที่ซ่อนอยู่ทั้งหมดออกจากโฮม dir หรือไม่

8
ลบไฟล์ แต่ไม่รวมไฟล์ทั้งหมดในรายการ
ฉันจำเป็นต้องล้างโฟลเดอร์เป็นระยะ ฉันได้รับ filelist ที่มีข้อความอนุญาตให้ใช้ไฟล์ใดได้บ้าง ตอนนี้ฉันต้องลบไฟล์ทั้งหมดที่ไม่ได้อยู่ในไฟล์นี้ ตัวอย่าง: dont-delete.txt: dontdeletethisfile.txt reallyimportantfile.txt neverdeletethis.txt important.txt โฟลเดอร์ของฉันทำความสะอาดประกอบด้วยสิ่งนี้: ls /home/me/myfolder2tocleanup/: dontdeletethisfile.txt reallyimportantfile.txt neverdeletethis.txt important.txt this-can-be-deleted.txt also-waste.txt never-used-it.txt ดังนั้นควรลบไฟล์นี้: this-can-be-deleted.txt also-waste.txt never-used-it.txt ฉันค้นหาบางอย่างเพื่อสร้างคำสั่งลบพร้อมตัวเลือกเพื่อแยกไฟล์บางไฟล์ที่มีให้

2
เครื่องหมายทับคู่หมายถึงอะไรใน `$ {f // / _} '
ฉันกำลังเรียนรู้ Bash และฉันต้องการแทนที่อักขระช่องว่างด้วยอักขระ "ไม่ว่าง" อื่น ๆ ฉันกำลังใช้forลูป: for f in *\ *; do mv "$f" "${f// /_}"; done คำถามของฉันคือทำไมทับสองและช่องว่างใน${f// /_}? อะไร${f// /_}ทำอย่างไร
17 bash 

2
ประวัติศาสตร์ grep“ keyword2find” ไม่ได้ให้ประวัติไม่ จำกัด
คำสั่ง history | grep "keyword2find" ไม่ได้ให้ประวัติไม่ จำกัด ที่ฉันพิมพ์ใน terminal เป็นต้นไปฉันติดตั้ง Ubuntu ฉันต้องการที่จะเห็นพวกเขาทั้งหมดโดยไม่ต้องช่วงเวลา

4
เปลี่ยนเชลล์จาก zsh เป็น bash
เว็บเซิร์ฟเวอร์ของฉันถูกดัดแปลงโดยคนที่ใช้ zsh shell ฉันรู้สึกสะดวกสบายมากขึ้นเมื่อใช้ bash shell เนื่องจากเป็นค่าเริ่มต้นที่มาพร้อมกับ Ubuntu และ OS X (ระบบปฏิบัติการหลักสองระบบที่ฉันใช้) แต่คำถามนี้เน้นไปที่เซิร์ฟเวอร์ Ubuntu ฉันมี 4 เว็บไซต์ที่ทำงานบนเว็บเซิร์ฟเวอร์นี้ฉันใช้ byobu ฉันใช้ tmux ฉันใช้ ruby ​​/ ruby ​​บนราง, node.js, apache, daemons สองสามตัว หากฉันเปลี่ยนรูทเชลล์ปัจจุบันจาก zsh ไปเป็น bash อาจมีผลข้างเคียงเชิงลบใด ๆ ที่อาจเป็นผลมาจากสวิตช์นี้หรือไม่? ตัวอย่างเช่นกระบวนการจะถูกฆ่าเนื่องจากกระบวนการหลัก (เชลล์) ถูกเปลี่ยนไปหรือไม่
17 command-line  bash  zsh 

9
การเปลี่ยนชื่อไฟล์ภาพจำนวนมากด้วยการทุบตี
ฉันต้องเปลี่ยนชื่อประมาณ 70,000 ไฟล์ ตัวอย่างเช่น: จากsb_606_HBO_DPM_0089000ถึงsb_606_dpm_0089000ฯลฯ ช่วงเลขที่ไปจากการ0089000 0163022เป็นเพียงส่วนแรกของชื่อที่ต้องเปลี่ยน ไฟล์ทั้งหมดอยู่ในไดเรกทอรีเดียวและถูกกำหนดหมายเลขตามลำดับ (ลำดับรูปภาพ) ตัวเลขจะต้องไม่เปลี่ยนแปลง เมื่อฉันลองทำสิ่งนี้มันจะทำให้ฉันหงุดหงิดว่า 'รายการอาร์กิวเมนต์ยาวเกินไป' แก้ไข: ฉันพยายามเปลี่ยนชื่อไฟล์ครั้งแรกด้วยmv: mv sb_606_HBO_DPM_0089000.dpx sb_606_dpm_0089000.dpx จากนั้นฉันลองเปลี่ยนชื่อช่วง (ฉันเรียนรู้ที่นี่เมื่อสัปดาห์ที่แล้วว่าจะย้ายโหลดไฟล์อย่างไรฉันคิดว่าไวยากรณ์เดียวกันอาจใช้งานได้กับการเปลี่ยนชื่อไฟล์ ... ) ฉันคิดว่าฉันลองทำสิ่งต่อไปนี้ (หรืออะไรทำนองนั้น): mv sb_606_HBO_DPM_0{089000..163023}.dpx sb_606_dpm_0{089000..163023}.dpx

1
ฉันจะดูประวัติในเทอร์มินัลสำหรับวันที่ระบุได้อย่างไร
ฉันจะดูประวัติเทอร์มินัลสำหรับวันที่ระบุได้อย่างไร ตัวอย่างเช่นวันนี้เป็นวันที่ 4 เมษายนและฉันต้องการดูประวัติวันที่ 31 มีนาคม


3
เชลล์ล็อกอินถูกกำหนดไว้ที่ไหน?
ผมอ่านความแตกต่างระหว่างที่นี่sudo -i/-s หลังจากใช้คำสั่งshoptจะมีการบันทึกไว้ว่า all ( sudo su/sudo -i/sudo -s) $SHELLจะให้ผลลัพธ์เดียวกัน แต่shoptผลลัพธ์ของคำสั่งจะแตกต่างกัน ดังนั้นเข้าสู่ระบบและเปลือกเข้าสู่ระบบที่ไม่ได้กำหนดไว้อย่างไร จากการที่shoptได้รับผลหรือไม่ ทำไมมันไม่เกี่ยวข้องกับ$SHELL? sudo su givinv@87-109:~$ sudo su root@87-109:/home/givinv# root@87-109:/home/givinv# root@87-109:/home/givinv# shopt -q login_shell && echo 'Login shell' || echo 'No login shell' No login shell root@87-109:/home/givinv# echo $SHELL /bin/bash root@87-109:/home/givinv# root@87-109:/home/givinv# exit givinv@87-109:~$ sudo -i givinv@87-109:~$ sudo -i …

7
วิธีการจับเปอร์เซ็นต์การใช้งานดิสก์ของพาร์ติชันเป็นจำนวนเต็ม?
ฉันต้องการวิธีการจับการใช้งานดิสก์ของพาร์ติชันเฉพาะโดยใช้ไดเรกทอรีที่ติดตั้งพาร์ติชัน ผลลัพธ์ควรเป็นจำนวนเต็มโดยไม่มีช่องว่างภายในหรือสัญลักษณ์ต่อไปนี้เนื่องจากฉันต้องการบันทึกไว้ในตัวแปร ฉันเคยใช้df --output=pcent /mount/pointแต่จำเป็นต้องตัดแต่งเอาต์พุตเนื่องจากมีส่วนหัวที่ไม่จำเป็นการเว้นวรรคเดียวก่อนค่าและสัญลักษณ์% ตามค่าดังนี้: Use% 83% ในกรณีนี้ผลลัพธ์ที่ฉันต้องการก็83คือ ฉันไม่ได้ตระหนักถึงข้อเสียเปรียบใด ๆ ที่จะใช้ผลลัพธ์ของdfแต่ฉันยินดีที่จะยอมรับวิธีการอื่น ๆ ที่ไม่พึ่งพา

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