Tohle je dost užitečná vychytávka v Linuxu/unixu, pokud hledáte kde se nachází nějaký příkaz a odkud se spouští, tak můžete použít which doplněný o jméno hledaného (případně i více jmen).
Pokud hledané v systému je, tak se dozvíte cestu kde to je.
Bez dalších parametrů which vrací první nalezený výskyt (což je ostatně ten, který se bude spouštět při použití), ale pokud chcete najít všechny, tak stačí použít which -a a opět doplněné příkazem co hledáte.

Pokud which příkaz nenajde, nevrátí nic – je tak snadno použitelné pro ověření toho, jestli něco v systému je či není možné vyvolat.
Jak poznáte, jestli případných víc výskytů jsou stejné nebo rozdílné? Vypište si je pomoci ls -lh a uvidíte detaily (velkost, datum, čas) ale také třeba i to, jestli jde o symlink (-> symbol).
Výše uvedené můžete kombinovat pro vypsání detailů o všech nalazených, například do
which -a docker | xargs ls -lh
Pozor na to, že which nenajde příkazy přímo zabudované v shellu.
Případně též jako
ls -lh $(which -a docker)
A jak which vlastně funguje? Neprohledává celý systém/disk, ale složky uvedené v $PATH. První nalezený je pak ten, který se spoustí, když se o to snažíte. Which je tak použitelné pro zjištění, jakou verzi něčeho vlastě spouštíte (oblíbená zábava například u Pythonu). Ostatně i proto se jmenuje jak se jmenuje, tedy which = který „bude spuštěn“.
A praktická užitečnost. Přihoďte si následující alias. Použití vám poví kde se nachází v detailní podobě
alias whereisinfo='function _f(){ ls -lh $(which $1); }; _f'
PS: Podobně jako which funguje i type – hodí se hlavně v tom, že řekne zda jde o alias, funkci, příkaz (spustitelný soubor).

Další tipy týkající se Linuxu (a podobných věcí)
-
TIP#3233: Jak se připojit k souborům sdíleným na Macu přes síť
V Jak na MacOS zpřístupnit soubory pro další počítače přes síť můžete zjistit jak na Macu zpřístupnit složky pro sdílení přes síť. A v tomto tipu, jak k nim přistupovat z dalších…
-
TIP#3213: Jak na MacOS, Windows i jinde mít snadného a praktického SSH klienta?
SSH klient, terminál, prostě cokoliv co vám umožní přístup na stroje co mají “linuxový shell” je vesmírně užitečná věc. A je dost jisté, že si nevystačíte s tím co má daný systém…
-
TIP#3165: Jak uspat/hibernovat Ubuntu z terminalu (příkazové řádky)
Pokud máte počítač s displejem, klávesnici a myší, tak uspání či hibernace bývají jednoduché. Prostě je to tam někde v menu a stačí kliknout. Nebo použít zapínací tlačítko. Co když ale máte…
-
TIP#3164: Acemagic Mini PC jako alternativa k velké PC krabici
Pořídil jsem Acemagic A3A i3-1215U (16+512GB) Silver, mám v plánu u z toho udělat “homelab server” pro nějaké věci, které nechci páchat na QNAP NAS ani na “klasickém PC”, natož na Mac…
-
TIP#3160: Jak v terminálu v Linuxu hledat v souborech. Grep a ripgrep
Něco co budete potřebovat často, zjistit zda v nějakém textovém souboru je něco obsaženo (a kde). Případně ve kterém ze souborů ve složce to něco jeho. Související příspěvky TIP#3213: Jak na MacOS,…
-
TIP#3126: Aplikace pro Chromebook? To nejlepší ze tří světů. Vlastní, pro Android a pro Linux
Pro Chromebooky existují tři hlavní typy aplikací. Nativní, pro Android a pro Linux. Dává to dost velké možnosti najít nejen ty rozšířené a oblíbené, ale přesně to co potřebujete. Související příspěvky TIP#2805: Historie…
-
TIP#3123: Jak na používání Chromebooku a iPhone? Platí i na používání čehokoliv, co není od Apple a k tomu iPhone
Co když máte iPhone a k tomu Chromebook? Jak tohle vhodně skloubit? Prakticky stejně, jako když máte iPhone a k tomu Windows či Linux. Prostě něco co není uzavřený jablečný svět. Související…
-
TIP#3119: Jak v ChromeOS mít terminál (shell). Jak na virtuální stroj s Linuxem. Vývojářský režim a co je to VT2 shell
Chromebooky umí normální linuxový terminál – stačí v nastavení zapnout Vývojové prostředí Linux. Tím se vytvoří virtuální stroj s Debianem (Crostini) a dostanete plnohodnotný shell, aniž byste museli zapínat Developer Mode. Související…
-
TIP#3115: Jak v příkazové řádce spustit více příkazů než jeden
Příkazovou řádku znáte. Ve Windows je CMD (a nově PowerShell), v Linuxu/Macu je to terminál zpřístupňující shell, v různých provedeních (bash, zsh, atd). Je velmi snadné tam prostě spustit jeden příkaz, ale…
-
TIP#3113: K čemu použít starší Chromebook? Ale i starší notebook či počítač
Pokud jste si pořídili něco novějšího či jiného a zbyl vám Chromebook, je řada možností jak ho začít používat na něco trochu jiného, než byla práce či zábava. Související příspěvky TIP#3131: Chromebook:…
-
TIP#3111: Umíte používat rouru/pipe (|)? Jaké další podobné operátory můžete využívat?
Rouru (|) znáte? A co < a >? Víte jak tyhle věcí fungují a k čemu je můžete použít? Liší se to nějak mezi operačními systémy? Související příspěvky TIP#3115: Jak v příkazové…
-
TIP#486: Jak zkontrolovat otevřené TCP/IP porty ve Windows. Poznejte příkaz netstat a další možnost jak na to
Po vysvětlení k čemu slouží ve Windows příkaz ipconfig je čas na další související příkaz (spustitelný z příkazové řádky). Jmenuje se netstat a můžete si ho nejprve vyzkoušet jako netstat /? (případně…
-
TIP#3092: Jak v Linuxu kopírovat soubory a složky? Naučte se cp
cp je základní příkaz v Linuxu pro kopírování souborů, stejně jako copy ve Windows. Ostatně je zkratka právě z oné delší verze. Související příspěvky TIP#2989: Jak na (nejen) Raspberry Pi (rychle) vidět…
-
TIP#3091: Jak na MacOS mít (spustit) Linux?
MacOS je “tak trochu” Linux, ale se záplavou změn a omezení vytvořených Apple. Pokud potřebujete skutečný Linux, tak je na to třeba jít trochu jinak. Související příspěvky TIP#3226: Jak na Macu s…

















