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

Bash เป็นเชลล์ฟรีสำหรับระบบปฏิบัติการยูนิกซ์จากโครงการ GNU

5
การลบไฟล์นับล้านไฟล์
ฉันมีคนเต็มไปด้วยภาพ gif นับล้าน มีคำสั่ง rm มากเกินไป ฉันได้ลองใช้คำสั่ง find แบบนี้แล้ว: find . -name "*.gif" -print0 | xargs -0 rm ปัญหาคือมันทำให้เครื่องของฉันแย่มากและทำให้ลูกค้าต้องเสียเวลาเนื่องจากเซิร์ฟเวอร์ มีวิธีใดที่เร็วกว่าในการลบไฟล์ทั้งหมดเหล่านี้ ... โดยไม่ล็อคเครื่อง?
38 linux  bash  shell  find  rm 


1
ฉันจะส่งนามแฝงไปยัง sudo ได้อย่างไร
ฉันได้พยายามวางนามแฝงของฉันใน~/.bash_profile, ~/.bashrc, และ/etc/profile/etc/bashrc ฉันยังคงไม่สามารถดำเนินการดังต่อไปนี้: alias zf2="php public/index.php" จากนั้นดำเนินการ: sudo zf2 orm:info ปัญหาน่าจะเป็นที่ฉันไม่สามารถระบุนามแฝงเป็นคำสั่งโดยใช้ visudo-- ซึ่งทำให้เกิดข้อผิดพลาดทางไวยากรณ์ ดังนั้นฉันไม่สามารถโทร: sudo zf2 orm:info อย่างไรก็ตามฉันสามารถสร้างสคริปต์ที่ / usr / share / สคริปต์ / zf2 ซึ่งมี: #!/bin/bash alias zf2="php public/index.php" zf2 $1 และเพิ่มสคริปต์นี้เป็นคำสั่งใน visudo เมื่อสคริปต์นี้อยู่ในเส้นทางของผู้ใช้ฉันสามารถดำเนินการได้ zf2 orm:info ฉันมีนามแฝงที่แตกต่างกันเช่นzf2ฉันต้องเปิดเผยให้ผู้ใช้เห็น ฉันต้องการรักษานามแฝงแทนชุดสคริปต์
38 bash  sudo  alias 

1
การทุบตีเสร็จสิ้นสำหรับคำสั่งใน Mac OS X
ฉันจะได้รับfinkและmacportsชื่อโปรแกรมเติมข้อความอัตโนมัติเมื่อคำสั่งการพิมพ์ในขณะที่ของ Ubuntu apt-get? เช่นเมื่อฉันพิมพ์ sudo port install ca และกดtabฉันต้องการให้เครื่องเติมข้อความอัตโนมัติหรือแสดงคำสั่งที่มีให้ฉัน OS X ไม่ได้ทำตามคำสั่งอัตโนมัติsudo!

3
การเข้าถึงสื่อแบบถอดได้ใน Bash บน Windows
มีวิธีเข้าถึงสื่อแบบถอดได้ (เช่น thumb drive หรือ SD card) จากใน Bash บน Windows หรือไม่? Bash บน Windows ใช้ DriveFsเพื่อติดตั้งไดรฟ์คงที่ใน/mntโฟลเดอร์ แต่จะไม่ทำการเมานท์สื่อแบบถอดได้โดยอัตโนมัติ และมันก็ดูไม่เหมือนว่าจะใส่ไว้ใน/dev: Aaron@MYPC:/$ ls /dev block fd kmsg lxss null ptmx pts random shm stderr stdin stdout tty tty0 tty1 urandom zero มีวิธีการติดตั้งไดรฟ์แบบถอดได้หรือไม่? มีวิธีเข้าถึงอุปกรณ์บล็อกพื้นฐานหรือไม่?

7
Bash: สร้าง Fifo นิรนาม
เราทุกคนรู้mkfifoและไปป์ไลน์ คนแรกสร้างไปป์ที่มีชื่อดังนั้นหนึ่งจะต้องเลือกชื่อน่าจะด้วยmktempและในภายหลังจำที่จะยกเลิกการเชื่อมโยง อื่น ๆ สร้างไพพ์ที่ไม่ระบุชื่อไม่ต้องยุ่งยากกับชื่อและการลบ แต่ปลายท่อจะเชื่อมโยงกับคำสั่งในไพพ์ไลน์มันไม่สะดวกเลยที่จะใช้ตัวอธิบายไฟล์และใช้ส่วนที่เหลือ ของสคริปต์ ในโปรแกรมรวบรวมฉันจะทำret=pipe(filedes); ใน Bash มีexec 5<>fileใครคาดหวังอะไรแบบนี้"exec 5<> -"หรือ"pipe <5 >6"มีอะไรแบบนั้นใน Bash?
38 bash  script  pipe 

