จะรับรายการคำสั่งทั้งหมดที่มีสำหรับ Ubuntu ได้อย่างไร


22

ฉันต้องการเริ่มใช้เทอร์มินัลบ่อยขึ้น แต่ฉันไม่รู้ว่าคำสั่งต่าง ๆ ที่ฉันมีให้ใช้คืออะไร มีวิธีแสดงรายการคำสั่งต่าง ๆ ทั้งหมดที่ฉันสามารถใช้ประโยชน์ได้หรือไม่?

คำตอบ:


25

วิธีแรก

NB : ขอบคุณ @Rmano วิธีนี้ใช้ไม่ได้กับ zshเชลล์

คำสั่งง่ายๆ:

ls ${PATH//:/ }

นี่จะแสดงรายการคำสั่งทั้งหมดใน$PATHตัวแปรสภาพแวดล้อมของคุณ

ในการจัดเก็บผลลัพธ์ในไฟล์คุณสามารถเปลี่ยนเส้นทางผลลัพธ์ไปยังไฟล์

ls ${PATH//:/ } > mycommands.txt

โปรดทราบว่าสิ่งนี้จะส่งคืนข้อผิดพลาดหากชื่อไดเรกทอรีใด ๆ ใน$PATHช่องว่างของคุณ ในกรณีนี้ให้ใช้สิ่งนี้แทน:

while read -d ':' dir; do echo "$dir"; done <<<$PATH

วิธีที่สอง

นอกจากนี้คุณสามารถใช้:

compgen -c | sort -u > commands && less commands

วิธีที่สาม

อีกวิธีคือดับเบิลTabคลิก

วิธีที่สี่

วิธีอื่นโดยใช้findคำสั่ง:

find {,/usr}/{,s}bin -printf '%f\n\0'

ขอให้สังเกตว่าคำสั่งแรกใช้งานbashได้ แต่ไม่ได้อยู่ในzshนั้นซึ่งการแยกคำถูกปิดใช้งานโดยค่าเริ่มต้น refining-linux.org/archives/38/…
Rmano

11

หากคุณกำลังใช้ bash ซึ่งเป็นเชลล์เริ่มต้นในทุกรสชาติของ Ubuntu อย่างเป็นทางการให้เรียกcompgen -cใช้คำสั่งที่มีอยู่รวมถึงนามแฝง


ทุบตีนั้นเท่านั้นหรือไม่
Braiam

1
แม้แต่คำสั่งสำหรับโปรแกรมที่ใช้ gui ก็รวมอยู่ด้วย ดังนั้นถ้าคุณทำcompgen -c | grep thunarและติดตั้งเครื่องมือจัดการไฟล์ Thunar คุณจะเห็นคำสั่งที่เกี่ยวข้องกับ Thunar เช่นกัน

1
อืม ... ใช้ไม่ได้กับ Debian แพ็คเกจใดให้
Braiam

2
@ Rinzwind ที่อธิบายมันฉันใช้ zsh
Braiam

1
@ vasa1: คำตอบนี้อาจจะกว้างกว่านี้อีกไหม? ฉันหมายถึงมันให้วิธีแก้ปัญหาสำหรับทุบตีเท่านั้น แต่อย่างที่ Braiam ตั้งข้อสังเกตว่ามันไม่ได้ผลกับ zsh ... ถ้าเป็นไปได้คุณช่วยขยายคำตอบเพื่อตอบสนองผู้ชมกลุ่มใหญ่ได้อย่างชัดเจนถ้าคุณรู้คำตอบ :-)
Aditya

4

เปิด terminal Ctrl+ Alt+ tและเรียกใช้คำสั่งนี้:

whatis `compgen -c` | more 

นี่จะแสดงรายการคำสั่งทั้งหมดและคำอธิบายอย่างง่ายของแต่ละคำสั่ง

หากคุณต้องการบันทึกรายการคุณสามารถเปลี่ยนเส้นทางผลลัพธ์เป็นไฟล์เอาต์พุต

whatis `compgen -c` > listOfCommands.txt

ดังนั้นทำไมฉันใช้คำสั่ง whatis คำสั่ง man whatisให้:

หน้าคู่มือแต่ละหน้าจะมีคำอธิบายสั้น ๆ อยู่ภายใน
สิ่งที่ค้นหาชื่อหน้าคู่มือและแสดงคำอธิบายหน้าคู่มือของชื่อใด ๆ ที่ตรงกัน

ดังนั้นในคำง่าย ๆwhatisให้ทั่วไป คำอธิบายของแต่ละคำสั่ง


+1 สำหรับข้อมูลเพิ่มเติม สิ่งที่ `compgen -c` | sort> listOfCommands.txtจะช่วยให้ไปในรายการเรียงลำดับ
Saurav Kumar

อีกคำสั่งที่มีประโยชน์: apropos <keyword>ค้นหาคำสั่งทั้งหมดและคำอธิบายสั้น ๆ และแสดงผลลัพธ์
Aloso

3

เปิดเทอร์มินัลแล้วกดTabปุ่มสองครั้ง


1
-1 เนื่องจากไม่ได้มาตรฐาน
Lorenzo Ancora

@ LorenzoAncora ทำไมมันไม่ได้มาตรฐาน? อูบุนตูทุกคนไม่มีการเติมข้อความอัตโนมัติด้วย Double Tab เป็นพฤติกรรมมาตรฐานหรือไม่?
dadexix86

2
Default! = standard: ในอนาคตบางทีเราอาจมีคอนโซลที่ไม่สนับสนุนกลไกนั้นเพราะมันไม่ได้มาตรฐาน ยิ่งไปกว่านั้นมาตรฐาน TAB อาจทำหน้าที่แตกต่างกัน ขั้นตอนมาตรฐานคือการแสดงรายการเนื้อหาของ 'bin' เพราะเป็นส่วนหนึ่งของมาตรฐาน FHS อย่างเป็นทางการและระบบ Linux / Unix ใด ๆ ที่มีไดเรกทอรีนั้น ฟังก์ชั่นที่ถูกต้อง (และความสามารถของชุมชนที่จะช่วยเหลือผู้ใช้) ของ Ubuntu นั้นได้รับการรับรองตามมาตรฐาน
Lorenzo Ancora

ตกลงขอบคุณสำหรับคำอธิบาย :) ฉันคิดว่าพฤติกรรมมาตรฐานของแท็บสองครั้งใน Ubuntu คือการแสดงเนื้อหาของ PATH :)
dadexix86

