[v záložkách] Bash pro začátečníky: 21 užitečných příkazů

Materiál, který dnes zveřejňujeme, je určen pro ty, kteří se chtějí naučit ovládat příkazový řádek Linuxu. Schopnost efektivně používat tento nástroj šetří spoustu času. Konkrétně se zde budeme zabývat příkazovým rozhraním Bash a 21 užitečnými příkazy. Také si povíme, jak používat příznaky příkazů a aliasy Bash, které usnadňují zadávání dlouhých příkazů.

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů

→ Také si přečtěte v našem blogu cyklus publikací o bash skriptech.

servery – servery, které je potřeba nakonfigurovat.

Při osvojování práce v příkazovém řádku Linuxu se můžete setkat s mnoha pojmy, ve kterých bude užitečné se orientovat. Některé z nich, jako "Linux" a "Unix", nebo "příkazové rozhraní" a "terminál", se občas pletou. Pojďme si promluvit o těchto a dalších důležitých termínech.

Unix je populární operační systém, který byl vyvinut Bell Labs v 70. letech. Jeho kód byl uzavřený.

Linux je nejpopulárnější Unixový operační systém. V současnosti se používá na mnoha zařízeních, včetně počítačů.

Terminál (terminál), nebo emulátor terminálu — je program, který poskytuje přístup k operačnímu systému. Je možné mít otevřeno několik oken terminálu současně.

Shell (shell) — je program, který umožňuje odesílat operačnímu systému příkazy napsané ve speciálním jazyce.

Bash se rozšiřuje jako Bourne Again SHell. To je nejrozšířenější jazyk příkazového rozhraní používaný pro interakci s operačním systémem. Kromě toho se shell Bash ve výchozím stavu používá v macOS.

Rozhraní příkazového řádku (Command Line Interface, CLI) — je způsob interakce člověka a počítače, při kterém uživatel zadává příkazy z klávesnice a počítač, provádějící tyto příkazy, zobrazuje textová oznámení pro uživatele. Hlavně se CLI používá k získávání aktuálních informací o určitých entitách, například o souborech, a k práci se soubory. Rozhraní příkazového řádku je třeba odlišovat od grafického uživatelského rozhraní (Graphical User Interface, GUI), při jehož používání se převážně používá myš. Rozhraní příkazového řádku se často jednoduše nazývá příkazový řádek.

Skript (script) — je malý program, který obsahuje sekvenci příkazů příkazového řádku. Skripty se zapisují do souborů, které lze používat opakovaně. Při psaní skriptů lze využívat proměnné, podmínkovou strukturu, smyčky, funkce a další možnosti.

Nyní, když jsme probrali důležité pojmy, chci poznamenat, že zde budu používat termíny „Bash“, „shell“ a „příkazový řádek“ jako zaměnitelné, stejně jako pojmy „adresář“ (directory) a „složka“ (folder).

Standardní proudy, které zde budeme používat, jsou standardní vstup (standard input, stdin), standardní výstup (standard output, stdout) a standardní výstup chyb (standard error, stderr).

Pokud v příkladech příkazů, které budou uvedeny níže, narazíte na něco jako my_whatever — znamená to, že tento fragment je třeba nahradit něčím svým. Například — názvem souboru.

Nyní, než se pustíme do rozboru příkazů, kterým se tento materiál věnuje, podívejme se na jejich seznam a na jejich stručné popisy.

21 Bash příkaz

▍Získání informací

  • man: zobrazuje uživatelskou příručku (nápovědu) k příkazu.
  • pwd: zobrazuje informace o pracovním adresáři.
  • ls: zobrazuje obsah adresáře.
  • ps: umožňuje prohlížet informace o běžících procesech.

▍Manipulace se souborovým systémem

  • cd: změna pracovního adresáře.
  • touch: vytvoření souboru.
  • mkdir: vytvoření adresáře.
  • cp: kopírování souboru.
  • mv: přesun nebo odstranění souboru.
  • ln: vytvoření odkazu.

▍Přesměrování vstupu-výstupu a trubice

  • <: přesměrování stdin.
  • >: přesměrování stdout.
  • |: přesměrování pomocí trubice 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 zobrazení jeho obsahu na obrazovce nebo spojení souborů.

