Apakah ada alat untuk meringkas apa yang semua perintah lakukan?


8

Jadi saya mengerti bahwa ada manhalaman untuk mendapatkan dokumentasi ketika internet tidak tersedia, atau ketika Anda membutuhkan penggunaan tingkat lanjut, tetapi bagaimana jika saya offline dan saya bahkan tidak tahu alat apa yang saya butuhkan untuk pekerjaan itu? Apakah ada perintah yang memungkinkan saya melihat setiap program / perintah dan deskripsi singkat?

Jawaban:


4

Anda dapat menggunakan bash (1) bawaan compgen

  • compgen -c akan mencantumkan semua perintah yang dapat Anda jalankan.
  • compgen -a akan mencantumkan semua alias yang dapat Anda jalankan.
  • compgen -b akan mencantumkan semua bawaan yang dapat Anda jalankan.
  • compgen -k akan mencantumkan semua kata kunci yang dapat Anda jalankan.
  • compgen -A function akan mencantumkan semua fungsi yang dapat Anda jalankan.
  • compgen -A function -abck akan mendaftar semua hal di atas dalam sekali jalan.

Perintah di atas mencantumkan semua perintah yang tersedia untuk pengguna berdasarkan pada hak istimewanya. Saya menonaktifkan jaringan dan menguji perintah di atas dan itu berfungsi bahkan ketika dinonaktifkan. Namun, untuk deskripsi singkat, sejauh yang saya tahu, setelah Anda mendapatkan perintah, Anda dapat melihat halaman manual.

Beberapa perintah lain yang dapat digunakan untuk melihat deskripsi tentang suatu perintah adalah,

apropos
whatis
less
groff

Referensi

https://stackoverflow.com/a/949006/1742825


Tentu saja, itu tidak selalu memberi tahu Anda jika menjalankan perintah itu akan melakukan sesuatu yang bermanfaat . Mengambil contoh jaringan yang dinonaktifkan, saya kira pingmasih terdaftar sebagai executable, tetapi tidak banyak gunanya bagimu. Juga, bukankah ini didasarkan pada arus pengguna $PATH, yang berarti bahwa jika suatu perintah tidak ada dalam salah satu direktori yang disebut sebagai jalur pencarian, itu tidak akan pernah muncul?
CVn

apropos -s1sepertinya jawaban yang lebih baik, karena itu termasuk deskripsi satu baris dari apa yang setiap perintah lakukan. Kontribusi yang diberikan jawaban ini adalah daftar alias, fungsi, dll, tetapi tanpa penjelasan tentangnya, penggunaannya terbatas, IMO.
user1404316

9

Secara umum: Tidak, beberapa program datang tanpa dokumentasi.

Namun, aproposmungkin itu yang Anda butuhkan.

Misalnya apropos sshakan mencantumkan halaman manual yang terkait dengan ssh, dalam kasus saya:

authorized_keys (5)  - OpenSSH SSH daemon
git-shell (1)        - Restricted login shell for Git-only SSH access
rlogin (1)           - OpenSSH SSH client (remote login program)
rsh (1)              - OpenSSH SSH client (remote login program)
slogin (1)           - OpenSSH SSH client (remote login program)
ssh (1)              - OpenSSH SSH client (remote login program)
ssh-add (1)          - adds private key identities to the authentication agent
ssh-agent (1)        - authentication agent
ssh-argv0 (1)        - replaces the old ssh command-name as hostname     handling
ssh-copy-id (1)      - use locally available keys to authorise logins on a     remote machine
ssh-keygen (1)       - authentication key generation, management and conversion
ssh-keyscan (1)      - gather ssh public keys
ssh-keysign (8)      - ssh helper program for host-based authentication
ssh-pkcs11-helper (8) - ssh-agent helper program for PKCS#11 support
ssh_config (5)       - OpenSSH SSH client configuration files
sshd (8)             - OpenSSH SSH daemon
sshd_config (5)      - OpenSSH SSH daemon configuration file
XAllocClassHint (3)  - allocate class hints structure and set or read a window's WM_CLASS property
XClassHint (3)       - allocate class hints structure and set or read a window's WM_CLASS property
XGetClassHint (3)    - allocate class hints structure and set or read a window's WM_CLASS property
XSetClassHint (3)    - allocate class hints structure and set or read a window's WM_CLASS property
XtIsShell (3)        - obtain and verify a widget's class

Anda dapat melihat beberapa halaman muncul lebih dari sekali, alasannya adalah rsh slogindan sshmemiliki halaman manual yang sama. Juga ada (seperti biasa) false positive.


Saya kira meskipun tidak persis apa yang saya cari, pasti alat yang sangat membantu dan serupa. Terima kasih!
OneChillDude

Mungkin tambahkan ke jawaban Anda apropos -s1, yang akan menarik semua perintah dari manbagian 1, dan hanya perintah itu, yang tampaknya menjadi apa yang diinginkan OP.
user1404316

3

Anda dapat membaca deskripsi singkat dari banyak perintah menggunakan whatis:

$ whatis pwd
pwd (1p)             - return working directory name
pwd (1)              - print name of current/working directory
pwd (n)              - Return the absolute path of the current working directory

Dan Anda dapat meminta beberapa perintah:

$ whatis pwd ls ps
pwd (1p)             - return working directory name
pwd (1)              - print name of current/working directory
pwd (n)              - Return the absolute path of the current working directory
ls (1p)              - list directory contents
ls (1)               - list directory contents
ps (1)               - report a snapshot of the current processes.
ps (1p)              - report process status

Oleh karena itu, Anda dapat mencoba membuat daftar deskripsi dari semua perintah dengan menggabungkan whatisdengan compgen:

$ whatis $(compgen -c)

Jika menghasilkan beberapa sampah di STDERR Anda dapat menggunakan `whatis $ (compgen -c) 2> / dev / null` untuk membersihkannya.
Hastur

2

Di dalam bashAnda dapat mulai dengan helpdoa sederhana dari prompt untuk memiliki daftar perintah built-in dan setelah memperbaiki dengan help commandname, man commandnamedan man -k commandname(yang terakhir untuk memperluas penelitian ke yang terkait).

Anda dapat menemukan berguna untuk membaca info coreutilsdan info. (Tidak hanya dalam bash)

Di akhir manhalaman (dan infojuga) untuk setiap perintah ada daftar perintah terkait lainnya setelah judul SEE ALSO. Titik awal yang baik untuk memperluas penelitian Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.