Come reperire ELENCO TOTALE dei comandi della shell

12 risposte [Ultimo messaggio]
Ritratto di Gandalfrank
Gandalfrank
(Geek)
Offline
Geek
Iscritto: 28/08/2011
Messaggi: 138

Come da titolo, sono curioso di capire come fare a recuperare l'ELENCO TOTALE DEI COMANDI DELLA SHELL.

Sono andato a guardare nelle directory inserite nella variabile d'ambiente PATH, ma non distinguo i comandi shell dal resto.

Per favore non passatemi i soliti link che contengono i comandi base... voglio sapere come fare per OTTENERE l'ELENCO TOTALE. Wink

Ritratto di Gollum
Gollum
(Collaboratore)
Offline
Collaboratore
Iscritto: 03/03/2005
Messaggi: 802

Ci son anche link inreressanti che secondo me possono anche soddisfare le tue esigenze prova a dare un'occhiata qui

Desktop DELL XPS8100 => openSUSE_12.2 => KDE 4.10 => Core i7 => 3.4.28-2.20 => Nvidia GT220
Notebook Sony Vaio VPPCA =>openSUSE_12.2 => KDE 4.10 => Core i5 => 3.4.28-2.20 => AMD HD 6470M

Ritratto di Gollum
Gollum
(Collaboratore)
Offline
Collaboratore
Iscritto: 03/03/2005
Messaggi: 802

Adesso che ci penso nel terminale prova adare il comando xman guarda in Sections - User commands Wink

Desktop DELL XPS8100 => openSUSE_12.2 => KDE 4.10 => Core i7 => 3.4.28-2.20 => Nvidia GT220
Notebook Sony Vaio VPPCA =>openSUSE_12.2 => KDE 4.10 => Core i5 => 3.4.28-2.20 => AMD HD 6470M

Ritratto di Grinch
Grinch
(Guru)
Offline
Guru
Iscritto: 05/12/2011
Messaggi: 881

http://www.linuxguide.it/command_line/linux_commands_it.html

Ritratto di Gandalfrank
Gandalfrank
(Geek)
Offline
Geek
Iscritto: 28/08/2011
Messaggi: 138

@Grinch: grazie ma lo conosco già...

@Gollum: grazie è una buona idea.

Ritratto di Gandalfrank
Gandalfrank
(Geek)
Offline
Geek
Iscritto: 28/08/2011
Messaggi: 138

Volevo recuperare l'effettiva lista dei comandi presenti nel mio PC.

Ho fatto in questo modo:

1:-da konsole ho digitato echo $PATH e ho recuperato la lista della cartelle in cui Linux va a cercare i comandi digitati:

/home/mio_nome_utente/bin
/usr/local/bin
/usr/bin
/bin
/usr/bin/X11
7usr/X11R6/bin
/usr/games

2:- mi sono spostato nella prima cartella dell'elenco ( /home/mio_nome_utente/bin) e ho inviato l'output del comando ls ad un file di testo contenuto nella mia directory "Documenti", in questo modo:

ls>>/home/mio_nome_utente/Documenti/Lista_Comandi.txt

Ho ripetuto questo passaggio per ciascuna cartella.

3:- dopo avere ottenuto il file, l'ho aperto con Writer di LibreOffice e ho riordinato alfabeticamente i comandi per individuare eventuali doppioni. Poiché erano moltissimi, e la lista comprendeva circa 5500 elementi, mi sono scritto un piccolo programma VB.Net che mi ha passato al setaccio l'elenco togliendo i comandi ripetuti.

La lista finale contiene 2723 istruzioni fra COMANDI SHELL, FILES ESEGUIBILI e TOOLS per programmatori.

Ma almeno ho un elenco di riferimento di quello che ho a disposizione sul mio PC

Ritratto di Andrea85
Andrea85
(Collaboratore)
Offline
Collaboratore
Iscritto: 22/12/2008
Messaggi: 801

Interessante, faccio solo un piccolo appunto

Gandalfrank ha scritto:

3:- dopo avere ottenuto il file, l'ho aperto con Writer di LibreOffice e ho riordinato alfabeticamente i comandi per individuare eventuali doppioni. Poiché erano moltissimi, e la lista comprendeva circa 5500 elementi, mi sono scritto un piccolo programma VB.Net che mi ha passato al setaccio l'elenco togliendo i comandi ripetuti.


Puoi usare il comando sort per ordinare alfabeticamente e togliere i doppioni.

http://it.wikipedia.org/wiki/Sort_%28Unix%29

Ritratto di Gandalfrank
Gandalfrank
(Geek)
Offline
Geek
Iscritto: 28/08/2011
Messaggi: 138

Molto interessante... essendo alle prime armi con la shell non lo sapevo.

Conosco sort come metodo di classe per il riordinamento di array e non solo, in VB.Net, ma ne ignoravo l'esistenza in Unix.

Ritratto di aksaf
aksaf
(Guru)
Offline
Guru
Iscritto: 08/03/2011
Messaggi: 957

In effetti la bash è bella potente Smile
Per esempio puoi ottenere elenco + info brevi così (probabilmente si può scrivere in modo più efficiente, ma è tanto per avere un elenco senza pensarci troppo)

find ${PATH//:/ } -type f -exec basename '{}' \; | sort | xargs whatis

P.S.: però preferisco sempre dare "man:/" da krunner Big Grin

Ritratto di Suse98
Suse98
(Guru)
Offline
Guru
Iscritto: 03/10/2010
Messaggi: 1711

aksaf ha scritto:

In effetti la bash è bella potente Smile
Per esempio puoi ottenere elenco + info brevi così (probabilmente si può scrivere in modo più efficiente, ma è tanto per avere un elenco senza pensarci troppo)

find ${PATH//:/ } -type f -exec basename '{}' \; | sort | xargs whatis

P.S.: però preferisco sempre dare "man:/" da krunner Big Grin

si, ad esempio puoi dare il comando

find ${PATH//:/ } -type f -exec basename '{}' \; | sort | xargs whatis > comandi.txt

se stai nel terminale utente ti salva tutto nella tua home, nel file comandi.txt, ma puoi scegliere tu la directory, andandoci prima con cd, per esempio:
cd ~/Documenti/
find ${PATH//:/ } -type f -exec basename '{}' \; | sort | xargs whatis > nome_file_da_te_scelto.txt

e dare un nome per il file a tua scelta.
Ciao Wink Wave

SUSE LINUX Rilascio 12.3 (Dartmounth) KDE 4.10 && GNOME 3.8

Ritratto di Gandalfrank
Gandalfrank
(Geek)
Offline
Geek
Iscritto: 28/08/2011
Messaggi: 138

Spettacolare!!!

Grazie Smile