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

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

2
ทำให้ bash TAB เสร็จสิ้นมากขึ้นเช่น cmd.exe [ซ้ำกัน]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว : มีวิธีในการทำให้แท็บ Bash เป็นมิตรมากขึ้นหรือไม่ (1 คำตอบ) ปิดให้บริการใน6 ปีที่ผ่านมา ฉันสงสัยว่ามีวิธีที่จะทำลักษณะการหมุนในลักษณะทุบตีคล้ายกับ behavoir บน cmd.exe หรือไม่ฉันพบว่ามันเพิ่มความเร็วในการป้อนคำสั่ง
12 linux  bash  shell  command-line  sh 

8
การแจ้งเตือนคำรามสำหรับการทำงานของเชลล์ให้สำเร็จ
(เฉพาะ OSX) ฉันเช่นเดียวกับคนอื่น ๆ นอกเหนือจากตัวฉันมักจะพบว่าตัวเองเตะกระบวนการในเปลือกที่ใช้เวลาหนึ่งหรือสองนาทีให้เสร็จสมบูรณ์ (ตัวอย่าง svn ขนาดใหญ่กระทำ) ในช่วงเวลานั้นฉันมักจะแท็บ alt และรีเฟรช reddit / slashdot / wikipedia / อะไรก็ตาม มันจะเป็นการดีถ้ามีบางสิ่งที่ตั้งค่าไว้ซึ่งโพสต์การแจ้งเตือนคำรามเมื่อกระบวนการเชลล์จบลง ในโลกอุดมคติของฉันมันจะทำงานดังนี้: "หากกระบวนการเพิ่งออกจากแท็บที่เปิดอยู่ในเทอร์มินัลให้โพสต์การแจ้งเตือนคำราม" ใครมีบางอย่างเช่นการตั้งค่านี้
12 macos  bash  shell  growl 

2
การระบุจุดสิ้นสุดของอินพุตมาตรฐาน
วิธีการอย่างใดอย่างหนึ่งบ่งชี้ว่าอย่างใดอย่างหนึ่งได้เสร็จสิ้นการทดสอบใน stdin? ตัวอย่างเช่นสมมติว่าฉันต้องการเข้ารหัส 'สีน้ำเงิน' โดยใช้ MD5 (ฉันรู้ว่า MD5 นั้นไม่ปลอดภัย แต่สำหรับตัวอย่างนี้เท่านั้น) ฉันเหนื่อย user$ blue | md5 ซึ่งฉันได้นำไปสู่การทำความเข้าใจเป็นวิธีการที่ท่อหนึ่งอินพุตเพื่อ stdin แต่มันไม่ทำงาน แต่ถ้าฉันเพิ่งเข้า user$ md5 ฉันสามารถป้อนคำว่า 'สีน้ำเงิน' แต่ฉันจะระบุ md5 ได้อย่างไรว่าฉันป้อนข้อความเสร็จแล้ว

2
ฉันจะทำให้ OS X ตั้งค่าชื่อเทอร์มินัลกลับไปเป็นชื่อดั้งเดิมเมื่อกลับมาจาก ssh ได้อย่างไร
เริ่มต้นที่ OS X ฉันเข้าสู่ foo (กล่อง Linux) ชื่อสถานีของฉันเปลี่ยนเป็น foo ฉันแล้ว ssh ลงในแถบ (กล่อง Linux อื่น) ชื่อสถานีของฉันเปลี่ยนเป็นแถบ ฉันออกจากระบบ ชื่อสถานีของฉันเปลี่ยนเป็น foo ฉันออกจากระบบ foo ชื่อเทอร์มินัลของฉันยังคงอยู่ foo (แทนที่จะเปลี่ยนกลับไปเป็นชื่อเดิม) เห็นได้ชัดว่าปัญหาไม่ได้อยู่กับเทอร์มินัลเนื่องจากมันทำงานอย่างถูกต้องเมื่อออกจากกล่อง Linux กลับไปที่กล่อง Linux มันอาจไม่ใช่ ssh เพราะฉันมีปัญหาเดียวกันกับกลุ่ม ในใจของฉันที่ทิ้งเปลือกหอย ฉันกำลังใช้ BASH เมื่อมองดูสภาพแวดล้อมฉันไม่เห็นความแตกต่างมากมายระหว่างกล่อง Linux กับกล่อง OS X ของฉัน ทั้งสองใช้ระยะของ xterm


2
เหตุใดจึงไม่ทุบตีในขณะที่ออกจากวงเมื่อท่อไปที่คำสั่งย่อยที่ถูกยกเลิก?
ทำไมคำสั่งด้านล่างจึงไม่ออก? แทนที่จะออกจากการวนซ้ำจะวิ่งไปเรื่อย ๆ ในขณะที่ฉันค้นพบพฤติกรรมนี้โดยใช้การตั้งค่าที่ซับซ้อนมากขึ้นรูปแบบที่ง่ายที่สุดของคำสั่งจะลดลงไปดังต่อไปนี้ ไม่ออก: while /usr/bin/true ; do echo "ok" | cat ; done | exit 1 ไม่มีการพิมพ์ผิดด้านบน แต่ละ '|' เป็นท่อ 'ทางออก 1' ย่อมาจากกระบวนการอื่นที่วิ่งและออก ฉันคาดว่า "exit 1" จะทำให้เกิด SIGPIPE ในขณะที่ลูป (เขียนบนไพพ์ที่ไม่มีตัวอ่าน) และเพื่อให้ลูปแตกออก แต่การวนซ้ำยังคงทำงานอยู่ เหตุใดคำสั่งจึงไม่หยุด

2
Bash วิธีการแก้ไขทั่วโลก ^ H และ ^? ปัญหา backspace
ฉันต้องการแก้ไขปัญหานี้บ่อยครั้งที่เชลล์บนเซิร์ฟเวอร์ระยะไกลคิดว่าคีย์ backspace ของเทอร์มินัลของฉัน^?และบางครั้งก็คิดว่ามันเป็น^Hและเกิดขึ้นไม่ถูกต้องและส่งออกอักขระที่ไม่ถูกต้องเมื่อฉันกด backspace หากฉันตั้งเป็น ^ H หรือ ^ ด้วยstty erase ^Hหรือstty erase ^?ในไฟล์. bashrc ของฉันและใช้เทอร์มินัลอื่น ๆ เพื่อเข้าถึงเซิร์ฟเวอร์มันมักจะผิดพลาด ดังนั้นฉันจึงต้องพิมพ์ด้วยตนเองstty erase [whatever]เพื่อแก้ไขเมื่อฉันสังเกตเห็นว่าปุ่ม backspace ผิด สิ่งที่ฉันต้องการทำคือผูกทั้งสอง^?และ^Hย้อนกลับเพราะถ้าฉันสามารถทำสิ่งนี้ได้ฉันสามารถเพิ่มมันลงในไฟล์. bashrc ทั้งหมดของฉันและมันจะจบฝันร้ายนี้อย่างแน่นอน เป็นไปได้ไหม ถ้าเป็นเช่นนั้นได้อย่างไร
12 linux  bash  terminal  shell  bashrc 

5
เรียกใช้เชลล์สคริปต์ด้วยปุ่ม html
ฉันต้องการเปิดใช้งาน bash script เมื่อมีการกดปุ่มบนเว็บไซต์ นี่เป็นความพยายามครั้งแรกของฉัน: <button type="button" onclick="/path/to/name.sh">Click Me!</button> แต่ไม่มีโชค ข้อเสนอแนะใด ๆ แก้ไข - ทำตามคำแนะนำของ slhclk และ mit: ฉันมีไฟล์ php ใน / var / www ที่ฉันชี้ไปที่เว็บเบราว์เซอร์ของฉัน เนื้อหาของไฟล์มีดังนี้: <?php exec("/home/aa/scripts/test.sh"); ?> tesh.sh มีสิ่งนี้: screen -S server1 -X quit หากฉันพิมพ์/home/aa/scripts/test.shในเชลล์สคริปต์จะสามารถดำเนินการได้ อย่างไรก็ตามเมื่อฉันชี้เว็บเบราว์เซอร์ไปที่http://example.com/screen.php (ซึ่งมีรหัสด้านบน) ฉันเห็นหน้าว่างและสคริปต์ไม่ได้ดำเนินการ ทั้งสองมีสิทธิ์ดำเนินการ ทำไมมันไม่ทำงาน
12 bash  shell  html 

8
สิ้นสุดกระบวนการใน Unix แทนที่จะขัดจังหวะมัน
ที่Unixบรรทัดรับคำสั่งถ้าฉันกดCtrl-Cนั่นไม่ได้จบกระบวนการ แต่ขัดจังหวะมันและฉันกลับไปที่เชลล์พรอมต์ ดังนั้นฉันมีคำถามสองข้อต่อไปนี้: มีวิธีที่ฉันสามารถดูรายการของกระบวนการขัดจังหวะและสิ้นสุดพวกเขา? คีย์ผสมใดที่จะกดเพื่อยุติกระบวนการแทนที่จะขัดจังหวะกระบวนการ
12 linux  unix  shell 