7
ในทุบตีวิธีการเรียงสตริงด้วยตัวเลขในพวกเขา?
ถ้าฉันมีไฟล์เหล่านี้ในไดเรกทอรี cwcch10.pdf cwcch11.pdf cwcch12.pdf cwcch13.pdf cwcch14.pdf cwcch15.pdf cwcch16.pdf cwcch17.pdf cwcch18.pdf cwcch1.pdf cwcch2.pdf cwcch3.pdf cwcch4.pdf cwcch5.pdf cwcch6.pdf cwcch7.pdf cwcch8.pdf cwcch9.pdf ฉันจะแสดงรายการพวกเขาใน Bash เพื่อให้พวกเขาอยู่ในลำดับตัวเลขจากน้อยไปมากขึ้นอยู่กับส่วนจำนวนของสตริง ดังนั้นผลลัพธ์ที่ได้คือcwcch1.pdf, cwcch2.pdf, ..., cwcch9.pdf, cwcch10.pdfอื่น ๆ ในที่สุดสิ่งที่ฉันพยายามทำคือเชื่อมไฟล์ PDF pdftkกับสิ่งต่อไปนี้ pdftk `ls *.pdf | sort -n` cat output output.pdf แต่นั่นไม่ได้ผลเพราะการเรียงลำดับของฉันผิด
37 linux  bash  sorting 

8
ฆ่า Chrome ทั้งหมดในบรรทัดคำสั่งหรือไม่
ในบางกรณีการฆ่าแท็บ / กระบวนการเดียวไม่สามารถทำได้และฉันต้องปิด Chrome ทั้งหมด เนื่องจาก Chrome มีหลายกระบวนการฉันจะปิดทั้งหมดได้ในคราวเดียวได้อย่างไร ฉันรู้แล้ว... pgrep chromeส่งคืน pids ทั้งหมด อะไรคือกลอุบายที่ทำให้ฉันสามารถปิดพวกเขาทั้งหมดด้วยการป้อนคำสั่งอื่นหรือรวมเข้ากับไฟล์ CSV หรืออะไรบางอย่าง

4
ไม่สามารถเปลี่ยนชื่อไฟล์ที่ชื่อขึ้นต้นด้วยยัติภังค์
ฉันพยายามที่จะเปลี่ยนชื่อไฟล์ด้วยเครื่องหมายยัติภังค์ที่จุดเริ่มต้นของชื่อและทั้งสองนี้: mv -example-file-name example-file-name และนี่: mv '-example-file-name' example-file-name ผลลัพธ์: mv: invalid option -- 'e'

2
มีวิธีการทุบตีเพื่อเน้นไวยากรณ์เหมือนปลาหรือไม่
ใน ตู้ปลา บรรทัดคำสั่งจริงคือการเน้นไวยากรณ์: มีวิธีใดบ้างที่จะทำให้เกิดพฤติกรรมแบบเดียวกันนี้ได้ นั่นคือ บางอย่างเช่นนี้ แต่สำหรับ zsh อย่าทุบตี เป็นไปได้ไหมที่สิ่งนี้สามารถรังเพลิงเพื่อทุบตี? หากต้องการอธิบายให้ชัดเจนสำหรับผู้ที่ไม่เข้าใจภาพหน้าจอคำอธิบายหรือลิงก์ที่ให้: ฉันต้องการเน้นข้อความจริงที่ป้อนไว้ที่เครื่อง คำสั่งวงเล็บคำพูด ฯลฯ

3
ฉันจะทำให้ตัวดำเนินการ bash backtick เก็บบรรทัดใหม่ในเอาต์พุตได้อย่างไร
มีวิธีที่จะทำให้ทุบตีไม่กินบรรทัดใหม่ในการทดแทน backtick หรือไม่? ตัวอย่างเช่น: var=`echo line one && echo line two` echo $var line one line two สิ่งที่ฉันต้องการคือ var=`echo line one && echo line two` # plus some magic echo $var line one line two
36 linux  bash 

