Úvod
which
umožňuje uživatelům vyhledávat v seznamu cest v $PATH
prostředí a vypíše úplnou cestu příkazu zadaného jako argument. Příkaz funguje tak, že najde spustitelný soubor odpovídající danému příkazu.
V tomto tutoriálu se naučíte používat which
příkaz.
Předpoklady
- Systém se systémem Linux
- Přístup k terminálu (Ctrl + Alt + T )
Linux, jehož syntaxe a možnosti příkazů
Syntaxe pro which
příkaz je:
which -a [argument]
Argumenty
[argument]
proměnná určuje příkaz nebo příkazy, které chcete najít.
Například následující příkaz vypíše umístění příkazu cat:
which cat
Možnosti
which
má pouze jednu možnost, -a
. Je volitelný a používá se k tisku všech nalezených shod.
Příkaz vyhledává shody zleva doprava. Pokud je v adresářích uvedených v $PATH
nalezeno více shod , which
vytiskne pouze první. -a
volba dává pokyn which
vytisknout všechny shody.
Důležité: V mnoha distribucích Linuxu which
vylučuje vestavěné příkazy shellu a nevydává jejich umístění.
Například:
which -a touch
Více shod někdy znamená, že jedna shoda je symbolickým odkazem na druhou. Je však možné mít dvě verze stejného příkazu na různých místech nebo dva různé příkazy se stejným názvem.
Poznámka: Na rozdíl od mnoha jiných příkazů which
nemá --help
volba. Chcete-li zobrazit popis příkazu a nápovědu, spusťte man which
.
Stav ukončení
which
příkaz vrátí jednu z následujících hodnot, které označují jeho stav ukončení:
0
. Všechny argumenty byly nalezeny a spustitelné.1
. Jeden nebo více argumentů neexistuje nebo je nelze spustit.2
. Byla zadána neplatná možnost.
Příklady příkazů Linux
Následující příklady ukazují, jak which
příkaz funguje a jak používat dostupnou možnost.
1. Zobrazit cestu k libovolnému spustitelnému souboru
Chcete-li zobrazit cestu libovolného příkazu, předejte název příkazu jako argument za which
.
Například:
which tr
Výstup zobrazuje cestu ke spustitelnému souboru příkazu tr, který se nachází v /usr/bin/tr .
2. Zobrazit více cest k spustitelným souborům
which
přijímá více argumentů a vydává cestu ke každému z nich v určeném pořadí.
Například:
which nc mount sort
Příkaz pracuje prostřednictvím dodaného seznamu a vypisuje výsledky pro příkaz nc, příkaz mount a příkaz řazení, přičemž každý výsledek odděluje znakem nového řádku.
3. Vypsat všechny instance
which
zobrazí pouze první shodu, kterou najde v $PATH
variabilní seznam adresářů. Použijte -a
možnost zobrazit každou shodu pro zadaný příkaz.
Například při hledání instancí příkazu less se při použití -a
zobrazí dva výsledky. možnost:
which -a less
Pomocí příkazu ls zkontrolujte podrobnosti o souboru a určete, zda jsou obě verze spustitelné soubory. Spustit:
ls -lh /usr/bin/less
ls -lh /bin/less
Výstup zobrazuje dvě identické verze stejného příkazu na dvou místech, obě o velikosti 176 kB a obě spustitelné.
Poznámka: /bin adresář obsahuje spustitelné soubory, které může používat správce systému a jakýkoli jiný uživatel a které jsou nutné pro nouzové opravy systému. Soubor /usr/bin adresář je primární adresář pro spustitelné příkazy v systému.
4. Najděte symbolické odkazy
Pomocí -a
volba uvádí všechny cesty obsahující instanci zadaného programu. Zatímco v systému může existovat více verzí stejného programu, někdy je jednou z instancí pouze symbolický odkaz a nikoli binární soubor.
Například spuštění následujícího příkazu vypíše dvě instance příkazu atq:
which -a atq
Opět použijte ls
pro kontrolu podrobností pro oba soubory. Spustit:
ls -lh /usr/bin/atq
ls -lh /bin/atq
Výstup ukazuje, že oba soubory jsou symbolické odkazy (->
) pouze 2 bajty velké a ukazující na příkaz at.
5. Vyloučit vestavěné Shell
Jak již bylo zmíněno, which
příkaz vyloučí ze svého výstupu vestavěné shelly.
Například dotaz na umístění příkazů read a man vypíše pouze umístění pro man
spustitelný soubor příkazu, jako read
je příkaz bash shell.
which read man
Závěr
Tento tutoriál ukázal, jak používat which
příkaz v Linuxu k nalezení cesty ke spustitelnému binárnímu souboru příkazu. Podívejte se a stáhněte si náš cheat sheet pro příkazy Linuxu, kde najdete další základní příkazy systému Linux a příklady jejich použití.