Come usare quale comando su Linux
Fatmawati Achmad Zaenuri/Shutterstock
Il Linux |_+_| comando identifica il binario eseguibile che viene avviato quando si invia un comando alla shell. Se hai diverse versioni dello stesso programma sul tuo computer, puoi usare |_+_| per scoprire quale utilizzerà la shell.
Binari e percorsi
Quando si tenta di eseguire un programma o un comando dalla finestra del terminale, la shell (di solito, bash sulle distribuzioni moderne) deve trovare quel comando e lanciarlo. Alcuni comandi, come cd , storia , e pwd , sono integrati nella shell, quindi Bash non deve lavorare troppo per trovarli.
IMPARENTATO 10 comandi di base di Linux per principianti
Ma come fa Bash a individuare altri comandi, programmi e binari autonomi esterni? Bene, Bash usa il percorso, che in realtà è una raccolta di percorsi, ognuno dei quali punta a una directory. Quindi cerca in ciascuna di quelle directory un eseguibile che corrisponda al comando o al programma che stai cercando di eseguire. Quando ne trova uno, Bash lo avvia e abbandona la ricerca.
Puoi usare |_+_| per controllare il |_+_| variabile d'ambiente e vedere le directory nel tuo percorso. Per farlo, digita quanto segue, quindi premi Invio:
which
L'elenco di output separa ogni percorso con i due punti (:). Sul computer che stiamo utilizzando, Bash cercherà le seguenti directory in questo ordine:
which
echo
$PATH
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
Ci sono molte cartelle chiamate |_+_| e |_+_| nel file system, il che può creare confusione.
Guarda quei percorsi
Diciamo che abbiamo una versione aggiornata di un programma chiamato |_+_|. È nella nostra directory corrente e possiamo eseguirlo digitando il seguente comando:
/user/games
Non è un gran programma: stampa solo il numero di versione e poi si chiude. La nuova versione è 1.2.138.
Per eseguire un programma nella directory di lavoro corrente, devi digitare ./ davanti al nome del programma, in modo che Bash sappia dove trovarlo.
Poiché vogliamo eseguire questo particolare programma da qualsiasi directory, sposteremo l'eseguibile nella cartella |_+_| directory. Bash troverà quel programma nel percorso e lo eseguirà per noi.
Non abbiamo bisogno dell'eseguibile nella nostra directory corrente, né abbiamo bisogno di digitare ./ davanti al nome del programma, come mostrato di seguito:
/usr/local/games
Ora, proviamo a eseguire il programma digitando:
/snap/bin
Annuncio pubblicitario
Qualcosa funziona, ma non è il nostro nuovo programma aggiornato. Piuttosto, è la versione precedente, 1.2.105.
Il quale comando
Il problema che abbiamo dimostrato sopra è il motivo per cui |_+_| comando è stato progettato .
In questo esempio, useremo |_+_| e passa il nome del programma che stiamo studiando come parametro della riga di comando:
/sbin
|_+_| segnala che è stata trovata una versione di |_+_| nel |_+_| directory. Poiché tale posizione appare nel percorso prima della directory in cui abbiamo spostato l'aggiornamento |_+_|, Bash utilizza quella versione precedente del programma.
Tuttavia, se usiamo |_+_| (tutti) come mostrato di seguito, |_+_| continua la ricerca anche se trova una corrispondenza:
/bin
Quindi elenca tutte le corrispondenze in una qualsiasi delle directory nel percorso.
Annuncio pubblicitarioQuindi, questo è il problema: c'è una versione precedente del programma in una directory che è anche nella patch. E quella directory viene cercata prima della directory in cui è stata rilasciata la nuova versione del programma.
Per verificare, possiamo digitare quanto segue ed eseguire esplicitamente ogni versione del programma:
htg
./htg
Questo spiega il problema e la soluzione è semplice.
In realtà, abbiamo delle opzioni. Possiamo eliminare la vecchia versione in |_+_| o spostalo da |_+_| a |_+_|.
Guarda quei risultati
Due risultati non significano necessariamente due file binari.
Diamo un'occhiata a un esempio in cui useremo il |_+_| comando con |_+_| (all) e cerca le versioni di |_+_| programma:
/usr/bin
|_+_| riporta due posizioni che ospitano una versione del |_+_| programma, ma è vero? Sarebbe strano avere due versioni diverse (o la stessa versione in più posizioni) di |_+_| installato su un computer Linux. Quindi, non accetteremo l'output da |_+_|. Invece, scaviamo un po' più a fondo.
Possiamo usare |_+_|, |_+_| (elenco lungo), e |_+_| (leggibile dall'uomo) opzioni per vedere cosa sta succedendo:
which
Annuncio pubblicitario
La dimensione del file è indicata come nove byte! Non è sicuramente una copia completa di |_+_|.
Il primo carattere dell'elenco è una l. Un file normale avrebbe un trattino (-) come primo carattere. La l è un simbolo che significa collegamento simbolico . Se ti sei perso questo dettaglio, il |_+_| il simbolo indica anche che questo è un collegamento simbolico , che puoi considerare come una sorta di scorciatoia. Questo punta alla copia di |_+_| in |_+_|.
Riproviamo con la versione di |_+_| tra |_+_|:
which
Questa voce è ovviamente un vero eseguibile binario. Il primo carattere dell'elenco è un trattino (-), il che significa che è un file normale e la dimensione del file è 167 KB. Quindi, solo una copia di |_+_| è installato, ma c'è un collegamento simbolico ad esso da un'altra directory, che Bash trova anche quando cerca il percorso.
IMPARENTATO: Come utilizzare il comando ls per elencare file e directory su Linux
Controllo di più comandi contemporaneamente
Puoi passare più programmi e comandi a |_+_| e li controllerà in ordine.
Ad esempio, se digiti:
which
|_+_| funziona attraverso l'elenco dei programmi e dei comandi che gli hai fornito ed elenca il risultato per ciascuno di essi.
Quale quale è quale?
Se sei così propenso, puoi anche usare |_+_| su se stesso digitando quanto segue:
htg
Annuncio pubblicitario Oltre a curiosare nel file system Linux per curiosità, |_+_| è più utile quando ci si aspetta un insieme di comportamenti da un comando o un programma, ma ne ottieni un altro.
Puoi usare |_+_| in questi casi per verificare che il comando che Bash sta lanciando sia quello che vuoi usare.
IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati
LEGGI SUCCESSIVO- & rsaquo; Come gestire i programmi di avvio su Ubuntu Linux
- › La cartella del computer è 40: come la star di Xerox ha creato il desktop
- & rsaquo; Cyber Monday 2021: le migliori offerte tecnologiche
- › Che cos'è la protezione anticaduta MIL-SPEC?
- › Funzioni e formule in Microsoft Excel: qual è la differenza?
- › Come trovare il tuo Spotify Wrapped 2021
- › 5 siti Web che ogni utente Linux dovrebbe aggiungere ai segnalibri
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa