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

เชลล์เป็นอินเตอร์เฟสบรรทัดคำสั่งของ Unix คุณสามารถพิมพ์คำสั่งในเชลล์แบบโต้ตอบหรือเขียนสคริปต์เพื่อทำงานอัตโนมัติ ใช้แท็กนี้สำหรับคำถามที่ใช้กับ / bin / sh และเชลล์ที่เข้ากันได้มากที่สุด (ash, bash, ksh, zsh, …) สำหรับเชลล์สคริปต์ที่มีข้อผิดพลาดโปรดตรวจสอบใน http://shellcheck.net ก่อนโพสต์ที่นี่

6
คำสั่ง Linux สามารถมีอักษรตัวใหญ่ได้หรือไม่
คำสั่ง Linux สามารถมีอักษรตัวใหญ่ได้หรือไม่ ฉันรู้ว่ามันรองรับ แต่ฉันต้องการแน่ใจว่ามันเป็น "ปัญหา" หรือพิจารณาว่า "ไม่ใช่สิ่งที่ดี"?

2
xargs: การใช้อาร์กิวเมนต์เดียวกันในหลายคำสั่ง
กำลังพยายามเขียนหนึ่งซับที่สามารถตรวจสอบเอาต์พุตdf -hและแจ้งเตือนเมื่อพาร์ติชันหนึ่งว่าง [หรือเกือบ] ของพื้นที่ ตอนนี้มันเป็นส่วนที่ใช้ xargs ที่เตะฉันในตูดตอนนี้ ... echo 95 | xargs -n1 -I{} [ {} -ge 95 ] && echo "No Space on disk {}% full -- remove old backups please" ฉันจะทำให้ส่วนที่สอง {} แสดง "95" ได้อย่างไร

1
คำสั่งที่เกี่ยวข้องกับเลขคณิตคู่, Dash, POSIX เชลล์, sh, Increment
เมื่อก่อน / หลังการเพิ่มตัวแปรใน POSIX Shell ความแตกต่างระหว่างสองตัวอย่างนี้คืออะไร พวกเขาดูเหมือนว่าพวกเขาจะมีผลที่เหมือนกัน แต่พวกเขาจะใช้แตกต่างกันอย่างไร เมื่อไหร่ที่คุณจะชอบอีกอันหนึ่ง? X=$((X+1)) : $((X=X+1))

