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

เชลล์คือซอฟต์แวร์ที่ช่วยให้ผู้ใช้โต้ตอบกับระบบปฏิบัติการโดยปกติแล้วพิมพ์ที่บรรทัดคำสั่ง

9
เปลี่ยนชื่อเป็นจำนวนมาก * รุ่น nix
ฉันกำลังมองหาวิธีที่จะเปลี่ยนชื่อไฟล์ที่มีชื่อคล้ายกันจำนวนมากคล้ายกับคำถามนี้ (คำถามที่เกี่ยวข้องกับ Windows)ยกเว้นว่าฉันใช้ * nix (Ubuntu และ FreeBSD แยกกัน) เพียงเพื่อสรุปในขณะที่ใช้เชลล์ (Bash, CSH, ฯลฯ ) ฉันจะเปลี่ยนชื่อไฟล์เป็นจำนวนมากได้อย่างไรเช่นไฟล์ต่อไปนี้: Beethoven - Fur Elise.mp3 Beethoven - Moonlight Sonata.mp3 Beethoven - Ode to Joy.mp3 Beethoven - Rage Over the Lost Penny.mp3 จะถูกเปลี่ยนชื่อเป็นเช่นนี้หรือไม่ Fur Elise.mp3 Moonlight Sonata.mp3 Ode to Joy.mp3 Rage Over the Lost Penny.mp3 เหตุผลที่ฉันต้องการทำเช่นนี้คือการรวบรวมไฟล์เหล่านี้จะอยู่ภายใต้ไดเรกทอรีที่ชื่อ "Beethoven" …
11 unix  shell  rename  bsd 

1
Vim ละเว้นนามแฝง
ถ้าฉันแผนที่คำสั่งเป็นกลุ่มโดยใช้สิ่งที่ชอบ map <f4> :! pdflatex %<cr> กลุ่มจะไม่สนใจชื่อแทนของฉันสำหรับ pdflatex (บางอย่างเช่นนามแฝง pdflatex = 'pdflatex --temp-dir = something') เป็นไปได้ไหมที่จะทำให้กลุ่มไม่สนใจมัน?
11 shell  vim  alias  ignore 

3
ฉันจะดู man page สำหรับคำสั่ง shell ในตัวได้อย่างไร?
หากฉันเห็นคำสั่งในสคริปต์ที่ฉันไม่รู้จักและฉันพิมพ์ (ตัวอย่าง) man pushdหรือman umaskฉันเห็น man page สำหรับคำสั่งในตัว ฉันรู้ว่าฉันสามารถทำman bashและเลื่อนเพื่อค้นหาความช่วยเหลือสำหรับคำสั่ง builtin นั้นหรือฉันสามารถเปิดเบราว์เซอร์และไปที่หน้าbash man ออนไลน์ซึ่งง่ายต่อการค้นหา แต่มีวิธีที่ง่ายกว่าในการรับ man page สำหรับ คำสั่ง builtin เดียวโดยตรงบนบรรทัดคำสั่ง?

3
บนเชลล์ Linux, echo $ 1 ควรทำอะไร?
ฉันทำecho $1มันพิมพ์สิ่งที่เป็นเปลือกเข้าสู่ระบบเริ่มต้นที่ใช้ แต่สำหรับecho $2ต่อไปทั้งหมดที่ฉันได้รับคือบรรทัด ทำไมถึงเป็นอย่างนั้น?
11 unix  shell  echo 

1
ออกจาก bash script เมื่อ curl ได้รับสถานะที่ไม่ใช่ 200 HTTP
ฉันมีการตั้งค่าสคริปต์ทุบตีเพื่อดำเนินการตามคำขอ curl สองสามข้อ for currency in EUR INR JPY do curl -i --data '{"currency": "'$currency'"}' -H "Accept: application/json" -H "Content-Type: application/json" http://0.0.0.0:8080/price && echo done มีวิธีที่จะทำให้สคริปต์ออกถ้าหนึ่งในการตอบสนองของขดกลับมาด้วยสถานะ http! = 200? ฉันยังต้องการเก็บเอาท์พุท curl มาตรฐานไว้เช่นฉันไม่ต้องการโซลูชันที่พิมพ์รหัสสถานะ http เท่านั้น ไชโย

