Esiste uno strumento per riassumere cosa fanno tutti i comandi?


8

Quindi capisco che ci sono manpagine per ottenere la documentazione quando Internet non è disponibile o quando hai bisogno di usi avanzati, ma cosa succede se sono offline e non so nemmeno quale strumento ho bisogno per il lavoro? Esiste un comando che mi consente di vedere ogni programma / comando e una breve descrizione?

Risposte:


4

Puoi usare il bash (1) integrato compgen

  • compgen -c elencherà tutti i comandi che potresti eseguire.
  • compgen -a elencherà tutti gli alias che potresti eseguire.
  • compgen -b elencherà tutti i built-in che potresti eseguire.
  • compgen -k elencherà tutte le parole chiave che potresti eseguire.
  • compgen -A function elencherà tutte le funzioni che potresti eseguire.
  • compgen -A function -abck elencherà tutto quanto sopra in una volta sola.

Il comando sopra elenca tutti i comandi disponibili per un utente in base al suo set di privilegi. Ho disabilitato la rete e testato il comando sopra e funziona anche quando disabilitato. Tuttavia, per una breve descrizione, per quanto ne so, una volta ricevuto un comando, è possibile visualizzare la pagina man.

Alcuni altri comandi che possono essere utilizzati per visualizzare la descrizione di un comando sono,

apropos
whatis
less
groff

Riferimenti

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


Naturalmente, ciò non ti direbbe necessariamente se l'esecuzione di questi comandi farà qualcosa di utile . Prendendo l'esempio delle tue reti disabilitate, suppongo che pingsarebbe ancora elencato come eseguibile, ma non ti farebbe molto bene. Inoltre, questo non è basato sulla corrente dell'utente $PATH, il che significa che se un comando non si trova in una delle directory denominate come percorso di ricerca, non verrà mai visualizzato?
un CVn

apropos -s1sembra una risposta migliore, perché include una descrizione di una riga di ciò che fa ogni comando. Ciò che questa risposta contribuisce è un elenco di alias, funzioni, ecc., Ma senza alcuna spiegazione è di scarsa utilità, IMO.
user1404316

9

In generale: No, alcuni programmi sono disponibili senza documentazione.

Tuttavia, apropospotrebbe essere proprio quello di cui hai bisogno.

Ad esempio apropos sshelencherò le pagine man relative a ssh, nel mio caso:

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

Potete vedere alcune pagine appaiono più di una volta, il motivo è che rsh slogine sshhanno la stessa pagina man. Anche lì (come al solito) falsi positivi.


Immagino, sebbene non esattamente quello che stavo cercando, sicuramente uno strumento molto utile e simile. Grazie!
OneChillDude,

Forse aggiungi alla tua risposta apropos -s1, che estrarrà tutti i comandi dalla mansezione 1, e solo quei comandi, che sembra essere ciò che l'OP vuole.
user1404316

3

Puoi leggere una breve descrizione di molti comandi usando 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

E puoi chiedere diversi comandi:

$ 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

Pertanto, puoi provare a generare un elenco di descrizioni di tutti i comandi combinando whatiscon compgen:

$ whatis $(compgen -c)

Se genera un po 'di immondizia su STDERR puoi usare `whatis $ (compgen -c) 2> / dev / null` per pulirlo.
Hastur,

2

In bashpuoi iniziare con una semplice helpchiamata dal prompt per avere un elenco di comandi integrato e dopo perfezionare con help commandname, man commandnamee man -k commandname(l'ultimo per estendere la ricerca a quelli correlati).

Puoi trovare utile leggere anche info coreutilse info. (Non solo in bash)

Alla fine delle manpagine (e infoanche) per ciascun comando c'è un elenco di altri comandi correlati dopo il titolo SEE ALSO. Un buon punto di partenza per espandere la tua ricerca.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.