6
รันสคริปต์ในเชลล์แบบไม่โต้ตอบหรือไม่
ฉันมีงาน cron ที่ใช้งานสคริปต์ เมื่อฉันรันสคริปต์ผ่านเชลล์แบบโต้ตอบ (ssh'ed to bash) มันใช้งานได้ดี เมื่อสคริปต์รันด้วยตัวเองผ่าน cron สคริปต์จะล้มเหลว ฉันเดาว่ามันใช้ตัวแปรสภาพแวดล้อมบางอย่างที่ตั้งค่าไว้ในเชลล์เชิงโต้ตอบ ฉันจะแก้ไขปัญหาสคริปต์และลบสิ่งเหล่านี้ หลังจากที่ฉันทำการเปลี่ยนแปลงฉันรู้ว่าฉันสามารถจัดคิวสคริปต์ใน cron เพื่อให้มันทำงานได้ตามปกติ แต่มีวิธีที่ฉันสามารถเรียกใช้สคริปต์จากบรรทัดคำสั่ง แต่บอกให้ทำงานตามที่ cron - เช่นในสภาพแวดล้อมที่ไม่โต้ตอบหรือไม่

3
ฉันจะข้ามนามแฝงชั่วคราวใน tcsh ได้อย่างไร
ฉันกำลังใช้ tcsh ทุบตีและ zsh และข้อเสนอแนะอื่น ๆ จะไม่ช่วยที่นี่ ฉันมีนามแฝงหลายชื่อที่มีชื่อเดียวกันกับคำสั่งอื่นดังนั้นถ้าฉันทำ unalias ให้พิมพ์สิ่งเดียวกันตอนนี้จะทำสิ่งที่แตกต่าง ส่วนใหญ่เวลาที่ฉันต้องการคำสั่ง aliased ซึ่งเป็นสาเหตุที่ฉันมีพวกเขา อย่างไรก็ตามบางครั้งฉันต้องการคำสั่ง unaliased หากไม่มีการยกเลิกการกำหนดและการกำหนดคำสั่งใหม่จริง ๆ มีวิธีง่าย ๆ ในการบอก tcsh ให้ใช้คำสั่ง unaliased แทนหรือไม่ ตัวอย่างเช่น vi มีนามแฝงเป็นกลุ่ม แต่บางครั้งฉันต้องการใช้ vi cd เป็นชื่อแทนการเปลี่ยนชื่อหน้าต่างของฉัน แต่บางครั้งฉันต้องการทิ้งไว้คนเดียว เห็นได้ชัดว่าฉันสามารถพิมพ์ / usr / bin / vi แต่เนื่องจาก cd เป็นคำสั่งในตัวเชลล์จึงไม่เทียบเท่า มีวิธีแก้ปัญหาทั่วไปหรือไม่?
17 shell  alias  tcsh 

3
เชลล์ล่ามคนใดเรียกใช้สคริปต์โดยไม่มี shebang?
สมมติว่าเชลล์เริ่มต้นสำหรับบัญชีของฉันคือ zsh แต่ฉันเปิดเทอร์มินัลและยิงทุบตีและเรียกใช้สคริปต์ชื่อprac002.shซึ่งล่ามเชลล์ใดที่จะใช้ในการรันสคริปต์ zsh หรือ bash? ลองพิจารณาตัวอย่างต่อไปนี้: papagolf@Sierra ~/My Files/My Programs/Learning/Shell % sudo cat /etc/passwd | grep papagolf [sudo] password for papagolf: papagolf:x:1000:1001:Rex,,,:/home/papagolf:/usr/bin/zsh # papagolf's default shell is zsh papagolf@Sierra ~/My Files/My Programs/Learning/Shell % bash # I fired up bash. (See that '%' prompt in zsh changes to '$' prompt, …

3
โปรแกรมสามารถเขียนด้วย Bash บริสุทธิ์ได้อย่างไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา หลังจากที่บางวิจัยอย่างรวดเร็วมากดูเหมือนทุบตีเป็นภาษาทัวริงสมบูรณ์ ฉันสงสัยว่าเพราะเหตุใด Bash จึงใช้สคริปต์เกือบทั้งหมดเพื่อเขียนสคริปต์ที่ค่อนข้างง่าย เนื่องจาก Bash shell มาพร้อมกับ Linux คุณสามารถเรียกใช้เชลล์สคริปต์ได้โดยไม่ต้องมีตัวแปลหรือคอมไพเลอร์ภายนอกตามที่จำเป็นสำหรับภาษาคอมพิวเตอร์ที่เป็นที่นิยมอื่น ๆ นี่เป็นข้อได้เปรียบที่ยิ่งใหญ่ที่สามารถชดเชยความธรรมดาของภาษาในบางกรณี ดังนั้นจึงมีข้อ จำกัด ว่าโปรแกรมดังกล่าวจะซับซ้อนแค่ไหน? Pure Bash ใช้ในการเขียนโปรแกรมที่ซับซ้อนหรือไม่? เป็นไปได้ที่จะเขียน, พูด, ไฟล์คอมเพรสเซอร์ / decompressor ใน Bash บริสุทธิ์? คอมไพเลอร์? วิดีโอเกมง่ายๆ? มันใช้อย่างเบาบางเพียงเพราะมีเครื่องมือดีบั๊กที่ จำกัด เท่านั้นใช่ไหม

1
ลบบรรทัดที่ค่าของฟิลด์น้อยกว่าหรือเท่ากับ 3 - sed หรือ awk?
ฉันต้องการลบทุกบรรทัดที่มีค่า 2 หรือน้อยกว่าในฟิลด์ที่ 8 (คอลัมน์) ข้อมูลของฉันมีลักษณะเช่นนี้: 12-31 Airport 189 379 41 49.70946503 -124.91377258 2 2880 30.8 01-01 AlberniElementary 165 331 16 49.26100922 -124.80662537 4 5760 26.1 01-09 BamfieldMarine 161 323 23 48.83490372 -125.13572693 2 2875 27.4 01-10 BamfieldMarine 161 323 23 48.83490372 -125.13572693 3 3068 38.6 ฉันเข้าใจว่าการใช้ awk ฉันสามารถตัดค่าที่ต้องการและพิมพ์ไปยังไฟล์อื่นและฉันเข้าใจว่า sed …
17 shell  shell-script  sed  awk  grep 

6
วิธีการส่งออกสตริงที่คั่นด้วยเครื่องหมายจุลภาคโดยใช้การขยาย bash brace
ฉันต้องการ $ echo a{b,c,d} เพื่อส่งออกรายการคั่นด้วยเครื่องหมายจุลภาคเช่น ab,ac,ad แทนการส่งออกปกติ ab ac ad วิธีที่ง่ายที่สุดในการทำเช่นนั้นในบรรทัดคำสั่งคืออะไร?
17 bash  shell 

3
lftp: เข้าสู่ระบบใส่ไฟล์ใน dir ระยะไกลและออกในคำสั่งเดียว: ความช่วยเหลือในการอ้างอิงที่เหมาะสม
ฉันต้องการใช้lftp -cในการทำเซสชั่นทั้งหมดในครั้งเดียว (เพราะฉันจะเปิดตัวจากสคริปต์ในภายหลัง) และฉันจัดการด้วย-eแต่ ofc ทำให้ฉันด้วยเซสชั่นแบบโต้ตอบที่ฉันไม่ต้องการ คู่มือการใช้ -c commands Execute the given commands and exit. Commands can be separated with a semicolon, `&&' or `||'. Remember to quote the commands argument properly in the shell. This option must be used alone without other arguments. แต่ฉันไม่เข้าใจว่าฉันควรอ้างอิงและรวมคำสั่ง / การโต้ตอบเข้าด้วยกันอย่างถูกต้องอย่างไร lftp -e "put …
17 shell  lftp 

1
วิธีการคัดลอกจาก / ไปยัง 'คลิปบอร์ด' ของ tmux ด้วย shell shell?
เมื่อทำงานในสภาพแวดล้อมของเชลล์ฉันใช้งานบ่อยครั้งในการคัดลอก 'การส่งออกไพพ์กลาง' รอบ ๆ (เช่นจาก / ไปยังบรรณาธิการที่ใช้งานแล้วไปยังเชลล์อื่น ๆ เครื่องอื่น ๆ ฯลฯ ) เมื่ออยู่ในสภาพแวดล้อมที่หน้าต่างวิธีที่ง่าย (และทั่วไป) ในการแก้ปัญหานี้มักจะผ่านคลิปบอร์ดของระบบเช่น: X11: ... | xsel -i/xsel -o | ... OS X: ... | pbcopy/pbpaste | ... ฉันจะได้รับพฤติกรรมที่สะดวกในทำนองเดียวกันโดยใช้ตัวช่วยการคัดลอก / วาง tmux ได้อย่างไร?

2
แยกส่วนตรงกลางของบรรทัดของไฟล์ข้อความหรือไม่
ฉันกำลังเขียนสคริปต์ PHP เพื่อแยกไฟล์ข้อความขนาดใหญ่เพื่อแทรกฐานข้อมูลจากมัน อย่างไรก็ตามในโฮสต์ของฉันไฟล์มีขนาดใหญ่เกินไปและฉันใช้หน่วยความจำเกินขีด จำกัด สำหรับ PHP ไฟล์นี้มีประมาณ 16,000 บรรทัด ฉันต้องการแยกไฟล์ออกเป็นสี่ไฟล์ (ตอนแรก) เพื่อดูว่าฉันสามารถโหลดไฟล์เหล่านั้นได้หรือไม่ head -4000 file.txtส่วนแรกที่ผมจะได้รับกับ ส่วนตรงกลางนั้นค่อนข้างซับซ้อนกว่าเดิม - ฉันคิดถึงการtailส่งออกpip ไปยังhead( tail -4001 file.txt | head -4000 > section2.txt) แต่มีวิธีอื่นหรือดีกว่า อันที่จริงตรรกะของฉันถูกทำให้ยุ่งเหยิง - สำหรับส่วนที่สองฉันต้องมีบางอย่างที่ชอบtail -12001 file.txt | head - 4000แล้วลดtailอาร์กิวเมนต์สำหรับส่วนถัดไป ฉันเริ่มสับสนแล้ว! : P

4
ฉันจะจัดการสวิตช์ในเชลล์สคริปต์ได้อย่างไร
มีเครื่องมือในตัวที่จะรับรู้-xและ--xxxxเป็นสวิตช์และไม่ขัดแย้งหรือคุณต้องผ่านตัวแปรอินพุททั้งหมดทดสอบการขีดกลางแล้วจึงแยกอาร์กิวเมนต์หลังจากนั้น

5
คัดลอกและเปลี่ยนชื่อไฟล์ที่พบในฟังก์ชั่น "ค้นหา" Linux อย่างไร
ฉันมีชื่อโฟลเดอร์/home/user/tempsซึ่งมี 487 โฟลเดอร์ ในแต่ละโฟลเดอร์ฉันมีไฟล์ชื่อ thumb.png ฉันต้องการคัดลอกไฟล์ทั้งหมดที่ชื่อว่า thumb.png ไปยังโฟลเดอร์แยกต่างหากและเปลี่ยนชื่อไฟล์ตามโฟลเดอร์ที่มาจาก
17 shell  find  rename 


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