Bagaimana cara mendapatkan daftar semua perintah yang tersedia untuk Ubuntu?

22

Saya ingin mulai menggunakan terminal lebih sering, tetapi saya tidak tahu apa saja perintah berbeda yang tersedia untuk saya. Apakah ada cara untuk membuat daftar semua perintah berbeda yang dapat saya manfaatkan?

pengguna233219
sumber

Jawaban:

25

Metode pertama

NB : Terima kasih kepada @Rmano. Metode ini tidak bekerja dengan zshshell.

Perintah sederhana:

ls ${PATH//:/ }

Ini akan mencantumkan semua perintah di $PATHvariabel lingkungan Anda .

Untuk menyimpan hasil dalam file, Anda dapat mengarahkan output ke file.

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

Perhatikan bahwa ini akan mengembalikan kesalahan jika ada nama direktori di Anda yang $PATHmengandung spasi. Dalam hal ini, gunakan ini sebagai gantinya:

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

Metode Kedua

Anda juga dapat menggunakan:

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

Metode Ketiga

Metode lain adalah Tabklik dua kali .

Metode Keempat

Metode lain menggunakan findperintah:

find {,/usr}/{,s}bin -printf '%f\n\0'
Maythux
sumber
Perhatikan bahwa perintah pertama berfungsi bashtetapi tidak dalam zsh, yang pemisahan kata dinonaktifkan secara default. refining-linux.org/archives/38/…
Rmano
11

Jika Anda menggunakan bash, yang merupakan shell default di semua rasa resmi Ubuntu, jalankan compgen -cuntuk melihat perintah yang tersedia termasuk alias.


sumber
Apakah itu hanya bash?
Braiam
1
Bahkan perintah untuk program berbasis gui disertakan. Jadi jika Anda melakukannya compgen -c | grep thunardan Anda menginstal file manager Thunar, Anda akan melihat perintah yang berhubungan dengan Thunar juga.
1
Mmm ... tidak berfungsi di Debian. Paket mana yang menyediakan itu?
Braiam
2
@Rinzwind yang menjelaskannya, saya menggunakan zsh.
Braiam
1
@ vasa1: Bisakah jawaban ini lebih umum? Maksud saya itu hanya memberikan solusi untuk bash, tetapi seperti yang dicatat Braiam itu tidak bekerja untuk zsh ... Jika memungkinkan, tolong kembangkan jawabannya untuk memenuhi audiens yang lebih besar - jelas hanya jika Anda tahu jawabannya :-)
Aditya
4

Buka terminal Ctrl+ Alt+ tdan jalankan perintah ini:

whatis `compgen -c` | more 

Ini akan mencantumkan semua perintah dan deskripsi sederhana dari setiap perintah.

Jika Anda ingin menyimpan daftar, Anda dapat mengarahkan hasilnya ke file output

whatis `compgen -c` > listOfCommands.txt

Jadi mengapa saya menggunakan perintah whatis. Perintah itu man whatismemberi:

Setiap halaman manual memiliki deskripsi singkat yang tersedia di dalamnya.
whatis mencari nama halaman manual dan menampilkan deskripsi halaman manual dari nama yang cocok.

jadi dengan kata-kata mudah whatisberikan jenderal. deskripsi setiap perintah

Maythux
sumber
+1 untuk info tambahan. whatis `compgen -c` | sort> listOfCommands.txt akan membantu masuk daftar sortir.
Saurav Kumar
Perintah lain yang bermanfaat: apropos <keyword>mencari semua perintah dan deskripsi singkatnya dan menampilkan hasilnya
Aloso
3

Buka terminal dan tekan Tabtombol dua kali.

