คำถามติดแท็ก command-line

บรรทัดคำสั่งเป็นอินเทอร์เฟซแบบโต้ตอบกับเชลล์ของคุณ

4
วิธีส่งคำสั่งจำนวนมากไปยัง shell และรอให้คำสั่งด้านหลังลงท้ายด้วย [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันมีคำสั่งประมาณ 20 คำสั่งและฉันต้องส่งสิ่งนี้ทั้งหมดไปยัง Unix shell และคัดลอกผลลัพธ์ แต่ฉันไม่รู้ว่าจะทำอย่างไร ฉันไม่แน่ใจเกี่ยวกับเชลล์ที่ฉันมีเพราะเป็นโปรแกรมขนาดเล็กที่เชื่อมต่อกับการจัดการเครือข่ายมือถือและด้วยโปรแกรมขนาดเล็กนี้เราสามารถเข้าถึงเพื่อส่งคำสั่งตามบรรทัดและรับผลลัพธ์โดยกรีดร้องด้วยเหตุนี้ฉันจึงไม่สามารถใช้สคริปต์สำหรับ ส่งคำสั่ง คำสั่ง 1 - เชื่อมต่อกับเซิร์ฟเวอร์ รอจนกว่าคำสั่ง 1 เสร็จสิ้น คำสั่ง 2 - อัปเดตข้อมูลทั้งหมดจากเซิร์ฟเวอร์ 1 เสร็จสิ้น รอ. 3 คำสั่ง รับพารามิเตอร์ ... และคำสั่งอื่น ๆ อีกมากมาย ฉันพยายามด้วยcmd1 | cmd2 | cmd3 และ cmd1 & cmd2 & cmd3และcmd1;cmd2 ปัญหาเกิดcmd1จากการเชื่อมต่อกับ RNC …

4
CentOS: ติดตั้งแพ็คเกจที่อยู่ในไฟล์ข้อความหรือไม่?
ฉันมีการติดตั้ง CentOS ที่มีอยู่ซึ่งฉันต้องการติดตั้งแพ็คเกจเพิ่มเติม แพคเกจที่จะติดตั้งถูกส่งมาให้ฉันในรายการหนึ่งแพคเกจต่อบรรทัดซึ่งดูเหมือนว่า: .... Cluster_Administration-en-US.noarch ElectricFence.x86_64 GConf2.i386 GConf2.x86_64 GConf2-devel.i386 GConf2-devel.x86_64 Global_File_System-en-US.noarch ImageMagick.i386 ... เมื่อใช้ไฟล์ข้อความนี้จะมีวิธีติดตั้งทุกแพ็คเกจหรือไม่ ฉันสงสัยว่ารายการนี้เป็นรายการของแพ็คเกจ 'ทั้งหมด' ซึ่งสามารถติดตั้งได้เมื่อตั้งค่าระบบปฏิบัติการ

4
ค้นหาระบบไฟล์ของพาร์ติชันที่ไม่ได้ต่อเชื่อมจากสคริปต์
ฉันกำลังเขียนการติดตั้งอัตโนมัติแบบกำหนดเองโดยใช้ AIF (Arch Installation Framework) และฉันต้องการค้นหาระบบไฟล์บนพาร์ติชันที่กำหนดพาร์ติชัน จนถึงตอนนี้ฉันมีสิ่งนี้: grok_partitions () { local partitions= for label in `ls /dev/disk/by-label | grep "Arch"` do if [ $label == "Arch" ] then mount_point="/" else IFS="-" read base mount <<< "${label}" mount_point="/${mount}" fi local partition=$(readlink -f /dev/disk/by-label/${label}) local part_no=$(echo ${partition} | grep -Po '\d+') local …

3
จะติดตั้ง / ลบ / อัพเกรดแพ็คเกจ. rpm บน Red Hat ได้อย่างไร?
ฉันต้องติดตั้งแพคเกจที่ขาดหายไปในเครื่องเสมือนที่ใช้ Red Hat ฉันจะทำอย่างไร ฉันควรใช้คำสั่งใดเพื่อติดตั้ง / ลบ / อัปเกรดแพ็คเกจ. rpm

6
แสดงการแจ้งเตือนในการแสดง X ทั้งหมดที่ทำงานอยู่
ใช้บรรทัดคำสั่งฉันต้องการแสดงการแจ้งเตือนบนจอแสดงผล X ที่ทำงานทุกครั้ง (และเรียกใช้คอนโซล) สิ่งที่ต้องการ: notify-send-all 'Warning' 'Nuclear launch in 5 minutes, please evacuate' มีโปรแกรมที่จะทำเช่นนี้หรือไม่? ถ้าไม่สามารถใช้กับ bash ได้หรือไม่

6
การใช้ข้อความจากเอาต์พุตคำสั่งก่อนหน้า
แก้ไขเมษายน, 2015: หากคุณมีคำถามเดียวกันนี้ฉันขอแนะนำให้ตรวจสอบhttp://xiki.org/ ฉันรู้ว่านี่ไม่ใช่วิธีการทำงานของเทอร์มินัล แต่ฉันพบว่าตัวเองมักจะคิดว่ามีวิธีที่ง่ายในการใช้ข้อความ (คัดลอกแก้ไขปรับเปลี่ยน ฯลฯ ) ที่มีอยู่แล้วในประวัติหน้าต่างเทอร์มินัลของฉัน ฉันจินตนาการไว้ดังนี้: ฉันอยู่ที่เปลือกทุบตีของฉันเกี่ยวกับการป้อนคำสั่งและฉันรู้ว่าฉันต้องพิมพ์สิ่งที่มีอยู่แล้วบนหน้าจอไม่กี่บรรทัดข้างต้น ฉันสามารถเอื้อมหยิบเมาส์และเลือกมัน แต่ฉันเกลียดมัน สิ่งที่ฉันต้องการจริงๆในขณะนี้คือเทอร์มินัลทั้งหมดของฉันกลายเป็นบัฟเฟอร์ Vim ขนาดใหญ่ทั้งหมดนั้น: พรอมต์คำสั่งที่ฉันพิมพ์และผลลัพธ์จากคำสั่งเหล่านั้น ทุกอย่าง จากนั้นฉันก็กระโดดได้สองสามบรรทัดอาจแก้ไขนิดหน่อยและดึงข้อความ จากนั้นกลับไปที่โหมดทุบตีเปลือกและวางสิ่งที่ฉันดึงลงในบรรทัดคำสั่งปัจจุบัน ฉันรู้ว่ามีตัวเลือกบางอย่าง: โดยปกติแล้วไพพ์ข้อความที่ฉันต้องการโดยตรงจากเอาท์พุทของคำสั่งบางอย่างไปยังไฟล์หรือขวาไปที่คำสั่งถัดไป แต่สำหรับสิ่งที่คุณต้องวางแผนล่วงหน้าหรือรันคำสั่งอีกครั้งจากประวัติของคุณ (หากว่าเอาต์พุตจะไม่เปลี่ยนระหว่างการเรียกใช้) ในการเข้าถึงสำหรับเมาส์และเลือกข้อความที่จะคัดลอก อ่อนแอน่ารำคาญฉันหวังว่าฉันจะไม่ทำอย่างนั้น (นี่ไม่ใช่ไซต์ GUI stackexchange ใช่ไหม? =) ในการใช้ตัวเลือก "ส่งออกข้อความเป็น ... " เทอร์มินัลแอปพลิเคชันของฉัน (Mac OS X) และบันทึกข้อความเทอร์มินัลเป็นไฟล์ จากนั้นเปิดไฟล์และทำงานกับมัน เกือบแล้วทำไมต้องทำตามขั้นตอนการบันทึกไฟล์บนดิสก์ ดังนั้นคำถามคือคุณทำอะไรในสถานการณ์นี้ มีลูกเล่น, เครื่องมือ, คุณสมบัติของเชลล์ที่อาจมีประโยชน์ในสถานการณ์นี้หรือไม่? คุณเพิ่งลาออกตัวเองเพื่อใช้เมาส์หรือพิมพ์สิ่งที่คุณต้องการพิมพ์อีกครั้ง? อาจเป็นไปได้ว่าปัญหาคือว่าฉันไม่ได้ทำสิ่งที่ 'unix วิธี' …

7
เครื่องมือบรรทัดคำสั่งสำหรับการดาวน์โหลดฝนตกหนัก (เช่น wget หรือ curl)
ฉันสนใจในคำสั่งเดียวที่จะดาวน์โหลดเนื้อหาของ torrent (และอาจมีส่วนร่วมในฐานะ seed หลังจากดาวน์โหลดจนกว่าฉันจะหยุดมัน) โดยปกติจะมี daemon ฝนตกหนักไคลเอ็นต์ซึ่งควรเริ่มต้นแยกต่างหากก่อนและไคลเอนต์เพื่อควบคุม (เช่นtransmission-remote) แต่ฉันกำลังมองหาความเรียบง่ายของwgetหรือcurl: ให้หนึ่งคำสั่งรับผลหลังจากที่ในขณะ

2
วิธีที่ดีกว่าในการเพิ่มทางเลือกโดยใช้ทางเลือกอัพเดท?
ฉันค้นหาคู่มือมาแล้วupdate-alternativesหลายครั้ง แต่ฉันไม่สามารถหาวิธีแสดงลิงค์ปัจจุบันที่ชี้ไปยังทางเลือกเฉพาะและข้อมูลนั้นจำเป็นเมื่อทำการเพิ่มทางเลือกใหม่ จากupdate-alternativesคู่มือ: --install <link> <name> <path> <priority> สมมติว่าฉันต้องการเพิ่ม Java Runtime Edition เวอร์ชันใหม่ แต่ฉันไม่ทราบว่า symlink ปัจจุบันที่เชื่อมโยงไปยังทางเลือกอื่น ( <link>พารามิเตอร์) สิ่งที่ฉันทำในปัจจุบันคือ: sudo update-alternatives --install /tmp/randomStuff java /usr/local/java/jre1.7.0_25/bin/java 0 คำสั่งนั้นจะส่งออก: update-alternatives: renaming java link from /usr/local/bin/java to /tmp/randomStuff. การอ่านเอาต์พุตฉันพบลิงค์เก่าที่ชี้ไปยังทางเลือกดังนั้นในที่สุดฉันก็สามารถรันคำสั่งของฉันอีกครั้งด้วย<link>พารามิเตอร์ที่เหมาะสมเปลี่ยน/tmp/randomStuffเป็น/usr/local/bin/java: sudo update-alternatives --install /usr/local/bin/java java /usr/local/java/jre1.7.0_25/bin/java 0 ที่ทำงานได้ดี แต่เท่าที่ดูเรียกใช้คำสั่งที่มี/tmp/randomStuffเป็น<link>พารามิเตอร์ที่น่าอึดอัดใจมาก ดังนั้นที่นี่มาคำถาม: (1) มีupdate-alternativeข้อโต้แย้งใด ๆที่สามารถส่งออกลิงค์ปัจจุบันที่ชี้ไปที่ทางเลือกที่เฉพาะเจาะจงหรือ (2) …

4
จะออกจากโปรแกรม sh ได้อย่างไร?
ฉันทำผิดคำสั่งและเขียน sh -man ตอนนี้ฉันเข้าสู่โปรแกรมที่เรียกsh-3.2ว่าเป็นไปไม่ได้ที่จะออก Ctrlc, CtrlzหรือCtrlxไม่ทำงาน exit, quit, q, :qยังไม่ได้ทำงาน คำตอบทั้งหมดของ Google ใช้สำหรับการออกจากเชลล์สคริปต์โดยทางโปรแกรม

8
จะค้นหาไฟล์ที่มีอักขระ 100% NUL ในเนื้อหาได้อย่างไร
คำสั่งบรรทัดคำสั่ง Linux ที่สามารถระบุไฟล์ดังกล่าวคืออะไร? AFAIK findคำสั่ง (หรือgrep) สามารถจับคู่สตริงเฉพาะภายในไฟล์ข้อความเท่านั้น แต่ผมอยากให้ตรงกับเนื้อหาทั้งหมดคือผมอยากจะเห็นไฟล์ที่ตรงกับการแสดงออกปกติ\0+, ไม่สนใจตัวอักษรท้ายบรรทัด (s) บางทีfind . cat | grepสำนวนอาจใช้งานได้ แต่ฉันไม่ทราบวิธีการทำ grep โดยไม่สนใจบรรทัด (และถือว่าไฟล์เป็นไบนารี) พื้นหลัง: ทุกสองสามวันเมื่อแล็ปท็อปของฉันหยุดทำงานพาร์ติชัน btrfs ของฉันจะสูญเสียข้อมูล: ไฟล์ที่เปิดสำหรับการเขียนจะได้รับเนื้อหาของพวกเขาแทนที่ด้วยศูนย์ (ขนาดของไฟล์ยังคงไม่เปลี่ยนแปลง) ฉันใช้การซิงโครไนซ์และฉันไม่ต้องการให้ไฟล์ปลอมเหล่านี้เผยแพร่: ฉันต้องการวิธีที่จะระบุไฟล์เหล่านั้นเพื่อที่ฉันจะได้ไม่ต้องทำการสำรองข้อมูล

9
แสดงหมายเลขของสัปดาห์ในบางรูปแบบโดยใช้ ncal หรือ cal
คุณไม่เพียงแค่รักมันเมื่อทั้งสองคำสั่งทำในสิ่งที่คุณต้องการ แต่ไม่ทำทั้งสองอย่าง? นี่คือสิ่งที่calไม่ การจัดรูปแบบที่ดี ไม่มีตัวเลขสัปดาห์แม้ว่า: $ cal January 2012 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 นี่คือสิ่งที่ncalไม่ การจัดรูปแบบแปลก ๆ …

2
ฟองน้ำจาก moreutils - ความแตกต่างในการเปลี่ยนเส้นทางของเชลล์คืออะไร ตัวอย่างที่มีประโยชน์
> brew install moreutils ==> Downloading https://homebrew.bintray.com/bottles/moreutils-0.55.yosemite.bottle.tar.gz ######################################################################## 100.0% ==> Pouring moreutils0.55.yosemite.bottle.tar.gz 🍺 /usr/local/Cellar/moreutils/0.55: 67 files, 740K ฟองน้ำอ่านอินพุตมาตรฐานและเขียนมันออกไปยังไฟล์ที่ระบุ แตกต่างจากการเปลี่ยนเส้นทางของเชลล์ฟองน้ำดูดซับอินพุตทั้งหมดก่อนที่จะเขียนไฟล์เอาต์พุต สิ่งนี้อนุญาตให้สร้างท่อที่อ่านและเขียนไปยังไฟล์เดียวกัน ฉันไม่เข้าใจ โปรดยกตัวอย่างที่มีประโยชน์ให้ฉัน การดูดซับหมายถึงอะไร

1
เปลือกทั่วไป“ ส้อมระเบิด” เรียกตัวเองว่าสองครั้งอย่างแน่นอนอย่างไร?
หลังจากผ่านคำถาม Fork Bombที่โด่งดังใน Askubuntu และเว็บไซต์แลกเปลี่ยนเงินตราต่างประเทศอื่น ๆ ฉันไม่เข้าใจว่าสิ่งที่ทุกคนพูดถึงมันชัดเจน คำตอบมากมาย ( ตัวอย่างที่ดีที่สุด ) พูดอย่างนี้: " {:|: &}หมายถึงเรียกใช้ฟังก์ชัน:และส่งออกไปยัง:ฟังก์ชันอีกครั้ง" ดีสิ่งที่แน่นอนคือการส่งออกของ:? สิ่งที่ถูกส่งผ่านไปยังอีก:หรือไม่ และนอกจากนี้ยังมี: โดยพื้นฐานแล้วคุณกำลังสร้างฟังก์ชั่นที่เรียกตัวเองว่าสองครั้งทุกการโทรและไม่มีทางที่จะยุติตัวเอง วิธีการที่ถูกดำเนินการสองครั้งว่า? ในความคิดของฉันไม่มีอะไรถูกส่งผ่านไปยังวินาที:จนกว่าการดำเนินการครั้งแรกจะ:เสร็จสิ้นซึ่งจริงๆแล้วจะไม่มีวันสิ้นสุด ในCตัวอย่างเช่น foo() { foo(); foo(); // never executed } ที่สองfoo()ไม่ได้ดำเนินการเลยเพียงเพราะครั้งแรกfoo()ไม่สิ้นสุด ฉันคิดว่าตรรกะเดียวกันนี้ใช้ได้กับ:(){ :|: & };:และ :(){ : & };: ทำงานเช่นเดียวกับ :(){ :|: & };: โปรดช่วยฉันเข้าใจตรรกะ

4
ทำไมเสียงสะท้อนจึงไม่เรียกว่า / bin / sh -c echo foo เอาท์พุทอะไรเลย
ตัวอย่างเช่นขณะที่ใช้งานได้: $ echo foo foo สิ่งนี้ไม่: $ / bin / sh -c echo foo ในขณะที่สิ่งนี้ทำ: $ / bin / sh -c 'echo foo; echo bar ' foo บาร์ มีคำอธิบายไหม?


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