3
ดำเนินการคำสั่งที่เก็บไว้ในตัวแปร
ฉันมีคำสั่งเก็บไว้ในตัวแปร สมมติว่าตัวแปร$iมีค่า: cat -nT index.php |grep 'someregex' เมื่อฉันพยายามที่จะดำเนินการตัวแปรข้างต้นโดยการพิมพ์$iมันล้มเหลวเพราะเชลล์พยายามที่จะดำเนินการตัวแปรทั้งหมดเป็นคำสั่งเดียว ฉันยังลองใช้eval($i)และใส่$ibackticks ฉันจะทำให้เชลล์ดำเนินการ$iราวกับว่ามันเป็นคำสั่งได้อย่างไร และทำไมมันไม่ทำงานเหมือนกัน $i='echo hi'; $i เป็นเพราะฉันต้องแฮ็คคำพูดเดียว? (เพราะคุณไม่สามารถซ้อนได้) ปัจจุบันโซลูชันของฉันคือ echo $i > /foo; . /foo แต่ฉันไม่ต้องการสร้างไฟล์สำหรับสิ่งนี้เพียงเพื่อลบในภายหลัง สิ่งที่ฉันหมายถึงโดย "ฉันแฮ็คในคำพูดเดียวที่ฉันทำ: $i='cat index.php | grep -P '"'"'MYREGEXHERE'"'"
11 linux  bash  shell 

8
การเรียกใช้สคริปต์จากไดเรกทอรีอื่น
บ่อยครั้งที่สคริปต์ที่ฉันต้องการดำเนินการไม่ได้อยู่ในไดเรกทอรีการทำงานปัจจุบันของฉันและฉันไม่ต้องการออกจากมัน เป็นการดีที่จะเรียกใช้สคริปต์ (BASH, Perl และอื่น ๆ ) จากไดเรกทอรีอื่นหรือไม่? พวกเขามักจะพบสิ่งของทุกอย่างที่พวกเขาต้องการเพื่อให้ทำงานอย่างถูกต้องหรือไม่? ถ้าอย่างนั้นวิธีที่ดีที่สุดในการใช้งานสคริปต์ "ไกล" คืออะไร? ใช่ไหม . /path/to/script หรือ sh /path/to/script และวิธีการใช้งานsudoในกรณีเช่นนี้? เช่นนี้ไม่ทำงาน: sudo . /path/to/script

