Pokud jste uživatelem Windows nebo nepoužíváte OSX, pravděpodobně používáte k hledání souborů grafické uživatelské rozhraní. Také vám může rozhraní připadat omezené, frustrující nebo obojí a naučili jste se vynikat v organizování věcí a pamatování si přesného pořadí souborů. Můžete to udělat i v Linuxu – ale nemusíte.
Jednou z nejlepších věcí na Linuxu je to, že nabízí různé způsoby, jak věci dělat. Můžete otevřít libovolného správce souborů a ctrl
+f
, můžete použít program, ve kterém se nacházíte, k ručnímu otevírání souborů, nebo můžete jednoduše začít psát písmena a bude filtrovat aktuální výpis adresáře.
Co když ale nevíte, kde se váš soubor nachází, a nechcete prohledávat celý disk? Linux je pro tento a řadu dalších případů použití dobře vybavený.
Vyhledání umístění programu podle názvu příkazu
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Souborový systém Linux se může zdát skličující, pokud jste zvyklí dávat věci, kam chcete. Pro mě bylo jednou z nejtěžších věcí, na kterou jsem si zvyknul, najít, kde mají programy žít.
Například which bash
obvykle vrátí /bin/bash
, ale pokud si stáhnete program a nezobrazí se ve vašich nabídkách, zobrazí se which
příkaz může být skvělým nástrojem.
Podobným nástrojem je locate
příkaz, který považuji za užitečný pro hledání konfiguračních souborů. Nemám rád psaní názvů programů, protože ty jednoduché jako locate php
často nabízejí mnoho výsledků, které je třeba dále filtrovat.
Další informace o locate
a which
, viz man
stránky:
man which
man locate
Najít
find
nástroj nabízí mnohem pokročilejší funkce. Níže je uveden příklad ze skriptu, který jsem nainstaloval na řadu serverů, které spravuji, abych zajistil, že určitý vzor souboru (také známý jako glob) existuje pouze pět dní a všechny starší soubory budou smazány. (Od poslední úpravy se používá desetinné číslo, aby se zohlednil rozdíl až 240 minut.)
find ./backup/core-files*.tar.gz -mtime +4.9 -exec rm {} \;
find
nástroj má mnoho pokročilých případů použití, ale nejběžnější je provádění příkazů na výsledcích bez řetězení a filtrování souborů podle typu, vytvoření a data modifikace.
Další zajímavé použití find
je najít všechny soubory se spustitelnými oprávněními. To může pomoci zajistit, že nikdo nebude instalovat bitcoinové těžaře nebo botnety na vaše drahé servery.
find / -perm /+x
Další informace naleznete na find
, viz man
pomocí man find.
Grep
Chcete najít soubor podle obsahu? Linux to má pokryté. K efektivnímu vyhledávání souborů, které odpovídají vzoru, můžete použít mnoho linuxových nástrojů, ale grep
je ten, který často používám.
Předpokládejme, že máte aplikaci, která doručuje chybové zprávy s odkazem na kód a trasováním zásobníku. Najdete je ve svých protokolech. Grepping není vždy cílem, ale vždy grep -R
pokud se problém týká dodané hodnoty.
Stále větší počet IDE implementuje funkce hledání, ale pokud přistupujete ke vzdálenému systému nebo z jakéhokoli důvodu nemáte GUI, nebo pokud chcete iterovat na místě, použijte: grep -R {searchterm}
nebo na systémech podporujících egrep
přezdívka; stačí přidat -e
příznak k příkazu egrep -r {regex-pattern}
.
Tuto techniku jsem použil při záplatování dhcpcd5
v Raspbian minulý rok, abych mohl pokračovat v provozování síťového přístupového bodu na novějších vydáních Debianu od Raspberry Pi Foundation.
Jaké tipy vám pomohou efektivněji vyhledávat soubory v systému Linux?