Introduzione
Il which
Il comando consente agli utenti di cercare nell'elenco dei percorsi nel $PATH
variabile di ambiente e restituisce il percorso completo del comando specificato come argomento. Il comando funziona individuando il file eseguibile che corrisponde al comando dato.
In questo tutorial imparerai a usare il which
comando.
Prerequisiti
- Un sistema che esegue Linux
- Accesso al terminale (Ctrl + Alt + T )
Linux con sintassi dei comandi e opzioni
La sintassi per il which
il comando è:
which -a [argument]
Argomenti
Il [argument]
variabile specifica il comando oi comandi che vuoi trovare.
Ad esempio, il comando seguente restituisce la posizione del comando cat:
which cat
Opzioni
Il which
comando ha una sola opzione, -a
. È facoltativo e viene utilizzato per stampare tutte le corrispondenze che trova.
Il comando cerca le corrispondenze da sinistra a destra. Se sono presenti più corrispondenze nelle directory elencate in $PATH
, which
stampa solo il primo. Il -a
l'opzione indica which
per stampare tutte le corrispondenze.
Importante: Su molte distribuzioni Linux, which
esclude i comandi incorporati della shell e non restituisce la loro posizione.
Ad esempio:
which -a touch
Avere più corrispondenze a volte significa che una corrispondenza è un collegamento simbolico all'altra. Tuttavia, è possibile avere due versioni dello stesso comando in posizioni diverse o due comandi diversi che utilizzano lo stesso nome.
Nota: A differenza di molti altri comandi, which
non ha --help
opzione. Per vedere la descrizione del comando e la guida, esegui man which
.
Stato di uscita
Il which
comando restituisce uno dei seguenti valori che ne indicano lo stato di uscita:
0
. Tutti gli argomenti sono stati trovati ed eseguibili.1
. Uno o più argomenti non esistono o non sono eseguibili.2
. È stata specificata un'opzione non valida.
Linux quali esempi di comandi
Gli esempi seguenti mostrano come il which
il comando funziona e come utilizzare l'opzione disponibile.
1. Visualizza il percorso di qualsiasi file eseguibile
Per visualizzare il percorso di qualsiasi comando, passa il nome del comando come argomento dopo which
.
Ad esempio:
which tr
L'output mostra il percorso del file eseguibile del comando tr, che si trova in /usr/bin/tr .
2. Visualizza percorsi multipli di file eseguibili
which
accetta più argomenti e restituisce il percorso a ciascuno nell'ordine specificato.
Ad esempio:
which nc mount sort
Il comando funziona attraverso l'elenco fornito e restituisce i risultati per il comando nc, il comando mount e il comando sort, separando ogni risultato con un carattere di nuova riga.
3. Elenca tutte le istanze
which
mostra solo la prima corrispondenza trovata nel $PATH
elenco di directory variabili. Usa il -a
opzione per mostrare ogni corrispondenza per il comando specificato.
Ad esempio, la ricerca di istanze del comando less genera due risultati quando si utilizza il -a
opzione:
which -a less
Utilizzare il comando ls per controllare i dettagli del file e determinare se entrambe le versioni sono file eseguibili. Corri:
ls -lh /usr/bin/less
ls -lh /bin/less
L'output mostra due versioni identiche dello stesso comando in due posizioni, entrambe grandi 176 KB ed entrambe eseguibili.
Nota: Il /bin contiene eseguibili che possono essere utilizzati dall'amministratore di sistema e da qualsiasi altro utente e che sono necessari per le riparazioni di emergenza del sistema. Il /usr/bin directory è la directory principale per i comandi eseguibili sul sistema.
4. Trova collegamenti simbolici
Utilizzando il -a
opzione elenca tutti i percorsi che contengono un'istanza del programma specificato. Sebbene su un sistema possano esistere più versioni dello stesso programma, a volte una delle istanze è solo un collegamento simbolico e non un file binario.
Ad esempio, l'esecuzione del comando seguente genera due istanze del comando atq:
which -a atq
Ancora una volta, usa il ls
comando per controllare i dettagli di entrambi i file. Corri:
ls -lh /usr/bin/atq
ls -lh /bin/atq
L'output mostra che entrambi i file sono collegamenti simbolici (->
) solo 2 byte grandi e che puntano al comando at.
5. Escludi Shell Built-in
Come accennato in precedenza, il which
comando esclude i built-in della shell dal suo output.
Ad esempio, chiedendo la posizione dei comandi read e man si ottiene solo la posizione per il man
file eseguibile del comando, come read
è un comando della shell bash.
which read man
Conclusione
Questo tutorial ha mostrato come utilizzare il which
comando in Linux per trovare il percorso del binario eseguibile di un comando. Consulta e scarica il nostro cheat sheet dei comandi Linux per altri comandi Linux essenziali ed esempi di utilizzo.