1
Awk ไม่ทำงานเมื่ออยู่ในเครื่องหมายคำพูดคู่
คำสั่งนี้ไม่ทำงาน: ssh $HOST "ls -l | awk '{print $1}'"` awkดังกล่าวข้างต้นจะไม่สนใจคำสั่ง ฉันคิดว่ามันอาจเป็นเพราะคำพูดซ้อน นอกจากนี้ฉันจะเพิ่มเครื่องหมายคำพูดคู่อีกชุดหนึ่งใน awk ได้อย่างไร เช่น: ssh $HOST "awk '{print $1 "*"}' /some_file" ฉันพยายามหลบหนีคำพูดฉันก็ลองสิ่งนี้: ssh $HOST "awk '{print $1 "\""*"\""}' /some_file" ปราศจากความสำเร็จ.
11 linux  shell  awk 


1
จะสร้างลิงค์สัญลักษณ์ใน / usr / bin บน Mac ได้อย่างไร?
สภาพแวดล้อม: OSX Sierra, Kernel เวอร์ชั่นดาร์วิน 16.3.0 ปัญหาหลัก: ฉันต้องการใช้เชลล์สคริปต์จำนวนมากในที่เก็บส่วนกลางซึ่งมี #! / usr / bin / zsh บน Mac ของฉัน zsh อยู่ใน / bin / zsh ความพยายามแก้ไข: ฉันต้องการสร้างลิงก์สัญลักษณ์ ln -s /bin/zsh /usr/bin/zsh บัญชีผู้ใช้ของฉันมีสิทธิ์ผู้ดูแลระบบ แต่ฉันไม่รูทและฉันไม่ต้องการเปิดใช้งานผู้ใช้รูทบน Mac เครื่องนี้ ดังนั้นก่อนอื่นเลย sudo su เพื่อรับเชลล์ที่มีสิทธิ์ใช้งานรูทแล้วดำเนินการคำสั่งln อย่างไรก็ตามฉันยังคงได้รับข้อความแสดงข้อผิดพลาดln: / usr / bin / zsh: ไม่อนุญาตให้ใช้งาน คำถาม: เหตุใดฉันจึงได้รับข้อความแสดงข้อผิดพลาดนี้ ฉันต้องทำอย่างไรเพื่อสร้างลิงค์ มีวิธีที่ดีกว่าเพื่อให้บรรลุเป้าหมายเดิมของฉันหรือไม่? …
11 shell  sudo  symbolic-link  su  ln 

4
ดูไฟล์ทั้งหมดในไดเรกทอรีของเว็บไซต์หรือไม่
เป็นไปได้หรือไม่ที่จะแสดงรายการไฟล์และไดเรกทอรีทั้งหมดในไดเรกทอรีเว็บไซต์ที่ระบุจากเชลล์ Linux สิ่งที่คล้ายกับ: ls -l some_directory แต่แทนที่จะ some_directory ls -l http://www.some_site.com/some_directory/ก็จะ เห็นได้ชัดว่าภายหลังจะไม่ทำงาน
10 linux  bash  shell 

2
ป้อนเนื้อหาของไฟล์ข้อความเป็นคำสั่งไปยัง telnet
ด้วยคำสั่งtelnet docs.python.org 80ฉันสามารถทำคำขอ HTTP ด้วยตนเองhttp://docs.python.org/2/license.htmlโดยพิมพ์คำขอจริง ตอนนี้แทนที่จะพิมพ์แบบสดฉันต้องการฟีดคำขอจากไฟล์ข้อความ ฉันลองสิ่งนี้: cat request.txt|telnet docs.python.org 80 request.txt : GET /2/license.html HTTP/1.1 Host: docs.python.org (คุณต้องจบไฟล์ด้วยบรรทัดว่างมิฉะนั้นคุณจะได้รับคำขอที่ไม่ดี!) แต่การเชื่อมต่อกับเซิร์ฟเวอร์จะปิดทันที วิธีฉันควรต้องท่อrequest.txtเพื่อtelnet docs.python.org 80? แก้ไข: เป็นเรื่องดีที่จะรู้ หากคุณใช้HEADแทนคุณGETจะได้รับการตอบกลับเช่นเดียวกับที่คุณทำGETคำขอยกเว้นสำหรับเนื้อหาของข้อความ ดังนั้นใช้HEADถ้าคุณต้องการตรวจสอบส่วนหัว HTTP (เช่นเพื่อให้เนื้อหาของการตอบสนองไม่ได้ยุ่งเอาท์พุทเปลือกของคุณ)


1
คุณจะกลับทิศทางของ alt-period ใน Bash ได้อย่างไร?
ใน Bash คุณสามารถกดAlt- .เพื่อแทรกอาร์กิวเมนต์สุดท้ายของคำสั่งก่อนหน้า หากคุณกดหลายครั้งมันจะวนไปตามอาร์กิวเมนต์สุดท้ายของคำสั่งทั้งหมดในประวัติของคุณ อย่างไรก็ตามบางครั้งฉันก็กดหลายครั้งเกินไปและฉันต้องการกลับทิศทางของการปั่นจักรยาน เป็นไปได้ไหม (เช่นหากคุณย้อนกลับการค้นหาด้วยCtrl- rคุณสามารถเปลี่ยนเส้นทางด้วยCtrl- sอะนาล็อกสำหรับAlt- .คืออะไร)

2
วิธีย้ายโฟลเดอร์ในยูนิกซ์โดยใช้ mv เฉพาะเมื่อเป้าหมายอยู่ในไดรฟ์เดียวกัน
ฉันต้องการย้ายโฟลเดอร์โดยใช้คำสั่ง unix mv แต่หากเป้าหมายอยู่ในไดรฟ์เดียวกันหรือระบบไฟล์เดียวกัน อะไรคือแนวทางที่ดีที่สุด
10 linux  bash  shell  unix  mv 

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