@LorenzoAncora การแสดงเนื้อหาของไดเรกทอรีใดไดเรกทอรีหนึ่งจะไม่ปรากฏที่ใดก็ได้ใกล้กับคำสั่งที่ปฏิบัติการได้ทั้งหมด การแสดงเนื้อหาของไดเรกทอรี PATH ทั้งหมดจะไม่แสดงเชลล์บิลด์ที่ไม่มีการปฏิบัติการที่สอดคล้องกัน (เช่นcd) กดแท็บสองครั้งเอาชนะทั้งข้อ จำกัด ที่รุนแรงเหล่านี้ หากมีคนถามวิธีแสดงคำสั่งทั้งหมดบนระบบ GNU / Linux โดยพลการผู้ใช้อาจยืนยันว่าการเติมแท็บนั้นไม่สมบูรณ์ แน่นอนว่าอาจมีการเปลี่ยนแปลงอะไรในอูบุนตูในอนาคต แต่ความเป็นไปได้ที่แท็บจะเสร็จสมบูรณ์ในเชลล์เชิงโต้ตอบเริ่มต้นจะหายไปเล็กน้อย
Eliah Kagan

2

รายการคำสั่งขึ้นอยู่กับสิ่งที่คุณติดตั้งไว้อย่างมาก แต่มีกลโกงเพื่อแสดงรายการคำสั่งทั้งหมด งานต่อไปนี้ใช้กับกระสุนที่คล้ายกับ bourne ส่วนใหญ่:

  1. กดTabสองครั้ง
  2. ใช้findเพื่อค้นหา executables ทั้งหมด:

    find / -perm +x
    
  3. รายการไฟล์ทั้งหมดในไดเรกทอรีไบนารี (อาจไม่สมบูรณ์):

    ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
    