3
ฉันจะเก็บสีเมื่อเรียกใช้คำสั่งภายนอกภายในเป็นกลุ่มได้อย่างไร
ตัวอย่างเช่นสำหรับคำสั่งls --colorแสดงผลลัพธ์ที่มีสีสันเมื่อดำเนินการในเชลล์ อย่างไรก็ตามเมื่อฉันโทร:!ls --colorเข้าไปในกลุ่มข้อมูลสีทั้งหมดจะหายไป ฉันควรทำอย่างไรเพื่อรักษาสีเมื่อเรียกใช้คำสั่งภายนอกภายในกลุ่ม? แก้ไข: เพื่อชี้แจงคำถามของฉันนี่เป็นคำถามเกี่ยวกับVIMเองฉันไม่ได้ถามวิธีเปิดใช้สีของ "ls" สิ่งที่ฉันอยากรู้คือโดยทั่วไปแล้ววิธีเปิดใช้งานการแสดงผลที่มีสีสันของคำสั่งเชลล์ทั้งหมด (ตราบเท่าที่พวกเขามีผลลัพธ์ที่มีสีสัน)
12 shell  vim 

3
วิธีแสดงรายการชื่อไดเรกทอรี แต่ไม่แสดงเนื้อหาใน * N * X
ถ้าฉันทำง่ายlsระบุรูปแบบชื่อไฟล์เช่นls A*สำหรับไดเรกทอรีที่ตรงกับรูปแบบนั้นจะเข้าสู่ไดเรกทอรีและให้รายชื่อเต็ม แต่ฉันจะได้รับเพียงรายชื่อ./และเพียงชื่อของไดเรกทอรีภายใน แต่ไม่ เนื้อหาของพวกเขา?
12 linux  macos  bash  unix  shell 

2
วิธีเข้าถึงไดรฟ์ที่แชร์จากพรอมต์คำสั่งบน OS X
ฉันมีไดรฟ์ที่ใช้ร่วมกันเรียกว่า "เพลง" มันแสดงให้เห็นใน Finder โดยไม่มีปัญหา ฉันจะเข้าถึงสิ่งนี้จากพรอมต์คำสั่งบน Mac ได้อย่างไร ฉันหามันไม่พบทุกที่ - มีวิธีเข้าถึงหรือไม่?

2
วิธีระบุเชลล์สำหรับกลุ่ม?
ฉันสามารถระบุเชลล์ของฉันเป็นกลุ่มได้หรือไม่ ฉันใช้ OS X และติดตั้ง zsh ผ่าน Homebrew และฉันใช้ MacVim เมื่อฉันพิมพ์shellใน MacVim bashเปลือกเปิดขึ้นเป็น ฉันจะเปิดมันเป็นzshอย่างไร
12 vim  shell  macvim 

1
tmux: ตรวจสอบว่ากระบวนการใดทำงานในบานหน้าต่างที่ใช้งานอยู่
มีวิธีการตรวจสอบกระบวนการทำงานในบานหน้าต่างที่ใช้งานอยู่? tmux: ค้นหาหน้าต่าง "ของฉัน" ตรวจสอบว่ามันเกี่ยวข้องกับการใช้งานอยู่หรือไม่อย่างไรก็ตามมันเกี่ยวข้องกับการตรวจจับจากภายในบานหน้าต่าง ฉันต้องการตรวจสอบสิ่งนี้จากคำสั่งภายนอก (ไม่ใช่จากภายในเซสชัน tmux) ปัญหาน่าจะเป็นไปได้มากถึงสองขั้นตอน: ตรวจสอบว่าบานหน้าต่างใดทำงานอยู่ ตรวจสอบว่ากระบวนการใดทำงานในบานหน้าต่างที่กำหนด
12 linux  shell  process  tmux 

5
วิธีตั้งค่าการอนุญาตไฟล์เฉพาะเมื่อเปลี่ยนเส้นทางเอาต์พุต
นี่อาจเป็นสิ่งที่ซ้ำกัน แต่การค้นหาทั้งหมดของฉันมีคำถามเกี่ยวกับการอนุญาตที่ผิดพลาด ฉันใช้คำสั่งใน bash shell ฉันต้องการเปลี่ยนเส้นทางเอาต์พุตเพื่อผนวกไปยังไฟล์ที่อาจไม่มีอยู่ในการรันครั้งแรก ฉันต้องการตั้งค่าโหมดการอนุญาตเฉพาะไฟล์หากการเปลี่ยนเส้นทางผลลัพธ์ต้องสร้างไฟล์นี้ มีวิธีทำเช่นนี้ด้วยคำสั่งเดียว? ตัวอย่างเช่นฉันอาจลอง foo >> /tmp/foo.log 0644 ที่0644มีสิทธิ์ที่ฉันต้องการfoo.logจะจบลงด้วย คำสั่งที่สุดที่ผมเคยทดลองกับในทุบตีจบลงด้วยการตีความเป็นอาร์กิวเมนต์เพิ่มเติมเพื่อ0644foo ฉันรู้สึกว่านี่จะเป็นคำสั่งที่สองในchmodการอนุญาตก่อนหรือหลังการเขียนลงไป ฉันใช้ GNU bash 4.2.25 และ Ubuntu 12.04 ถ้านั่นสร้างความแตกต่างได้ - เราต้องการคำตอบทั่วไป

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