EDIT: Vedi anche la risposta di d4nyll di seguito per una mappa eccellente e adatta ai principianti!
Leggi la mia risposta qui sotto per maggiori informazioni su ciò che è la PATHvariabile d'ambiente, quali .desktopfile sono e come trovare un programma specifico usando vari comandi di Linux.
Risposta originale:
Non c'è una risposta facile.
/bin, /usr/bine/usr/share
Come menzionato nelle altre risposte, puoi trovare la maggior parte degli eseguibili in /bino /usr/bine in cui sono installati i file di supporto /usr/share.
/usr/local e /opt
Esistono tuttavia più directory in cui Ubuntu installa le applicazioni. La PATHvariabile, che determina dove cercare un comando inserito, potrebbe darti un indizio, il mio appare come ( echo $PATHin un terminale):
/usr/local/cuda/bin:/usr/local/texlive/2012/bin/x86_64-linux:/usr/games:/home/gerhard/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Come puoi vedere alcuni software sono installati /usr/locale hanno una propria directory e bin. Un altro posto in cui sono installati molti programmi è /opt. Le proprietà di queste posizioni sono spiegate dal Filesystem Hierarchy Standard , che è un'ottima lettura. Sfortunatamente, la differenza tra /opte /usr/localnon è molto ben spiegata, qualcuno sullo stackexchange di unix aveva una spiegazione più elaborata:
/usr/localè un posto dove installare i file creati dall'amministratore, di solito usando il comando make. L'idea è quella di evitare scontri con file che fanno parte dei sistemi operativi che verrebbero sovrascritti o altrimenti sovrascriverebbero quelli locali. per esempio. /usr/bin/foofa parte del sistema operativo mentre /usr/local/bin/fooè un'alternativa locale,
/optè una directory per installare pacchetti non raggruppati ciascuno nella propria sottodirectory. Sono già costruiti interi pacchetti forniti da un distributore di software di terze parti indipendente. Ad esempio, someappverrebbe installato in /opt/someapp, uno dei suoi comandi sarebbe in /opt/someapp/bin/foo[e quindi di solito viene creato un collegamento simbolico in una delle bindirectory nel PATH, oppure il programma viene chiamato da un file desktop (vedi sotto)].
Trovare un programma o un comando specifico
.desktop File
Per scoprire dove è installato un programma specifico, è possibile eseguire una serie di passaggi. Per prima cosa devi individuare il suo .desktopfile. I file desktop sono simili ai collegamenti in Windows e per le applicazioni di sistema in cui si trovano /usr/share/applications. Sono presenti i file desktop per le applicazioni disponibili solo per l'utente corrente ~/.local/share/applications. Prendi ad esempio Google Chrome, che ha il file desktop /usr/share/applications/google-chrome.desktope cerca la riga che inizia con Exec=, questo determina come avviare Google Chrome. Dice:
Exec=/opt/google/chrome/google-chrome
Quindi sai che è presente Google Chrome /opt.
Ora per Mozilla Firefox che si trova in /usr/share/applications/firefox.desktop. Dice semplicemente
Exec=firefox %u
All'inizio questo non sembra aiutare molto, ma poi ti rendi conto che firefoxdeve trovarsi in una directory che si trova nella PATHvariabile (molto probabilmente a bin), e possiamo cercarla (vedi sotto).
Ricerca dei comandi
Per cercare i comandi è possibile utilizzare uno o più dei seguenti: type, whiche whereis(ho incluso un link alle loro pagine di manuale on-line).
tipo : descrive un comando e indica come sarebbe interpretato se usato come nome di comando. I tipi possibili per un comando sono:
- alias (alias shell)
- funzione (funzione shell)
- builtin (shell builtin)
- file (file su disco)
- parola chiave (parola riservata alla shell)
(il tipo stesso è un shell incorporato, provalo con type type: P)
L'esecuzione type firefoxci dà
firefox is /usr/bin/firefox
che è quello che volevamo sapere
Se un comando è un file (con cui hai controllato type) puoi anche usare:
quale : mostra il percorso completo del comando,
L'esecuzione which firefoxci dà
/usr/bin/firefox
whereis : individua i file binari, di origine e della pagina del manuale per un comando.
L'esecuzione whereis firefoxci dà
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/lib64/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz
indennità
Puoi ispezionare /usr/bin/firefoxpiù da vicino con ls -l /usr/bin/firefoxe questo dà:
/usr/bin/firefox -> ../lib/firefox/firefox.sh*
Sembra che /usr/bin/firefoxsia "solo" un collegamento simbolico alla sceneggiatura /usr/lib/firefox/firefox.sh. Se controlli lo script scopri che lo script chiama /usr/lib/firefox/firefox.
Puoi riposare in pace ora :)