5
ฉันจะเปลี่ยนไดเรกทอรีเริ่มต้นเริ่มต้นใน Cygwin ได้อย่างไร
เมื่อใดก็ตามที่ฉันเริ่ม cygwin ฉันต้อง cd หลายระดับลงในไดเรกทอรีเดียวที่ฉันสนใจเมื่อใช้ cygwin ฉันจะให้ cygwin เริ่มต้นในไดเรกทอรีนี้โดยค่าเริ่มต้นได้ ... เช่นทุกครั้งที่ฉันเริ่ม Cygwin มันจะอยู่ในไดเรกทอรีนั้นแล้ว ฉันพบบางสิ่งที่อาจเป็นหรือใกล้เคียง แต่ฉันไม่เข้าใจและไม่มีผลลัพธ์เมื่อฉันค้นหาคำเหล่านี้ (n00b) ความช่วยเหลือใด ๆ จะดีมาก!
36 linux  bash  cygwin 

8
เหตุใด echo จึงไม่สนับสนุน“ \ e” (escape) เมื่อใช้อาร์กิวเมนต์ -e ใน MacOSX
เมื่อฉันพยายามพิมพ์ข้อความสีโดยใช้ ANSI escape sequences ผ่านechoคำสั่งในตัวดูเหมือนว่า\eลำดับ escape ในสตริงที่ฉันให้นั้นถูกตีความตามตัวอักษรแทนที่จะเป็น "escape" ที่ควรจะเป็นตัวแทน สิ่งนี้จะเกิดขึ้นใน Snow Leopard - ตัวอย่างด้านล่างนี้ทำงานได้ตามที่ต้องการใน Leopard เห็นได้ชัดว่าechoรองรับ-eสวิตช์เนื่องจากตีความอย่างถูกต้อง\nเมื่อใช้งาน: ~ $ ~ $ echo "\n" \n ~ $ echo -e "\n" ~ $ แต่เมื่อฉันพยายามใช้\eฉันจะได้รับสิ่งนี้: ~ $ echo -e "\e[34mCOLORS" \e[34mCOLORS ~ $ อย่างที่ฉันพูดใน Leopard สิ่งที่กล่าวมาข้างต้นจะให้สตริง "COLORS" เป็นสี ไม่มีใครรู้เหตุผลว่าทำไมนี่อาจเป็นการเปลี่ยนแปลงที่ตั้งใจ? วิธีแก้ปัญหาสำหรับการพิมพ์ ANSI escape sequences จาก …

4
เทียบเท่า / ทางเลือกสำหรับ Alt + Dot ใน Mac
สิ่งหนึ่งที่ฉันพลาดจากเชลล์ลินุกซ์คือทางลัดAlt + Dot มันทำอะไรคือใส่อาร์กิวเมนต์สุดท้ายของคำสั่งก่อนหน้า ดูเหมือนจะเป็นเทคนิคเล็กน้อย แต่มีประโยชน์จริงๆ เช่นถ้าคุณพิมพ์สิ่งนี้: $ ls /Applications/MAMP/conf/apache/ ครั้งต่อไปที่คุณต้องพิมพ์คำสั่ง + ทางลัดและอาร์กิวเมนต์จะเสร็จสมบูรณ์สำหรับคุณ $ cd 'alt+dot' บน Mac ฉันรู้ 2 ทางเลือก; กดปุ่มEsc + Dotหรือพิมพ์! $ , *กับการตั้งค่าพื้นที่มายากล อย่างไรก็ตามในขณะที่ทางเลือกทั้งสองแทรกอาร์กิวเมนต์สุดท้ายที่คุณใช้พวกเขาไม่สามารถเลื่อนย้อนกลับไปในประวัติคำสั่งเช่นพิมพ์Alt + Dotซ้ำ ๆ ตอนนี้ฉันสามารถอยู่กับตัวเลือกนี้ได้ แต่ฉันอยากรู้ว่ามีใครรู้วิธีที่ดีกว่าในการทำสิ่งนี้
36 linux  mac  bash  terminal  shell 

3
Bash Shebang สำหรับหุ่น?
ฉันมีสคริปต์ทุบตีฉันมีการตั้งค่าที่ใช้เป็นส่วนใหญ่ #!/bin/bash แต่ฉันพบบางอย่างที่ดูเหมือน #!/bin/bash -e #!/bin/bash -x #!/bin/bash -ex และอื่น ๆ บางคนสามารถอธิบายความหมายและประโยชน์ของตัวเลือก shebang เหล่านี้และไม่ว่าพวกเขาจะนำไปใช้กับ shebang อื่น ๆ หรือไม่?
36 bash  shell  script 

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