Come ottenere un elenco di tutti i comandi disponibili per Ubuntu?


22

Voglio iniziare a utilizzare il terminale più spesso, ma non so quali sono i diversi comandi disponibili per me. C'è un modo per elencare tutti i diversi comandi che posso usare?

Risposte:


25

Primo metodo

NB : grazie a @Rmano. Questo metodo non funziona con la zshshell.

Un semplice comando:

ls ${PATH//:/ }

Questo elencherà tutti i comandi nella $PATHvariabile di ambiente.

Per archiviare il risultato in un file è possibile reindirizzare l'output su un file.

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

Nota che questo restituirà un errore se i nomi delle directory nei tuoi $PATHspazi contengono. In tal caso, utilizzare questo invece:

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

Secondo metodo

Inoltre puoi usare:

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

Terzo metodo

Un altro metodo è un doppio Tabclic.

Quarto metodo

Un altro metodo che utilizza il findcomando:

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

Si noti che il primo comando funziona in bashma non in zsh, con la divisione delle parole disabilitata per impostazione predefinita. refining-linux.org/archives/38/…
Rmano

11

Se stai usando bash, che è la shell predefinita in tutte le versioni ufficiali di Ubuntu, corri compgen -cper vedere i comandi disponibili inclusi gli alias.


Questo è solo bash?
Braiam,

1
Sono inclusi anche i comandi per i programmi basati su GUI. Quindi, se lo fai compgen -c | grep thunare hai installato il file manager Thunar, vedrai anche i comandi relativi a Thunar.

1
Mmm ... is non funziona in Debian. Quale pacchetto lo fornisce?
Braiam,

2
@Rinzwind che lo spiega, sto usando zsh.
Braiam,

1
@ vasa1: questa risposta potrebbe essere più generale? Voglio dire, fornisce solo la soluzione per bash, ma come ha notato Braiam, non funziona per zsh ... Se possibile, potresti ampliare la risposta per soddisfare un pubblico più vasto - ovviamente solo se conosci la risposta :-)
Aditya,

4

Apri il terminale Ctrl+ Alt+ ted esegui questo comando:

whatis `compgen -c` | more 

Questo elencherà tutti i comandi e una semplice descrizione di ciascun comando.

Se si desidera salvare l'elenco, è possibile reindirizzare il risultato in un file di output

whatis `compgen -c` > listOfCommands.txt

Quindi perché ho usato il comando whatis. Il comando man whatisdà:

Ogni pagina di manuale ha una breve descrizione disponibile al suo interno.
whatis cerca i nomi delle pagine del manuale e visualizza le descrizioni delle pagine del manuale di qualsiasi nome abbinato.

quindi in parole semplici whatisdare un generale. descrizione di ciascun comando


+1 per ulteriori informazioni. whatis `compgen -c` | sort> listOfCommands.txt ti aiuterà a entrare nell'elenco di ordinamento.
Saurav Kumar il

Un altro comando utile: apropos <keyword>cerca tutti i comandi e la loro breve descrizione e visualizza i risultati
Aloso

3

Aprire un terminale e premere Tabdue volte il tasto.


1
-1 perché questo non è standard.
Lorenzo Ancora

@LorenzoAncora perché non è standard? Non tutti gli Ubuntu hanno il completamento automatico con doppia scheda come comportamento standard?
dadexix86,

2
Predefinito! = Standard: in futuro forse avremo una console che non supporta quel meccanismo, perché non è standard; inoltre, lo standard TAB può svolgere una funzione diversa. Una procedura standard elenca il contenuto di 'bin', perché fa parte dello standard FHS ufficiale e qualsiasi sistema Linux / Unix ha quella directory. La corretta funzionalità (e la capacità della community di aiutare gli utenti) di Ubuntu è garantita dal rispetto degli standard.
Lorenzo Ancora

Ok, grazie per la spiegazione :) Ho pensato che il comportamento standard della doppia scheda su Ubuntu fosse di elencare il contenuto di PATH :)
dadexix86

@LorenzoAncora L'elenco dei contenuti di una directory non verrà mostrato in nessun posto vicino a tutti i comandi eseguibili. L'elenco dei contenuti di tutte le directory PATH non mostrerà i builtin della shell senza alcun eseguibile corrispondente (come cd). Premendo Tab due volte si superano entrambe queste gravi limitazioni. Se qualcuno avesse chiesto come mostrare tutti i comandi su un sistema GNU / Linux arbitrario, si potrebbe sostenere che il completamento di Tab non è una soluzione adeguata. Ovviamente in Ubuntu potrebbe cambiare qualcosa in futuro, ma la probabilità che il completamento della scheda nella shell interattiva predefinita scompaia è minima.
Eliah Kagan,

2

Un elenco di comandi dipende molto da ciò che hai installato, ma ci sono dei trucchi per elencare tutti i comandi. Quanto segue funziona sulla maggior parte delle conchiglie simili a bourne:

  1. Premi Tabdue volte.
  2. Utilizzare findper trovare tutti gli eseguibili:

    find / -perm +x
    
  3. Elenca tutti i file nelle directory binarie (potrebbe essere incompleto):

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

1

Apri una finestra di terminale (il terminale GNOME è OK, anche un xTerm configurato).
Le tue opzioni sono:

  • Premendo due volte il TABtasto ("-> <-"), completerai qualsiasi comando nella console e, se la riga è vuota, otterrai il numero e i nomi di tutti i comandi disponibili . Si noti che potrebbe richiedere del tempo ed elencare le utilità semi-amministrative. NOTA: questo non è uno standard, per un modo "cross-shell" vedi le altre opzioni.

  • Utilizzare man -k NAMEper cercare un comando (o parte di esso) e man COMMANDper ottenere il manuale per quel comando. Non tutti i comandi hanno un manuale di sistema; leggere l'uomo prima di usare qualsiasi utilità amministrativa è sempre una buona idea; fidati di me.

  • Usa Midnight Commander ( mc) per avere una buona interfaccia grafica della console (maledizioni) per gestire il sistema e il file system. Potrebbe essere necessario installarlo dal gestore dei pacchetti. Non ti preoccupare; è un software sicuro ed estremamente comune.
    NOTA: è indicato per problemi di confusione o difficoltà nell'uso del file system.

  • Utilizzare ls /bin | moreper conoscere tutti gli eseguibili amministrativi esistenti ; ls /sbin | moreper eseguibili amministrativi comuni .

  • Utilizzare ls /usr/sbin | moreper conoscere tutti gli eseguibili dell'utente ; ls /usr/sbin | morefornirà un enorme elenco di eseguibili e librerie utente .
    NOTA: se l'output moresupera una pagina (schermata), è necessario scorrere premendo "Pagina su" e "Pagina giù" o barra spaziatrice.
    È possibile utilizzare COMMAND | grep TEXTper filtrare l'output.

Se hai altre domande, commenta qui sotto e non dimenticare di controllare il segno di spunta accanto alla risposta se ti ho aiutato.
Buona esperienza


Di solito, ci sono molti eseguibili /usr/bin , che non hai menzionato qui. Inoltre c'è /sbin, che contiene eseguibili spesso usati per l'amministrazione del sistema, come usermode ifconfig. E molti sistemi hanno anche altre directory binarie, come /usr/gamese /usr/local/bin. Vedi la gerarchia del filesystem standard e man 7 hier. Potresti voler espandere questo per menzionare importanti directory per eseguibili oltre a /bine /usr/sbin.
Eliah Kagan,

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.