1

เปิดหน้าต่างเทอร์มินัล (เทอร์มินัล GNOME ก็โอเค xTerm ที่กำหนดค่าด้วย)
ตัวเลือกของคุณคือ:

  • โดยการกดTABคีย์ ( "-> <-") ครั้งที่สองคุณจะเสร็จสิ้นคำสั่งใด ๆ ในคอนโซลและหากสายไม่ว่างคุณจะได้รับหมายเลขและชื่อของคำสั่งที่ใช้ได้ทั้งหมด โปรดทราบว่าอาจต้องใช้เวลาสักครู่และอาจแสดงรายการยูทิลิตี้การดูแลระบบกึ่ง หมายเหตุ: นี่ไม่ใช่มาตรฐานสำหรับวิธี "ข้ามเปลือก" ดูตัวเลือกอื่น ๆ

  • ใช้man -k NAMEเพื่อค้นหาคำสั่ง (หรือส่วนหนึ่งของมัน) และman COMMANDเพื่อรับคู่มือสำหรับคำสั่งนั้น คำสั่งที่ไม่ใช่อัลมีคู่มือระบบ; การอ่านผู้ชายก่อนใช้ยูทิลิตี้การจัดการใด ๆ เป็นความคิดที่ดีเสมอ เชื่อฉัน.

  • ใช้ Midnight Commander ( mc) เพื่อมี GUI (curses) GUI ที่ดีในการจัดการระบบและระบบไฟล์ คุณอาจต้องติดตั้งจากผู้จัดการแพคเกจของคุณ ไม่ต้องกังวล มันปลอดภัยและเป็นซอฟต์แวร์ที่ใช้กันทั่วไปมาก
    หมายเหตุ: มันถูกสร้างขึ้นมาเมื่อคุณมีความสับสนหรือความยากลำบากในการใช้ระบบไฟล์

  • ใช้ls /bin | moreเพื่อรู้ว่าExables การบริหารจัดการทั้งหมด; ls /sbin | moreสำหรับexecutables การบริหารทั่วไป

  • ใช้ls /usr/sbin | moreเพื่อให้รู้ว่าไฟล์โปรแกรมทั้งหมดของผู้ใช้ ; ls /usr/sbin | moreจะให้รายชื่อผู้ใช้และไลบรารีที่ใหญ่มาก
    หมายเหตุ: หากผลลัพธ์จากmoreเกินหนึ่งหน้า (หน้าจอ) คุณจะต้องเลื่อนการกด "Page Up" และ "Page Down" หรือ spacebar
    คุณสามารถใช้COMMAND | grep TEXTเพื่อกรองเอาท์พุท

หากคุณมีคำถามเพิ่มเติมแสดงความคิดเห็นภายใต้ที่นี่และอย่าลืมตรวจสอบเห็บถัดจากคำตอบถ้าฉันช่วยคุณ
มีประสบการณ์ที่ดี


โดยปกติแล้ว executables ส่วนใหญ่อยู่ใน/usr/binซึ่งคุณไม่ได้กล่าวถึงที่นี่ นอกจากนี้ยังมี/sbinซึ่งมี executables มักจะใช้สำหรับการบริหารระบบเช่นและusermod ifconfigและหลายระบบมีไดเรกทอรีไบนารีอื่น ๆ ด้วยเช่นและ/usr/games /usr/local/binดูระบบแฟ้มมาตรฐานลำดับชั้นman 7 hierและ คุณอาจต้องการที่จะขยายนี้จะพูดถึงไดเรกทอรีที่สำคัญสำหรับ executables นอกจากและ/bin /usr/sbin
Eliah Kagan

-1

มันค่อนข้างเก่า แต่ก็ยังมีความเกี่ยวข้อง

http://fosswire.com/post/2008/04/ubuntu-cheat-sheet/

และข้อมูลการใช้งานเทอร์มินัล Ubuntu

https://help.ubuntu.com/community/UsingTheTerminal

หน้าด้านบนมีลิงก์มากขึ้นในตอนท้ายซึ่งจะช่วยคุณค้นหาคำสั่งเพิ่มเติมสำหรับ Ubuntu

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