Tutoriel Linux

Dove si trova in Linux: trovare un binario e il suo manuale

Débutant5 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Hai appena installato uno strumento, ma non sai più se si trova in /usr/bin, /usr/local/bin o altrove. L’ordine dov'è Può recuperare il suo binario, il suo codice sorgente e le sue pagine man. Tuttavia, non risponde alla domanda più importante prima di qualsiasi intervento: quale file eseguirà effettivamente la tua shell?

Per evitare di modificare l’impianto difettoso, incrocio le dita. dov'è con comando -v Tipo

Tux utilizza una lente d'ingrandimento per trovare un file binario di Linux e la relativa pagina man tra diversi percorsi.
Whereis cerca file binari, sorgenti e pagine man in diverse posizioni di Linux.

Cosa sta cercando davvero Whereis?

Il caso d’uso più semplice consiste nel fornire il nome di un comando, senza alcuna opzione:

dov'è Bash
dove si trova ssh
dove si trova nginx

L’output può contenere più percorsi sulla stessa riga. dov'è Cerca tre tipi di file: il binario, il codice sorgente e la documentazione del manuale. Esamina le posizioni Linux conosciute e tiene anche conto SENTIERO e di Pertanto, non si limita a scansionare gli eseguibili che la tua shell può avviare.

dove è -b bash
dove si trova -m bash
dove è -s bash
  • -B Ricerca di file binari;
  • -M ricerca pagine di manuale e file informativi;
  • -S cercare le fonti.

Una ricerca sorgente vuota non indica necessariamente che il programma sia installato in modo errato. Spesso le distribuzioni installano il file binario e il manuale senza includere il codice sorgente. /usr/srcPer visualizzare i file effettivamente ispezionati sul tuo computer, usa:

dov'è -l

dov’è la pagina di manuale descrive in dettaglio questi percorsi e le opzioni disponibili. Questo comando non è una ricerca ricorsiva di file. Per trovare un file arbitrario in una struttura di directory, utilizzare la guida su trovare su Linux.

Verifica il comando effettivamente eseguito dalla shell

Se il tuo obiettivo è sapere cosa apparirà quando digiti python3, nginx montool, inizia con comando -v :

comando -v python3
comando -v nginx
comando -v mytool

se comando -v mytool >/dev/null 2>&1; allora
    echo "Il mio strumento è disponibile"
altro
    echo "mytool non è stato trovato" >&2
fi

Non utilizzare dov'è per questo test. Quando non viene trovato alcun file corrispondente, può semplicemente visualizzare il nome seguito da due punti e terminare con un codice di ritorno nullo. Lo script concluderebbe quindi erroneamente che il comando esiste.

Tipo va oltre, spiegando come Bash interpreta il nome:

tipo CD
tipo ls
tipo -a ls
tipo -P ls
  • tipo CD CD è un comando interno della shell;
  • tipo ls mostra la prima definizione utilizzata;
  • tipo -a ls visualizza alias, funzioni, funzioni integrate ed eseguibili con quel nome;
  • tipo -P ls SENTIERO.

Documentazione di tipo GNU Bash Questo descrive con precisione questi risultati. Se stai usando Zsh, Fish o un’altra shell, consulta la relativa documentazione: la risoluzione di alias e funzioni non è la stessa ovunque.

Capire perché “quale” non racconta tutta la storia

Quale rimane una pratica comune nei tutorial:

quale python3
quale nginx

SENTIEROIl problema è che spesso si tratta di un programma esterno che non conosce lo stato esatto della shell corrente. A seconda dell’implementazione e della distribuzione, potrebbe ignorare un alias, una funzione o un comando integrato. Per un test in uno script di shell, è più adatto. Per comprendere una collisione di nomi in una sessione interattiva, digitare -a fornisce ulteriori informazioni.

Un semplice esempio illustra la differenza:

alias ll='ls -lah'
dov'è ll
quale ll
comando -v ll
tipo II

dov'è impossibile trovare un file denominato LL, perché l’alias non è binario. comando -v E Tipo Tuttavia, vedono la ben nota definizione di Bash. L’articolo su alias in Linux Spiega come verificarli e aggirarli senza eliminare la configurazione.

Le collisioni si verificano spesso dopo l’installazione manuale in /usr/local/bin, l’aggiunta di $HOME/.local/bin o la distribuzione di una versione in /optare

dove si trova python3
tipo -a python3

tipo -P python3
readlink -f "$(type -P python3)"

dov'è può visualizzare più file binari e manuali. digitare -a mostra le versioni trovate da Bash in ordine di risoluzione. comando -v conferma la prima scelta, quindi leggerelink -f risolve qualsiasi potenziale collegamento simbolico. Infine, controlla il proprietario del pacchetto del file:

dpkg -S "$(type -P python3)"
rpm -qf "$(type -P python3)"
pacman -Qo "$(type -P python3)"

Eseguire solo il comando appropriato per la propria distribuzione. Se nessun pacchetto contiene il file, potrebbe provenire da un’installazione manuale. Prima di sostituirlo, individuare la sua versione, il suo target effettivo e i servizi che lo utilizzano. Il tutorial su archivi tar.gz su Linux /usr/local/bin deve rimanere tracciabile.

Bash memorizza anche alcuni percorsi che sono già stati risolti. Dopo aver spostato o sostituito un eseguibile, svuota questa cache e poi controlla di nuovo:


hash -r
comando -v python3
tipo -a python3

Se viene caricato prima il file sbagliato, correggere l’ordine di piuttosto che eliminare un file binario casuale. La guida su PERCORSO su Linux il documento descrive in dettaglio il test temporaneo e la modifica permanente.

Per controllare il software installato sotto /optareÈ possibile sostituire i percorsi di ricerca per i file binari o i manuali. L’opzione -F contrassegna la fine dell’elenco delle cartelle e l’inizio dei nomi da cercare:

dove è -b -B /opt/mytool/bin /usr/local/bin -f mytool
dove si trova -m -M /opt/mytool/share/man -f mytool

SENTIEROné il comando eseguito dalla shell. Pertanto, tieni presente il seguente ordine prima di rimuovere o sostituire un programma:

  • utilizzo comando -v per scoprire la definizione attiva;
  • lancio digitare -a per rilevare le collisioni;
  • risolvere i collegamenti con leggerelink -f
  • controlla il pacchetto proprietario del file;
  • per trovare i file binari e la relativa documentazione.

Grazie a questi controlli, saprai quale file verrà avviato, da dove proviene e dove trovare il suo manuale. Potrai quindi correggere un’installazione o un… senza cancellare accidentalmente la versione corretta.

sudo apt update && sudo apt upgrade