Materiál, jehož překlad dnes zveřejňujeme, je určen pro ty, kteří chtějí ovládat příkazový řádek Linuxu. Schopnost efektivně používat tento nástroj může ušetřit spoustu času. Zejména zde budeme hovořit o shellu Bash a 21 užitečných příkazech. Řekneme si také, jak používat příznaky příkazů a aliasy Bash pro urychlení psaní dlouhých instrukcí.
→
Podmínky
Když se naučíte pracovat s příkazovým řádkem Linuxu, setkáte se s mnoha koncepty, které jsou užitečné pro orientaci. Některé z nich, jako "Linux" a "Unix", nebo "shell" a "terminál", jsou někdy zmatené. Promluvme si o těchto a dalších důležitých pojmech.
Nyní, když jsme probrali důležité pojmy, chci upozornit, že výrazy „Bash“, „shell“ a „příkazový řádek“ zde budu používat zaměnitelně, stejně jako výrazy „adresář“ a „složka“.
Standardní stdin
), standardní výstup (standardní výstup, stdout
) a standardní chybový výstup (standardní chyba, stderr
).
Pokud v příkladech příkazů, které budou uvedeny níže, najdete něco jako my_whatever
- to znamená, že tento fragment je třeba nahradit něčím vaším. Například název souboru.
Nyní, než přistoupíme k analýze příkazů, kterým je tento materiál věnován, podívejme se na jejich seznam a jejich stručný popis.
21 Bash příkazy
▍Získávání informací
man
: Zobrazí uživatelskou příručku (nápovědu) k příkazu.pwd
: zobrazí informace o pracovním adresáři.ls
: zobrazí obsah adresáře.ps
: Umožňuje zobrazit informace o běžících procesech.
▍Manipulace se systémem souborů
cd
: změna pracovního adresáře.touch
: Vytvořte soubor.mkdir
: vytvořit adresář.cp
: Zkopírujte soubor.mv
: Přesunutí nebo odstranění souboru.ln
: vytvořit odkaz.
▍ Přesměrování I/O a potrubí
<
: přesměrovánístdin
.>
: přesměrovánístdout
.|
: přesměrování výstupu jednoho příkazu na vstup jiného příkazu.
▍Čtení souborů
head
: čtení začátku souboru.tail
: čtení konce souboru.cat
: Čtení souboru a tisk jeho obsahu na obrazovku nebo zřetězení souborů.
▍ Mazání souborů, zastavování procesů
rm
: Smazání souboru.kill
: zastavit proces.
▍Hledat
grep
: vyhledávání informací.ag
: rozšířený příkaz pro vyhledávání.
▍Archivace
tar
: vytváření archivů a práce s nimi.
Promluvme si o těchto příkazech podrobněji.
Podrobnosti o týmu
Pro začátek se pojďme zabývat příkazy, jejichž výsledky jsou vydávány ve formuláři stdout
. Obvykle se tyto výsledky zobrazí v okně terminálu.
▍Získávání informací
man command_name
: zobrazení průvodce příkazy, tj. informace nápovědy.
pwd
: zobrazí cestu k aktuálnímu pracovnímu adresáři. V průběhu práce s příkazovým řádkem uživatel často potřebuje zjistit, kde přesně se v systému nachází.
ls
: zobrazení obsahu adresáře. Tento příkaz se také používá poměrně často.
ls -a
: zobrazit skryté soubory. zde použita vlajka -a
týmy ls
. Použití příznaků pomáhá přizpůsobit chování příkazů.
ls -l
: Zobrazí podrobné informace o souborech.
Všimněte si, že příznaky lze kombinovat. Například - takto: ls -al
.
ps
: Zobrazení běžících procesů.
ps -e
: Zobrazí informace o všech běžících procesech, nejen o těch, které jsou spojeny s aktuálním uživatelským prostředím. Tento příkaz se často používá v této podobě.
▍Manipulace se systémem souborů
cd my_directory
: změnit pracovní adresář na my_directory
. Chcete-li se v adresářovém stromu posunout o jednu úroveň výše, použijte my_directory
relativní cesta ../
.
příkaz cd
touch my_file
: vytvoření souboru my_file
po dané cestě.
mkdir my_directory
: vytvoření složky my_directory
po dané cestě.
mv my_file target_directory
: přesunutí souboru my_file
do složky target_directory
. Při zadávání cílového adresáře musíte použít absolutní cestu k němu (a ne konstrukci jako ../
).
Tým mv
lze také použít k přejmenování souborů nebo složek. Může to vypadat například takto:
mv my_old_file_name.jpg my_new_file_name.jpg
: vytvoření kopie souboru
cp my_source_file target_directorymy_source_file
a vložte jej do složky target_directory
.
ln -s my_source_file my_target_file
: vytvořit symbolický odkaz my_target_file
na soubor my_source_file
. Pokud změníte odkaz, změní se i původní soubor.
Pokud soubor my_source_file
bude poté smazáno my_target_file
zůstane. Vlajka -s
týmy ln
umožňuje vytvářet odkazy na adresáře.
Nyní si povíme něco o přesměrování I/O a kanálech.
▍ Přesměrování I/O a potrubí
my_command < my_file
: nahrazuje standardní popisovač vstupního souboru (stdin
) na soubor my_file
. To může být užitečné, pokud příkaz čeká na nějaký vstup z klávesnice a tato data jsou již uložena v souboru.
my_command > my_file
: přesměruje výsledky příkazu, tedy to, co by normálně šlo stdout
a výstup na obrazovku do souboru my_file
. Pokud soubor my_file
neexistuje - je vytvořen. Pokud soubor existuje, je přepsán.
Například po provedení příkazu ls > my_folder_contents.txt
vytvoří se textový soubor obsahující seznam toho, co je v aktuálním pracovním adresáři.
Pokud místo symbolu >
použít konstrukci >>
, pak za předpokladu, že soubor, na který je výstup příkazu přesměrován, existuje, nebude tento soubor přepsán. Data budou přidána na konec tohoto souboru.
Nyní se podíváme na zpracování datového kanálu.
Výstup jednoho příkazu je přiveden na vstup jiného příkazu. Je to jako spojování jedné trubky s druhou
first_command | second_command
: symbol dopravníku, |
, se používá k odeslání výstupu jednoho příkazu do jiného příkazu. Na co posílá příkaz na levé straně popsané struktury stdout
, Spadají do stdin
příkaz napravo od symbolu potrubí.
V Linuxu lze data zpracovat pomocí téměř jakéhokoli dobře vytvořeného příkazu. Často se říká, že všechno v Linuxu je potrubí.
Pomocí symbolu potrubí můžete zřetězit více příkazů. Vypadá to takto:
first_command | second_command | third_command
Potrubí několika příkazů lze přirovnat k potrubí
Všimněte si, že když příkaz vlevo od symbolu |
, výstupy něco k stdout
, co její výstupy jsou okamžitě k dispozici jako stdin
druhý tým. To znamená, že se ukazuje, že pomocí potrubí se zabýváme paralelním prováděním příkazů. Někdy to může vést k neočekávaným výsledkům. Podrobnosti o tom si můžete přečíst
Nyní si povíme něco o čtení dat ze souborů a jejich zobrazení na obrazovce.
▍Čtení souborů
head my_file
: čte řádky od začátku souboru a vytiskne je na obrazovku. Můžete si přečíst nejen obsah souborů, ale také to, co příkazy vypisují stdin
pomocí tohoto příkazu jako součásti potrubí.
tail my_file
: čte řádky od konce souboru. Tento příkaz lze také použít v potrubí.
Hlava (hlava) je vpředu a ocas (ocas) je vzadu
Pokud pracujete s daty pomocí knihovny pandas, pak příkazy head
и tail
by vám měl být známý. Pokud tomu tak není, podívejte se na výše uvedený obrázek a snadno si je zapamatujete.
Zvažte další způsoby čtení souborů, pojďme mluvit o příkazu cat
.
Tým cat
buď vytiskne obsah souboru na obrazovku, nebo zřetězí více souborů. Záleží na tom, kolik souborů se tomuto příkazu při volání předá.
kočičí příkaz
cat my_one_file.txt
: když je tomuto příkazu předán jeden soubor, vydá jej stdout
.
Pokud mu dáte dva soubory nebo více souborů, chová se jinak.
cat my_file1.txt my_file2.txt
: po přijetí několika souborů jako vstupu tento příkaz zřetězí jejich obsah a zobrazí, co se stalo stdout
.
Pokud je třeba výsledek zřetězení souborů uložit jako nový soubor, můžete použít operátor >
:
cat my_file1.txt my_file2.txt > my_new_file.txt
Nyní si povíme, jak smazat soubory a zastavit procesy.
▍ Mazání souborů, zastavování procesů
rm my_file
: smazat soubor my_file
.
rm -r my_folder
: smaže složku my_folder
a všechny soubory a složky, které obsahuje. Vlajka -r
označuje, že příkaz bude spuštěn v rekurzivním režimu.
Chcete-li zabránit tomu, aby systém požadoval potvrzení při každém odstranění souboru nebo složky, použijte příznak -f
.
kill 012345
: Zastaví zadaný běžící proces a poskytne mu čas na řádné ukončení.
kill -9 012345
: Nuceně ukončí zadaný běžící proces. Zobrazit vlajku -s SIGKILL
znamená totéž co vlajka -9
.
▍Hledat
K vyhledávání dat můžete použít různé příkazy. Zejména - grep
, ag
и ack
. Začněme naše seznámení s těmito příkazy grep
. Jedná se o léty prověřený spolehlivý příkaz, který je však pomalejší než ostatní a jeho použití není tak pohodlné jako u nich.
příkaz grep
grep my_regex my_file
: vyhledávání my_regex
в my_file
. Pokud je nalezena shoda, je vrácen celý řetězec pro každou shodu. Výchozí my_regex
považováno za regulární výraz.
grep -i my_regex my_file
: Vyhledávání se provádí bez ohledu na velikost písmen.
grep -v my_regex my_file
: vrátí všechny řádky, které neobsahují my_regex
. Vlajka -v
znamená inverzi, podobá se operátoru NOT
, který se nachází v mnoha programovacích jazycích.
grep -c my_regex my_file
: Vrátí informaci o počtu shod pro hledaný vzor nalezený v souboru.
grep -R my_regex my_folder
: provede rekurzivní vyhledávání ve všech souborech umístěných v zadané složce a ve složkách v ní vnořených.
Nyní si povíme něco o týmu ag
. Přišla později grep
, je rychlejší, je s ním pohodlnější pracovat.
příkaz ag
ag my_regex my_file
: vrací informace o číslech řádků a samotných řádcích, ve kterých byly nalezeny shody my_regex
.
ag -i my_regex my_file
: Vyhledávání se provádí bez ohledu na velikost písmen.
Tým ag
automaticky zpracovat soubor .gitignore
a vyloučí z výstupu to, co se nachází ve složkách nebo souborech uvedených v tomto souboru. Je to velmi pohodlné.
ag my_regex my_file -- skip-vcs-ignores
: obsah souborů automatické správy verzí (např .gitignore
) se při vyhledávání nebere v úvahu.
Navíc s cílem říct týmu ag
na kterých cestách souborů chcete vyloučit z vyhledávání, můžete vytvořit soubor .agignore
.
Na začátku této části jsme zmínili příkaz ack
. Týmy ack
и ag
velmi podobné, můžeme říci, že jsou z 99 % zaměnitelné. Nicméně tým ag
funguje rychleji, proto jsem to popsal.
Nyní si povíme něco o práci s archivy.
▍Archivace
tar my_source_directory
: zřetězí soubory ze složky my_source_directory
do jednoho souboru tarball. Takové soubory jsou užitečné pro přenos velkých sad souborů někomu.
příkaz tar
Soubory tarball generované tímto příkazem jsou soubory s příponou .tar
(Archiv pásky). Skutečnost, že se v názvu příkazu a v příponách názvů souborů, které vytváří, skrývá slovo „páska“ (páska), naznačuje, jak dlouho tento příkaz existuje.
tar -cf my_file.tar my_source_directory
: vytvoří soubor tarball s názvem my_file.tar
s obsahem složky my_source_directory
. Vlajka -c
znamená „create“ (stvoření) a vlajka -f
jako "soubor" (soubor).
Chcete-li extrahovat soubory z .tar
-file, použijte příkaz tar
s vlajkami -x
("extrakce", extrakce) a -f
("soubor", soubor).
tar -xf my_file.tar
: extrahuje soubory z my_file.tar
do aktuálního pracovního adresáře.
Nyní si povíme, jak komprimovat a dekomprimovat .tar
-soubory.
tar -cfz my_file.tar.gz my_source_directory
: zde pomocí vlajky -z
("zip", kompresní algoritmus) označuje, že by měl být algoritmus použit ke kompresi souborů gzip
(GNUzip). Komprese souborů šetří místo na disku při ukládání takových souborů. Pokud se soubory plánují například přenést jiným uživatelům, přispívá to k rychlejšímu stahování takových souborů.
Rozbalte soubor .tar.gz
můžete přidat vlajku -z
na příkaz extrahovat obsah .tar
-soubory, o kterých jsme hovořili výše. Vypadá to takto:
tar -xfz my_file.tar.gz
Nutno podotknout, že tým tar
Existuje mnoho dalších užitečných příznaků.
Bash aliasy
Aliasy bash (také nazývané aliasy nebo zkratky) jsou určeny k vytváření zkrácených názvů příkazů nebo jejich sekvencí, jejichž použití místo běžných příkazů urychluje práci. Pokud máte alias bu
, který skrývá příkaz python setup.py sdist bdist_wheel
, pak pro volání tohoto příkazu stačí použít tento alias.
Chcete-li vytvořit takový alias, přidejte do souboru následující příkaz ~/.bash_profile
:
alias bu="python setup.py sdist bdist_wheel"
Pokud váš systém nemá soubor ~/.bash_profile
, pak si jej můžete vytvořit sami pomocí příkazu touch
. Po vytvoření aliasu restartujte terminál, poté můžete tento alias používat. V tomto případě zadání dvou znaků nahradí zadání více než tří desítek znaků příkazu, který je určen pro
В ~/.bash_profile
můžete přidat aliasy pro často používané příkazy.
▍Výsledky
V tomto příspěvku jsme pokryli 21 populárních příkazů Bash a mluvili o vytváření aliasů příkazů. Pokud vás toto téma zajímá -
Vážení čtenáři! Jaké příkazy, které jsou užitečné pro začátečníky, byste přidali k těm, které byly popsány v tomto článku?
→
Zdroj: www.habr.com