▍Odstranění souborů, zastavení procesů

  • rm: odstranění souboru.
  • kill: zastavení procesu.

▍Hledání

  • grep: hledání informací.
  • ag: pokročilý příkaz pro hledání.

▍Archivace

  • tar: vytváření archivů a práce s nimi.

Pojďme si o těchto příkazech povědět více.

Podrobnosti o příkazech

Nejprve se pojďme zabývat příkazy, jejichž výstup je zobrazen ve formě stdout. Obvykle se tyto výsledky objevují v okně terminálu.

▍Získání informací

man command_name: zobrazuje příručku k příkazu, tedy — referenční informace.

pwd: zobrazení cesty k aktuálnímu pracovnímu adresáři. Při práci s příkazovým řádkem potřebuje uživatel často zjistit, kde se přesně v systému nachází.

ls: zobrazení obsahu adresáře. Tento příkaz se také používá velmi často.

ls -a: zobrazení skrytých souborů. Zde je použitá příznak -a příkazů. ls. Použití příznaků pomáhá přizpůsobit chování příkazů.

ls -l: zobrazení podrobných informací o souborech.

Všimněte si, že příznaky lze kombinovat. Například — takto: ls -al.

ps: zobrazení běžících procesů.

ps -e: zobrazení informací o všech běžících procesech, ne pouze o těch, které jsou spojeny s aktuálním uživatelským shell. Tento příkaz se často používá právě tímto způsobem.

▍Manipulace se souborovým systémem

cd my_directory: změna pracovního adresáře na my_directory. Abychom přešli o jeden úroveň výše v adresářové struktuře, použijte jako my_directory relativní cestu. ../.

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů
Příkaz cd

touch my_file: vytvoření souboru my_file na zadané cestě.

mkdir my_directory: vytvoření složky. my_directory na zadané cestě.

mv my_file target_directory: přesun souboru my_file do složky target_directory. Při udávání cílového adresáře je potřeba použít absolutní cestu k němu (nikoli konstrukci jako ../).

Příkaz mv, navíc to může být použito také pro přejmenovávání souborů nebo složek. Například, může to vypadat takto:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file cílový_adresář
: vytvoření kopie souboru my_source_file a umístění ji do složky target_directory.

ln -s my_source_file my_target_file: vytvoření symbolického odkazu my_target_file na soubor. my_source_file. Pokud změníte odkaz, změní se i původní soubor.

Pokud je soubor my_source_file smazán, pak my_target_file zůstane. Příznak -s příkazů. ln umožňuje vytvářet odkazy i pro složky.

Nyní si promluvíme o přesměrování vstupu a výstupu a potrubích.

▍Přesměrování vstupu-výstupu a trubice

my_command < my_file: nahrazuje deskriptor souboru standardního vstupu (stdin) souborem my_file. To může být užitečné, pokud příkaz očekává vstup nějakých dat z klávesnice, a tato data jsou předem uložena v souboru.

my_command > my_file: přesměrovává výsledky práce příkazu, tedy to, co obvykle dopadá do stdout a zobrazuje se na obrazovce, do souboru my_file. Pokud soubor my_file neexistuje — je vytvořen. Pokud soubor existuje — je přepsán.

Například po vykonání příkazu ls > my_folder_contents.txt bude vytvořen textový soubor obsahující seznam toho, co se nachází v aktuálním pracovním adresáři.

Pokud místo znaku > využijete konstrukci >>, takže za předpokladu, že existuje soubor, do kterého se přesměrovává výstup příkazu, nebude tento soubor přepsán. Data budou přidána na konec tohoto souboru.

Nyní se podívejme na zpracování dat v pipeline.

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů
To, co výstup jedné příkazu, je vstupem druhého příkazu. Je to podobné jako spojení jedné trubky s druhou.

first_command | second_command: znak pipe, |, se používá k odeslání výsledků práce jednoho příkazu druhému příkazu. To, co příkaz nalevo od popsané konstrukce odesílá, stdout, se dostává do stdin příkazu, který se nachází napravo od znaku pipe.

V Linuxu lze zpracování dat v pipeline uspořádat pomocí téměř jakéhokoli správně složeného příkazu. Často se říká, že v Linuxu je vše pipeline.

Pomocí znaku pipe lze spojit do řetězce několik příkazů. Vypadá to takto:

first_command | second_command | third_command

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů
Pipeline několika příkazů lze přirovnat k potrubí.

Všimněte si, že když příkaz nalevo od znaku |, něco vyprodukuje na stdout, to, co vyprodukoval, se okamžitě stává dostupným pro stdin druhý příkaz. To znamená, že při použití pipeline máme co do činění se souběžným prováděním příkazů. Někdy to může vést k neočekávaným výsledkům. Více informací o tom si můžete přečíst zde.

Nyní si promluvíme o čtení dat ze souborů a jejich výstupu na obrazovku.

▍Čtení souborů

head my_file: čte řádky ze začátku souboru a vypisuje je na obrazovku. Můžete číst nejen obsah souborů, ale také to, co příkazy vypisují na stdin, pomocí tohoto příkazu jako prvku pipeline.

tail my_file: čte řádky ze konce souboru. Tento příkaz lze také použít v pipeline.

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů
Head (hlava) je vpředu, zatímco tail (ocas) je vzadu.

Pokud pracujete s daty pomocí knihovny pandas, pak by vám měly být příkazy head a tail známé. Pokud tomu tak není - podívejte se na výše uvedený obrázek a snadno si je zapamatujete.

Podívejme se na další způsoby čtení souborů, probereme příkaz, cat.

Tým cat který buď vypisuje obsah souboru na obrazovku, nebo konkatenáty více souborů. To závisí na tom, kolik souborů je tomuto příkazu předáno při zavolání.

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů
Příkaz cat

cat my_one_file.txt: když je tomuto příkazu předán jeden soubor, vypíše jeho obsah. stdout.

Pokud jí předáte dva soubory nebo více, chová se jinak.

cat my_file1.txt my_file2.txt: když dostane několik souborů, tento příkaz je spojí a výstupem bude jejich obsah. stdout.

Pokud chcete výsledek spojení 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 mazat soubory a zastavovat procesy.

▍Odstranění souborů, zastavení procesů

rm my_file: maže soubor. my_file.

rm -r my_folder: maže složku. my_folder a všechny soubory a složky v ní obsažené. Příznak -r naznačuje, že příkaz bude fungovat v rekurzivním režimu.

Aby systém nevyžadoval potvrzení při každé operaci mazání souboru nebo složky, použijte příznak -f.

kill 012345: zastavuje specifikovaný běžící proces a dává mu čas na řádné dokončení práce.

kill -9 012345: násilně ukončuje specifikovaný běžící proces. Příznak -s SIGKILL znamená totéž jako příznak -9.

▍Hledání

K vyhledávání dat můžete použít různé příkazy. Konkrétně — grep, ag a ack. Začněme naše seznámení s těmito příkazy s grep. Je to osvědčený, spolehlivý příkaz, který je sice pomalejší než ostatní a není tak pohodlný na používání.

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů
Příkaz grep

grep my_regex my_file: provádí hledání my_regex. v my_filePři nalezení shody se vrátí celá řádka pro každé z nich. Ve výchozím nastavení my_regex. je považováno za regulární výraz.

grep -i my_regex my_file: hledání se provádí bez ohledu na velikost písmen.

grep -v my_regex my_file: vrací všechny řádky, které neobsahují my_regex.. Příznak -v označuje negaci a připomíná operátor NOT, který se vyskytuje v mnoha programovacích jazycích.

grep -c my_regex my_file: vrací informace o počtu shod s hledaným vzorem nalezených v souboru.

grep -R my_regex my_folder: provádí rekurzivní hledání ve všech souborech nacházejících se ve zadané složce a ve složkách, které do ní patří.

Nyní si povíme o příkazu ag. Ten se objevil později grep, je rychlejší a pohodlnější na používání.

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů
Příkaz ag

ag my_regex my_file: vrací informace o číslech řádků a samotných řádcích, ve kterých byly nalezeny shody s my_regex..

ag -i my_regex my_file: hledání se provádí bez ohledu na velikost písmen.

Tým ag automaticky zpracovává soubor .gitignore a vylučuje z výstupu to, co bylo nalezeno ve složkách nebo souborech uvedených v tomto souboru. To je velmi praktické.

ag my_regex my_file -- skip-vcs-ignores: obsah souborů systémů automatické kontroly verzí (například .gitignore) při vyhledávání není zohledněn.

Kromě toho, abyste specifikovali týmu ag jaké cesty k souborům je třeba vyloučit z vyhledávání, můžete vytvořit soubor .agignore.

Na začátku této sekce jsme zmínili příkaz ack. Příkazy ack a ag jsou si velmi podobné, dá se říct, že jsou zaměnitelné na 99 %. Nicméně příkaz ag funguje rychleji, proto jsem popsal právě ten.

Nyní si promluvíme o práci s archivy.

▍Archivace

tar my_source_directory: slučuje soubory z adresáře my_source_directory do jednoho tarball souboru. Tyto soubory je pohodlné používat pro přenos velkých souborových sad někomu.

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů
Příkaz tar.

Tarball soubory vytvářené tímto příkazem mají příponu .tar (Tape ARchive). Skutečnost, že v názvu příkazu a v příponě názvů souborů vytvářených jím se skrývá slovo „tape“ (páska), naznačuje, jak dlouho tento příkaz existuje.

tar -cf my_file.tar my_source_directory: vytváří tarball soubor s názvem my_file.tar se souborným obsahem adresáře my_source_directory. Příznak -c rozkládá se jako „create“ (vytvořit), a příznak -f jako „file“ (soubor).

Pro extrakci souborů, které se nacházejí v .tar-souboru, se používá příkaz tar c s příznaky -x („extract“, extrakce) a -f („file“, soubor).

tar -xf my_file.tar: extrahuje soubory z my_file.tar do aktuální pracovní složky.

Nyní si promluvíme o tom, jak komprimovat a dekomprimovat .tar-soubory.

tar -cfz my_file.tar.gz my_source_directory: zde, s použitím příznaku -z („zip“, algoritmus komprese) je uvedeno, že pro kompresi souborů by měl být použit algoritmus . Verze ICU jsou – bezvýznamné. (GNU zip). Komprese souborů šetří diskový prostor při uchovávání takových souborů. Pokud jsou soubory plánovány k předání dalším uživatelům, to usnadňuje rychlejší stahování takových souborů.

Rozbalit soubor .tar.gz je možné přidáním příznaku -z k příkazu pro extrakci obsahu .tar-soubory, které jsme probrali výše. Vypadá to takto:

tar -xfz my_file.tar.gz
Je třeba poznamenat, že příkaz tar má také mnoho užitečných příznaků.

Bash aliasy

Bash aliasy (nazývají se také aliasy nebo zkratky) jsou určeny pro vytvoření zkrácených názvů příkazů nebo jejich sekvencí, jejichž používání namísto běžných příkazů urychluje práci. Pokud máte například alias bu, za kterým se skrývá příkaz python setup.py sdist bdist_wheel, pak k vyvolání tohoto příkazu stačí použít tento alias.

Pro vytvoření podobné zkratky stačí přidat následující příkaz do souboru ~/bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Pokud ve vašem systému není soubor ~/bash_profile, můžete si ho vytvořit sami pomocí příkazu touch. Po vytvoření zkratky restartujte terminál, poté budete moci tuto zkratku používat. V tomto případě zadání dvou znaků nahradí zadání více než třiceti znaků příkazu, který je určen pro sestavení Python balíčky.

V ~/bash_profile Můžete přidávat zkratky pro jakékoli často používané příkazy.

▍Závěr

V tomto článku jsme probrali 21 populárních příkazů Bash a hovořili jsme o vytváření zkratek pro příkazy. Pokud vás toto téma zajímá — tady je sérii publikací věnovaných Bash. Zde Můžete najít pdf verzi těchto publikací. Kromě toho, pokud se chcete naučit Bash, pamatujte, že stejně jako při učení jakéhokoli jiného programového systému je důležitá praxe.

Vážení čtenáři! Jaké příkazy, které by měli začátečníci znát, byste přidali k těm, které byly probrány v tomto článku?

→ Také si přečtěte v našem blogu cyklus publikací o bash skriptech.

[v záložkách] Bash pro začátečníky: 21 užitečných příkazů

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster