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

หนึ่งหรือชุดของคำสั่งที่ออกในสภาพแวดล้อม * nix เพื่อรับข้อมูลเปลี่ยนสถานะของบางสิ่งหรือเพื่อดำเนินการบางอย่าง กล่าวอีกนัยหนึ่ง: เพื่อให้บรรลุวัตถุประสงค์

1
ดำเนินการคำสั่งที่จัดทำโดยพารามิเตอร์ฟังก์ชัน
ฉันพยายามที่จะสร้างวิธีการฟังก์ชั่นในสคริปต์ทุบตีที่ดำเนินการคำสั่งซึ่งให้กับวิธีการโดยพารามิเตอร์ ความหมายบางอย่างเช่นนี้: special_execute() { # Some code # Here's the point where the command gets executed $@ # More code } special_execute echo "abc" ฉันพยายามแล้วผม$@, "$@", $*, "$*"วิธีการที่ฉันจะทำเช่นนั้น?

1
<defunct> หมายถึงอะไรในเอาท์พุทของ ps?
ฉันได้ออกps -ef|grep javaคำสั่งและนี่เป็นหนึ่งในรายการที่ฉันได้รับ: subhrcho 875 803 0 Jan23 pts/5 00:02:27 [java] &lt;defunct&gt; อะไรคือสิ่งที่&lt;defunct&gt;อ้างว่าที่นี่? กระบวนการนั้นเป็นกระบวนการที่มี PID = 875 หรือไม่

5
วิธีการจำคำสั่งก่อนหน้า (โดยไม่มีการดำเนินการ) เพื่อเปลี่ยนคำสั่ง?
ฉันจำเคล็ดลับที่ฉันไม่สามารถเรียกใช้คำสั่งล่าสุดโดยไม่เรียกใช้: สมมติว่าฉันต้องการที่จะสามารถเข้าถึงคำสั่งได้! 1255 เมื่อกดปุ่มลูกศรขึ้นและแก้ไขคำสั่ง ดังนั้นเคล็ดลับในการเรียกคำสั่งทำให้มันปรากฏขึ้นในบรรทัดคำสั่ง แต่ไม่ได้ดำเนินการและหลังจากนั้นสามารถเข้าถึงได้ผ่านทางปุ่มลูกศรขึ้น? ฉันพยายามใส่เสียงก้อง แต่จากนั้นฉันก็มีเสียงก้องต่อคำสั่งฉันจำไม่ได้ว่าทำอย่างถูกต้อง

2
อะไรคือเหตุผลของลำดับ“ rm” ที่เฉพาะเจาะจงในมุกตลก xkcd?
นี่เป็นส่วนหนึ่งของxkcd comic stripซึ่งความคิดคือผู้เขียนไม่สามารถเขียนโปรแกรมเรียงลำดับได้ดังนั้นเขาจึงเพิ่มรหัสเพื่อลบไฟล์ทั้งหมด system("rm -rf ./"); system("rm -rf ~/*"); system("rm -rf /"); AFAIK วิธีที่เป็นที่นิยมในการลบทุกอย่างคือเพื่อrm /ให้ทุกอย่างที่เริ่มต้นจากรูทถูกลบ นี่คือคำสั่งสุดท้ายและคำสั่งสองคำสั่งก่อนหน้านั้นลองไปrmที่ไดเรกทอรีปัจจุบันและเนื้อหาของโฮมไดเรกทอรี ทำไมไม่เพียงrm /?
14 rm  command 

4
โปรดอธิบายผลลัพธ์ของคำสั่ง ps -ef นี้หรือไม่
ส่วนหนึ่งของเอาท์พุทจากps -efคำสั่งที่ได้รับด้านล่าง: UID PID PPID C STIME TTY TIME CMD root 1 0 0 2012 ? 00:00:01 init [3] root 2 1 0 2012 ? 00:00:01 [migration/0] root 3 1 0 2012 ? 00:00:00 [ksoftirqd/0] root 4 1 0 2012 ? 00:00:00 [watchdog/0] root 5 1 0 2012 ? 00:00:00 …

2
คำสั่งของ executables เริ่มต้นด้วยการทุบตี
ถ้าฉันรันtestคำสั่งใน bash testยูทิลิตี้ในตัว (ประเมินนิพจน์แบบมีเงื่อนไข) จะเริ่มขึ้น: $ type test test is a shell builtin $ type -a test test is a shell builtin test is /usr/local/bin/test test is /usr/bin/test $ อย่างไรก็ตามดังที่เห็นในผลลัพธ์ของtype -a testข้างต้นมีอีกหนึ่งtestในไดเรกทอรี / usr / local / bin และอีกหนึ่งในไดเรกทอรี / usr / bin สั่งซื้อไฟล์เอ็กซีคิ้วท์ได้อย่างไรคือคำสั่งในตัวที่ต้องการเสมอแล้วคำสั่งที่เหลือจะขึ้นอยู่กับลำดับของไดเรกทอรีในตัวแปร $ PATH นอกจากนี้เป็นไปได้หรือไม่ที่จะเปลี่ยนลำดับของโปรแกรมเริ่มทำงานเช่นถ้าฉันพิมพ์ระบบtestจะเริ่ม / usr / …

6
คุณจำตัวเลือกคำสั่งได้อย่างไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันอยากรู้ว่าเคล็ดลับที่คุณใช้เพื่อจำตัวเลือกต่าง ๆ สำหรับคำสั่งต่าง ๆ คืออะไร? การค้นหาหน้าคนตลอดเวลานั้นใช้เวลานานและไม่เจ๋งมาก!
13 shell  command 

4
อะไรคือความแตกต่างระหว่างการรันโปรแกรมที่เรียกใช้โดยชื่อและต่อท้ายจุด / สแลชก่อนหน้า?
นี่คือผลลัพธ์จากls -allคำสั่ง: -rwxr----- 1 subhrcho dba 3600 Nov 13 17:26 jdev -rw-r----- 1 subhrcho dba 1566 Nov 13 17:26 jdev-Darwin.conf -rw-r----- 1 subhrcho dba 347 Mar 6 2009 jdev-debug.boot -rw-r----- 1 subhrcho dba 821 Nov 13 17:26 jdev-logging-debug.conf -rw-r----- 1 subhrcho dba 584 Nov 13 17:26 jdev-logging.conf -rw-r----- 1 subhrcho …
13 process  command 


2
วิธีการใช้ getopt ในบรรทัดคำสั่ง bash มีตัวเลือกยาว ๆ เท่านั้น?
มีgetoptคำสั่งในบรรทัดคำสั่ง bash getoptสามารถใช้กับตัวเลือกสั้น ๆ (เช่นgetopt -o axby "$@") และสามารถใช้กับทั้งตัวเลือกแบบสั้นและแบบยาว (เช่นgetopt -o axby -l long-key -- "$@") แต่ตอนนี้ฉันต้องการตัวเลือกแบบยาวเท่านั้น (เช่นตัวเลือกแบบสั้นไม่มีอยู่จริง) อย่างไรก็ตามคำสั่งgetopt -l long-key -- "$@"ไม่ได้ แยกวิเคราะห์--long-keyตัวเลือกอย่างถูกต้อง ดังนั้นฉันจะใช้getoptคำสั่งด้วยตัวเลือกยาวเท่านั้นได้อย่างไร หรือมันเป็นไปไม่ได้หรือเป็นเพียงข้อผิดพลาดของgetoptคำสั่ง?
13 shell  command 

3
นำแพคเกจทั้งหมดที่ฉันติดตั้งออกทั้งหมดหรือไม่
ฉันใช้เซิร์ฟเวอร์ Linux หนึ่งตัวที่ติดตั้ง CentOS7 เพื่อทดสอบและติดตั้งเครื่องมือบางอย่าง และตอนนี้ฉันจำไม่ได้ว่าติดตั้งแพคเกจจำนวนเท่าไหร่ ฉันต้องการลบแพ็คเกจทั้งหมดเพื่อให้เซิร์ฟเวอร์ของฉันเหมือนใหม่เหมือนเดิม ฉันไม่ต้องการค้นหาทุกแพ็คเกจและลบทีละชุด มีวิธีใดที่จะลบออกด้วยคำสั่งเดียว?


2
Original Unix Box จำนวนคำสั่ง
เมื่อมองไปที่ Unix ฉันมักจะพบว่าจำนวนคำสั่งเทอร์มินัลค่อนข้างล้นหลาม TinyCoreLinux ตัวอย่างเช่นการกระจายที่ฉันโปรดปรานมีคำสั่งมากกว่า 300 รายการ ฉันไม่สามารถบอกได้ว่าคำสั่งเหล่านั้นมีความจำเป็นมากเพียงใด กล่อง Unix ดั้งเดิมมีคำสั่งกี่คำสั่ง ฉันหวังเป็นอย่างยิ่งว่าโดยการไปที่กล่องดั้งเดิมเราสามารถลดจำนวนคำสั่งให้กับผู้มาใหม่ได้ ใช่ฉันเข้าใจว่าคุณไม่จำเป็นต้องเรียนรู้คำสั่งทั้งหมด แต่ฉันรู้ว่าฉันรู้สึกถึงความสมบูรณ์เมื่อฉันเรียนรู้คำสั่งทั้งหมดสำหรับการเผยแพร่ (ซึ่งยังไม่เกิดขึ้นจริง)
10 command  history 

2
ดำเนินการคำสั่งในเทอร์มินัลที่ใช้งานระยะไกล
สมมติว่าคุณมีเทอร์มินัลอีมูเลเตอร์ (T1) เปิดด้วย PID 6350 จากเทอร์มินัลอื่นให้พิมพ์คำสั่งนี้ (C1): echo "ls\n" &gt; /proc/6350/fd/0 สิ่งนี้เขียนlsและขึ้นบรรทัดใหม่ใน T1 แต่ไม่ได้ดำเนินการ ทำไม? ฉันพยายามใช้cat|bashด้วยecho "ls\n" &gt; /proc/catid/fd/0แต่ก็ยังไม่ได้ดำเนินการ ฉันจะสะท้อนคำสั่งไปยังเทอร์มินัลอื่นและสั่งการได้อย่างไร? คำตอบที่เป็นไปได้: $ mkfifo toto; $ bash &lt; toto; $ echo "ls" &gt; toto; ในกรณีนี้คุณไม่สามารถเขียนได้อีกต่อไปในเทอร์มินัลโดยตรง (ทุกอย่างจะแสดงในลักษณะเดียวกับที่แสดงคำสั่ง (C1) ในเทอร์มินัลนี้

3
รับส่วนสุดท้ายของสตริงหลังจากยัติภังค์
มีบรรทัดคำสั่งง่าย ๆ ในการแยกส่วนสุดท้ายของสตริงที่คั่นด้วยเครื่องหมายขีดคั่นหรือไม่ เช่นผมต้องการที่จะแยกจาก123foo-bar-123

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