Materiál, ktorého preklad dnes zverejňujeme, je určený pre tých, ktorí chcú ovládať príkazový riadok Linuxu. Schopnosť efektívneho používania tohto nástroja môže ušetriť veľa času. Budeme tu hovoriť najmä o shelli Bash a 21 užitočných príkazoch. Povieme si tiež, ako používať príznaky príkazov a aliasy Bash na zrýchlenie písania dlhých inštrukcií.
→
Podmienky
Keď sa naučíte pracovať s príkazovým riadkom Linuxu, stretnete sa s mnohými konceptmi, ktoré sú užitočné pri navigácii. Niektoré z nich, ako napríklad „Linux“ a „Unix“, alebo „shell“ a „terminál“, sú niekedy zmätené. Povedzme si o týchto a ďalších dôležitých pojmoch.
Teraz, keď sme prebrali dôležité pojmy, chcem zdôrazniť, že výrazy „Bash“, „shell“ a „príkazový riadok“ tu budem používať zameniteľne, ako aj výrazy „adresár“ a „priečinok“.
standard stdin
), štandardný výstup (štandardný výstup, stdout
) a výstup štandardnej chyby (štandardná chyba, stderr
).
Ak v príkladoch príkazov, ktoré budú uvedené nižšie, nájdete niečo ako my_whatever
- to znamená, že tento fragment je potrebné nahradiť niečím vašim. Napríklad názov súboru.
Teraz, skôr ako pristúpime k analýze príkazov, ktorým je venovaný tento materiál, pozrime sa na ich zoznam a ich stručný popis.
21 Bash príkazy
▍Získavanie informácií
man
: Zobrazí používateľskú príručku (pomocníka) pre príkaz.pwd
: zobrazuje informácie o pracovnom adresári.ls
: zobrazí obsah adresára.ps
: Umožňuje zobraziť informácie o spustených procesoch.
▍Manipulácia so systémom súborov
cd
: zmena pracovného adresára.touch
: vytvoriť súbor.mkdir
: vytvoriť adresár.cp
: Skopírujte súbor.mv
: Presunutie alebo odstránenie súboru.ln
: vytvoriť odkaz.
▍ Presmerovanie I/O a potrubia
<
: presmerovaniestdin
.>
: presmerovaniestdout
.|
: presmerovanie výstupu jedného príkazu na vstup iného príkazu.
▍ Čítanie súborov
head
: prečítať začiatok súboru.tail
: čítanie konca súboru.cat
: Čítanie súboru a tlač jeho obsahu na obrazovku alebo spojenie súborov.
▍Vymazanie súborov, zastavenie procesov
rm
: Odstránenie súboru.kill
: zastaviť proces.
▍Hľadať
grep
: vyhľadávanie informácií.ag
: rozšírený príkaz na vyhľadávanie.
▍Archivácia
tar
: vytváranie archívov a práca s nimi.
Povedzme si o týchto príkazoch podrobnejšie.
Podrobnosti o tíme
Na začiatok sa poďme zaoberať príkazmi, ktorých výsledky sú vydávané vo formulári stdout
. Zvyčajne sa tieto výsledky zobrazia v okne terminálu.
▍Získavanie informácií
man command_name
: zobrazenie sprievodcu príkazmi, t. j. informácie pomocníka.
pwd
: zobrazí cestu k aktuálnemu pracovnému adresáru. V priebehu práce s príkazovým riadkom používateľ často potrebuje zistiť, kde presne sa v systéme nachádza.
ls
: zobrazenie obsahu adresára. Tento príkaz sa tiež používa pomerne často.
ls -a
: zobraziť skryté súbory. tu bola použitá vlajka -a
príkazy ls
. Použitie príznakov pomáha prispôsobiť správanie príkazov.
ls -l
: Zobrazí podrobné informácie o súboroch.
Upozorňujeme, že príznaky je možné kombinovať. Napríklad - takto: ls -al
.
ps
: Zobrazenie spustených procesov.
ps -e
: Zobrazenie informácií o všetkých spustených procesoch, nielen o tých, ktoré súvisia s aktuálnym používateľským prostredím. Tento príkaz sa často používa v tejto forme.
▍Manipulácia so systémom súborov
cd my_directory
: zmeniť pracovný adresár na my_directory
. Ak sa chcete presunúť o jednu úroveň vyššie v strome adresárov, použite my_directory
relatívna cesta ../
.
príkaz cd
touch my_file
: vytvorenie súboru my_file
po danej ceste.
mkdir my_directory
: vytvorenie priečinka my_directory
po danej ceste.
mv my_file target_directory
: presunúť súbor my_file
do priečinka target_directory
. Pri zadávaní cieľového adresára musíte použiť absolútnu cestu k nemu (a nie konštrukciu ako ../
).
tím mv
možno použiť aj na premenovanie súborov alebo priečinkov. Môže to vyzerať napríklad takto:
mv my_old_file_name.jpg my_new_file_name.jpg
: vytvorenie kópie súboru
cp my_source_file target_directorymy_source_file
a vložte ho do priečinka target_directory
.
ln -s my_source_file my_target_file
: vytvorte symbolický odkaz my_target_file
na súbor my_source_file
. Ak zmeníte odkaz, zmení sa aj pôvodný súbor.
Ak súbor my_source_file
sa potom vymaže my_target_file
zostane. Vlajka -s
príkazy ln
umožňuje vytvárať odkazy na adresáre.
Teraz si povedzme o presmerovaní I/O a pipeline.
▍ Presmerovanie I/O a potrubia
my_command < my_file
: nahrádza štandardný popisovač vstupného súboru (stdin
) na súbor my_file
. To môže byť užitočné, ak príkaz čaká na nejaký vstup z klávesnice a tieto údaje sú už uložené v súbore.
my_command > my_file
: presmeruje výsledky príkazu, t. j. to, čo by sa normálne dostalo do stdout
a výstup na obrazovku do súboru my_file
. Ak súbor my_file
neexistuje – je vytvorený. Ak súbor existuje, je prepísaný.
Napríklad po vykonaní príkazu ls > my_folder_contents.txt
vytvorí sa textový súbor so zoznamom toho, čo sa nachádza v aktuálnom pracovnom adresári.
Ak namiesto symbolu >
použiť konštrukciu >>
, potom za predpokladu, že súbor, do ktorého je výstup príkazu presmerovaný, existuje, tento súbor sa neprepíše. Údaje sa pridajú na koniec tohto súboru.
Teraz sa pozrime na spracovanie dátového potrubia.
Výstup jedného príkazu sa privádza na vstup iného príkazu. Je to ako spojenie jedného potrubia s druhým
first_command | second_command
: symbol dopravníka, |
, sa používa na odoslanie výstupu jedného príkazu inému príkazu. Na čo posiela príkaz na ľavej strane opísanej štruktúry stdout
, Spadnúť do stdin
príkaz napravo od symbolu potrubia.
V systéme Linux môžu byť údaje zreťazené pomocou takmer akéhokoľvek správne vytvoreného príkazu. Často sa hovorí, že všetko v Linuxe je potrubie.
Pomocou symbolu potrubia môžete reťaziť viacero príkazov. Vyzerá to takto:
first_command | second_command | third_command
Potrubie niekoľkých príkazov možno porovnať s potrubím
Všimnite si, že pri príkaze naľavo od symbolu |
, výstupy niečo do stdout
, čo jej výstupy sú okamžite k dispozícii ako stdin
druhý tím. To znamená, že sa ukazuje, že pomocou potrubia sa zaoberáme paralelným vykonávaním príkazov. Niekedy to môže viesť k neočakávaným výsledkom. Podrobnosti o tom si môžete prečítať
Teraz si povieme niečo o čítaní údajov zo súborov a ich zobrazovaní na obrazovke.
▍ Čítanie súborov
head my_file
: prečíta riadky od začiatku súboru a vytlačí ich na obrazovku. Môžete si prečítať nielen obsah súborov, ale aj výstup príkazov stdin
pomocou tohto príkazu ako súčasti potrubia.
tail my_file
: číta riadky od konca súboru. Tento príkaz možno použiť aj v potrubí.
Hlava (hlava) je vpredu a chvost (chvost) je vzadu
Ak pracujete s údajmi pomocou knižnice pandas, potom príkazy head
и tail
by vám mal byť známy. Ak to tak nie je, pozrite sa na obrázok vyššie a ľahko si ich zapamätáte.
Zvážte iné spôsoby čítania súborov, poďme sa rozprávať o príkaze cat
.
Tím cat
buď vytlačí obsah súboru na obrazovku, alebo zreťazí viacero súborov. Závisí to od toho, koľko súborov je odovzdaných tomuto príkazu pri volaní.
mačací príkaz
cat my_one_file.txt
: keď je tomuto príkazu odovzdaný jeden súbor, odošle ho do stdout
.
Ak mu dáte dva alebo viac súborov, bude sa správať inak.
cat my_file1.txt my_file2.txt
: po prijatí niekoľkých súborov ako vstupu tento príkaz zreťazí ich obsah a zobrazí, čo sa stalo stdout
.
Ak je potrebné výsledok zreťazenia súborov uložiť ako nový súbor, môžete použiť operátor >
:
cat my_file1.txt my_file2.txt > my_new_file.txt
Teraz si povedzme, ako odstrániť súbory a zastaviť procesy.
▍Vymazanie súborov, zastavenie procesov
rm my_file
: vymazať súbor my_file
.
rm -r my_folder
: vymaže priečinok my_folder
a všetky súbory a priečinky, ktoré obsahuje. Vlajka -r
označuje, že príkaz sa spustí v rekurzívnom režime.
Ak chcete zabrániť tomu, aby systém požadoval potvrdenie pri každom odstránení súboru alebo priečinka, použite príznak -f
.
kill 012345
: Zastaví určený bežiaci proces a poskytne mu čas na elegantné vypnutie.
kill -9 012345
: Nútene ukončí zadaný bežiaci proces. Zobraziť vlajku -s SIGKILL
znamená to isté ako vlajka -9
.
▍Hľadať
Na vyhľadávanie údajov môžete použiť rôzne príkazy. Najmä - grep
, ag
и ack
. Oboznámenie sa s týmito príkazmi začneme s grep
. Ide o rokmi overený spoľahlivý príkaz, ktorý je však pomalší ako ostatné a nie je tak pohodlný na používanie ako oni.
príkaz grep
grep my_regex my_file
: vyhľadávanie my_regex
в my_file
. Ak sa nájde zhoda, vráti sa celý reťazec pre každú zhodu. Predvolené my_regex
považovať za regulárny výraz.
grep -i my_regex my_file
: Vyhľadávanie sa vykonáva bez ohľadu na veľkosť písmen.
grep -v my_regex my_file
: vráti všetky riadky, ktoré neobsahujú my_regex
. Vlajka -v
znamená inverziu, podobá sa operátorovi NOT
, ktorý sa nachádza v mnohých programovacích jazykoch.
grep -c my_regex my_file
: Vráti informácie o počte zhôd pre hľadaný vzor nájdený v súbore.
grep -R my_regex my_folder
: vykoná rekurzívne vyhľadávanie vo všetkých súboroch umiestnených v zadanom priečinku a v priečinkoch v ňom vnorených.
Teraz si povedzme o tíme ag
. Prišla neskôr grep
, je rýchlejší, pracuje sa s ním pohodlnejšie.
ag príkaz
ag my_regex my_file
: vráti informácie o číslach riadkov a samotných riadkoch, v ktorých sa našli zhody my_regex
.
ag -i my_regex my_file
: Vyhľadávanie sa vykonáva bez ohľadu na veľkosť písmen.
Tím ag
automaticky spracovať súbor .gitignore
a vylúči z výstupu to, čo sa nachádza v priečinkoch alebo súboroch uvedených v tomto súbore. Je to veľmi pohodlné.
ag my_regex my_file -- skip-vcs-ignores
: obsah súborov automatického riadenia verzií (napr .gitignore
) sa pri vyhľadávaní nezohľadňuje.
Navyše, aby tým povedal ag
na ktorých cestách k súborom chcete vylúčiť z vyhľadávania, môžete vytvoriť súbor .agignore
.
Na začiatku tejto časti sme spomenuli príkaz ack
. Tímy ack
и ag
veľmi podobné, môžeme povedať, že sú na 99% zameniteľné. Tým však ag
funguje rýchlejšie, preto som to opísal.
Teraz si povieme niečo o práci s archívmi.
▍Archivácia
tar my_source_directory
: zreťazí súbory z priečinka my_source_directory
do jedného súboru tarball. Takéto súbory sú užitočné na prenos veľkých súborov súborov niekomu.
príkaz tar
Súbory tarball generované týmto príkazom sú súbory s príponou .tar
(Archív pásky). To, že v názve príkazu a v prípone názvov súborov, ktoré vytvára, je ukryté slovo „páska“ (páska), naznačuje, ako dlho tento príkaz existuje.
tar -cf my_file.tar my_source_directory
: vytvorí súbor tarball s názvom my_file.tar
s obsahom priečinka my_source_directory
. Vlajka -c
znamená „vytvoriť“ (stvorenie) a vlajku -f
ako "súbor" (súbor).
Ak chcete extrahovať súbory z .tar
-súbor, použite príkaz tar
s vlajkami -x
("extrakt", extrakcia) a -f
("súbor", súbor).
tar -xf my_file.tar
: extrahuje súbory z my_file.tar
do aktuálneho pracovného adresára.
Teraz si povedzme, ako komprimovať a dekomprimovať .tar
-súbory.
tar -cfz my_file.tar.gz my_source_directory
: tu pomocou vlajky -z
("zip", kompresný algoritmus) označuje, že tento algoritmus by sa mal použiť na kompresiu súborov gzip
(GNUzip). Kompresia súborov šetrí miesto na disku pri ukladaní takýchto súborov. Ak sú súbory plánované napríklad na prenos iným používateľom, prispieva to k rýchlejšiemu sťahovaniu takýchto súborov.
Rozbaľte súbor .tar.gz
môžete pridať vlajku -z
na príkaz extrahovať obsah .tar
-súbory, o ktorých sme hovorili vyššie. Vyzerá to takto:
tar -xfz my_file.tar.gz
Treba podotknúť, že tým tar
Existuje mnoho ďalších užitočných vlajok.
Bash aliasy
Aliasy Bash (tiež nazývané aliasy alebo skratky) sú určené na vytváranie skrátených názvov príkazov alebo ich sekvencií, ktorých použitie namiesto bežných príkazov urýchľuje prácu. Ak máte alias bu
, ktorý skrýva príkaz python setup.py sdist bdist_wheel
, potom na zavolanie tohto príkazu stačí použiť tento alias.
Ak chcete vytvoriť takýto alias, stačí do súboru pridať nasledujúci príkaz ~/.bash_profile
:
alias bu="python setup.py sdist bdist_wheel"
Ak váš systém nemá súbor ~/.bash_profile
, potom si ho môžete vytvoriť sami pomocou príkazu touch
. Po vytvorení aliasu reštartujte terminál, po ktorom môžete tento alias používať. V tomto prípade zadanie dvoch znakov nahradí zadanie viac ako troch desiatok znakov príkazu, ktorý je určený pre
В ~/.bash_profile
môžete pridať aliasy pre často používané príkazy.
▍Výsledky
V tomto príspevku sme pokryli 21 populárnych príkazov Bash a hovorili o vytváraní aliasov príkazov. Ak vás táto téma zaujíma -
Vážení čitatelia! Aké príkazy užitočné pre začiatočníkov by ste pridali k tým, o ktorých sa hovorilo v tomto článku?
→
Zdroj: hab.com