dadexix86
sumber
1
-1 karena ini bukan standar.
Lorenzo Ancora
@LorenzoAncora mengapa ini tidak standar? Tidak semua Ubuntu memiliki pelengkapan otomatis dengan Tab ganda sebagai perilaku standar?
dadexix86
2
Default! = Standar: di masa depan mungkin kita akan memiliki konsol yang tidak mendukung mekanisme itu, karena itu bukan standar; lebih lanjut, standar TAB dapat melayani fungsi yang berbeda. Prosedur standar adalah daftar isi 'bin', karena merupakan bagian dari standar FHS resmi dan setiap sistem Linux / Unix memiliki direktori itu. Fungsionalitas yang benar (dan kemampuan komunitas untuk membantu pengguna) Ubuntu dipastikan berdasarkan standar yang berlaku.
Lorenzo Ancora
Ok, terima kasih atas penjelasannya :) Saya berpikir bahwa perilaku standar dari Tab ganda pada Ubuntu adalah mencantumkan konten PATH :)
dadexix86
@LorenzoAncora Mencantumkan isi dari direktori mana pun tidak akan menampilkan apa pun yang dekat dengan semua perintah yang dapat dieksekusi. Mendaftar isi semua direktori PATH tidak akan menampilkan builtins shell tanpa eksekusi yang sesuai (seperti cd). Menekan Tab dua kali mengatasi kedua keterbatasan parah ini. Jika seseorang bertanya bagaimana menampilkan semua perintah pada sistem GNU / Linux yang sewenang-wenang, orang mungkin berpendapat bahwa penyelesaian Tab bukanlah solusi yang memadai. Tentu saja apa pun mungkin berubah di Ubuntu di masa depan tetapi kemungkinan penyelesaian tab di shell interaktif default akan hilang sangat kecil.
Eliah Kagan
2

Daftar perintah sangat tergantung pada apa yang telah Anda instal, tetapi ada cheat untuk mendaftar semua perintah. Berikut ini berfungsi pada sebagian besar kerang mirip-bourne:

  1. Tekan Tabdua kali.
  2. Gunakan finduntuk menemukan semua file yang dapat dieksekusi:

    find / -perm +x
    
  3. Daftar semua file dalam direktori binari (mungkin tidak lengkap):

    ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
    
Braiam
sumber
1

Buka jendela terminal (terminal GNOME OK, juga xTerm yang dikonfigurasi).
Pilihan Anda adalah:

  • Dengan menekan TABtombol ("-> <-") dua kali, Anda akan menyelesaikan perintah apa pun di konsol dan, jika saluran kosong, Anda akan mendapatkan nomor dan nama semua perintah yang tersedia . Harap dicatat bahwa ini mungkin memerlukan beberapa waktu dan mungkin mencantumkan utilitas semi-administratif. CATATAN: ini bukan standar, untuk cara "lintas-shell" lihat opsi lain.

  • Gunakan man -k NAMEuntuk mencari perintah (atau bagian dari itu) dan man COMMANDuntuk mendapatkan manual untuk perintah itu. Tidak semua perintah memiliki manual sistem; membaca lelaki itu sebelum menggunakan utilitas administratif apa pun selalu merupakan ide yang bagus; percayalah kepadaku.

  • Gunakan Midnight Commander ( mc) untuk memiliki GUI konsol (kutukan) yang bagus untuk mengelola sistem dan sistem file. Anda mungkin harus menginstalnya dari manajer paket Anda. Jangan khawatir; itu adalah perangkat lunak yang aman dan sangat umum.
    CATATAN: Ini dibuat ketika Anda memiliki kebingungan atau kesulitan dalam menggunakan sistem file.

  • Gunakan ls /bin | moreuntuk mengetahui semua executable administratif yang ada ; ls /sbin | moreuntuk executable administratif umum .

  • Gunakan ls /usr/sbin | moreuntuk mengetahui semua yang dapat dieksekusi pengguna ; ls /usr/sbin | moreakan memberikan daftar yang sangat besar dari file executable dan library pengguna .
    CATATAN: Jika output dari moremelebihi satu halaman (screenful), Anda harus menggulir py dengan menekan "Page Up" dan "Page Down" atau bilah spasi.
    Anda dapat menggunakan COMMAND | grep TEXTuntuk memfilter output.

Jika Anda memiliki lebih banyak pertanyaan, beri komentar di bawah sini dan jangan lupa untuk memeriksa centang di sebelah jawaban jika saya membantu Anda.
Selamat menikmati.

Lorenzo Ancora
sumber
Biasanya, sebagian besar executable berada /usr/bin, yang belum Anda sebutkan di sini. Juga ada /sbin, yang berisi executable yang sering digunakan untuk administrasi sistem, seperti usermoddan ifconfig. Dan banyak sistem memiliki direktori biner lainnya juga, seperti /usr/gamesdan /usr/local/bin. Lihat standar hirarki Filesystem dan man 7 hier. Anda mungkin ingin memperluas ini untuk menyebutkan direktori penting untuk executable selain /bindan /usr/sbin.
Eliah Kagan