Příkaz type je vestavěný příkaz shellu bash, který může poskytnout typ zadaného příkazu.
Co to znamená „typ příkazu“? To znamená, že můžete získat informace, jako zda je linuxový příkaz vestavěným příkazem shellu, kde je umístěn jeho spustitelný soubor a zda je přidružen k nějakému jinému příkazu.
Může se zdát, že to není k ničemu, ale věřte, že by se to mohlo hodit při zkoumání, proč se příkaz chová určitým způsobem.
Použití příkazu type v Linuxu
Syntaxe příkazu type je jednoduchá:
type [options] name
Chcete-li začít, použijte příkaz type bez voleb u známého příkazu echo:
[email protected]:~$ type echo
echo is a shell builtin
Říká nám, že echo je vestavěný příkaz shellu. Toto je typ příkazu, který by se spustil, pokud je název echo interpretován příkazovým řádkem.
Zkusme něco jiného:
[email protected]:~$ type mkdir
mkdir is /usr/bin/mkdir
Ve výše uvedeném případě vyhledá spustitelný soubor příkazu mkdir. Toto je podobné příkazu which, ale typ je rychlejší, protože se jedná o vestavěný příkaz shellu.
Pokud jej použijete s něčím, co není příkaz, zobrazí se chyba nenalezena.
[email protected]:~$ type no_command
bash: type: no_command: not found
2. Typ příkazu s aliasem
Pravděpodobně již znáte aliasy v Linuxu. Pro rychlé zapamatování se jedná o pseudo příkazy, které fungují jako zkratky. Lze je nastavit ve vašem profilu shellu.
Podívejme se, jaký druh informačního typu příkaz najde, když jej použijete na příkaz s aliasem:
[email protected]:~$ type ll
ll is aliased to `ls -alF'
Jak můžete vidět, ukazuje skutečný příkaz za aliasem.
3. Získejte typ více příkazů
Můžete také použít typ s více příkazy a nechat si výsledky vrátit zpět k nám.
[email protected]:~$ type ls ll
ls is aliased to `ls --color=auto'
ll is aliased to `ls -alF'
Na Ubuntu a některých dalších distribucích má ls alias, aby vám ukázal barevný výstup. To vám pomůže rozlišit symbolické odkazy, pevné odkazy, adresáře, spustitelné soubory a další různé typy souborů.
4. Vynutit typ, aby vrátil cestu k příkazům
Pokud chcete najít spustitelný soubor příkazu a typ, který neustále poskytuje výstup, jako je vestavěný shell a informace o aliasu, můžete vynutit získání cesty pomocí volby -P.
[email protected]:~$ type -P ls
/usr/bin/ls
To vrátí název cesty, i když se jedná o alias, vestavěnou nebo funkci.
5. Získejte všechny informace o příkazech
Nejúplnější informace můžeme získat pomocí volby -a.
[email protected]:~$ type -a ls
ls is aliased to `ls --color=auto'
ls is /usr/bin/ls
ls is /bin/ls
To nám ukazuje jak informace o typu, tak každé umístění na systémové cestě se souborem.
6. Vraťte pouze typ příkazu, nikoli cestu
Zde je jiný typ, který můžete získat:
- Alias
- Vestavěné
- Soubor
- Funkce
- Klíčové slovo
Můžete se dotázat pouze na typ s volbou -t. Zde je několik příkladů:
[email protected]:~$ type -t ls
alias
[email protected]:~$ type -t echo
builtin
[email protected]:~$ type -t sort
file
[email protected]:~$ type -t _mac_addresses
function
[email protected]:~$ type -t if
keyword
Bonus:Proč vidíte „příkaz je hašovaný“?
Někdy, když uvidíte, že výstup podobný příkazu je hašován spolu s cestou ke spustitelnému souboru:
[email protected]:~$ type man
man is hashed (/usr/bin/man)
Aby nestrávili příliš mnoho času hledáním cesty ke spustitelnému souboru, shell často uchovává seznam programů, které našel v minulosti. Tento seznam se nazývá „hash“.
Když vidíte výstup jako „příkaz je hash“, znamená to, že příkaz type vrací výsledek z již provedených vyhledávání. Můžete použít hash -r donutit shell hledat od nuly.
Závěr
Doufám, že jste se dnes s tímto představením příkazu type v Linuxu naučili něco nového. Připadá mi podobný příkazu file, který se používá pro získávání informací o souborech.
Pokud se vám tato příručka líbí, sdílejte ji na sociálních sítích. Pokud máte nějaké připomínky nebo dotazy, zanechte je níže. Pokud máte nějaké návrhy na témata, která byste rádi viděli, klidně je také zanechte. Děkuji za přečtení.