[в закладки] Bash algajatele: 21 kasulikku käsku

Materjal, mille tõlkeme täna avaldame, on mõeldud neile, kes soovivad omandada Linuxi käsurealiidese oskusi. Tõhus käsurea kasutamine aitab palju aega kokku hoida. Eelkõige räägime siin Bash käsureast ja 21 kasulikust käsklusest. Samuti arutame, kuidas kasutada käsurea lippude ja Bash'i alias'e, mis aitavad kiiremini sisse viia pikki käske.

[в закладки] Bash algajatele: 21 kasulikku käsku

Loe ka meie blogist bash-skriptide seeriat

Terminid

Linuxi käsurea kasutamise käigus võite kohata palju mõisteid, millega on kasulik tuttav olla. Mõned neist, nagu "Linux" ja "Unix", või "käsurea liides" ja "terminal", võivad vahel segamini minna. Räägime neist ja teistest olulistest mõistetest.

Unix — see on populaarne operatsioonisüsteem, mille töötas välja Bell Labs 1970. aastatel. Selle kood oli suletud.

Linux — see on kõige populaarsem Unix'i sarnane operatsioonisüsteem. Praegu kasutatakse seda mitmesugustes seadmetes, sealhulgas arvutites.

Terminal (terminal), või terminali emulator — see on programm, mis annab juurdepääsu operatsioonisüsteemile. Samuti saab avada mitu terminali akent korraga.

Kest (shell) — see on programm, mis võimaldab saata operatsioonisüsteemile käske, kirjutatud erikeeles.

Bash lühend Bourne Again SHell. See on kõige levinum käsurida, mida kasutatakse operatsioonisüsteemiga suhtlemiseks. Lisaks kasutatakse Bash'i vaikimisi macOS-is.

Käsurealiides (Command Line Interface, CLI) — see on viis, kuidas inimene ja arvuti suhtlevad, kasutades sisestatud käske klaviatuurilt, ning arvuti täidab neid käske, edastades teksti kujul sõnumeid kasutajale. Peamiselt kasutatakse CLI-d, et saada värskeid andmeid teatud entiteetide kohta, näiteks failide kohta, ja töötada failidega. Käsurealiidest tuleks eristada graafilisest kasutajaliidesest (Graphical User Interface, GUI), kus peamiselt kasutatakse hiirt. Käsurealiidest nimetatakse sageli lihtsalt käsurida.

Skript (script) — on väike programm, mis sisaldab käsurea käskude sekvenssi. Skripte salvestatakse failidesse, neid saab mitmeid kordi kasutada. Skripte kirjutades võib kasutada muutujaid, tingimuslauseid, tsükleid, funktsioone ja muid võimalusi.

Nüüd, kui oleme olulised terminid üle vaadanud, soovin märkida, et kasutan siin termineid 'Bash', 'shell' ja 'käskude rida' omavahel asendatavatena, samuti mõisteid 'kataloog' (directory) ja 'kaust' (folder).

Standardsed vood, mida kasutame siin — see on standardne sisend (standard input, stdin), standardne väljund (standard output, stdout) ja standardviga (standard error, stderr).

Kui allpool toodud käskude näidetes kohtate midagi sellist nagu my_whatever — see tähendab, et see fragment tuleb asendada millegagi, mis on teie. Näiteks — faili nimega.

Nüüd, enne kui hakkame käske analüüsima, millele see materjal on pühendatud, vaatame nende nimekirja ja lühikesi kirjeldusi.

21 Bash-käsku

▍Teabe saamine

  • man: kuvab kasutajajuhendi (abi) käsu kohta.
  • pwd: näitab töötava katalooge teavet.
  • ls: näitab katalooge sisu.
  • ps: võimaldab vaadata töötavate protsesside teavet.

▍Failisüsteemi toimingud

  • cd: töökausta muutmine.
  • touch: faili loomine.
  • mkdir: katalooge loomine.
  • cp: faili kopeerimine.
  • mv: faili liigutamine või kustutamine.
  • ln: lingi loomine.

▍Sisendi ja väljundi suunamine ning torud

  • <: suunamine stdin.
  • >: suunamine stdout.
  • |: suunamine ühe käsu väljundi kaudu teise käsu sisendisse.

▍Failide lugemine

  • head: faili alguse lugemine.
  • tail: faili lõpu lugemine.
  • cat: faili lugemine ja selle sisu ekraanile kuvamine või failide ühendamine.

▍Failide kustutamine, protsesside peatamine

  • rm: faili kustutamine.
  • kill: protsessi peatamine.

▍Otsing

  • grep: teabe otsimine.
  • ag: täiustatud otsingukäsk.

▍Arhiveerimine

  • tar: arhiveerimise loomine ja nendega töötamine.

Räägime nendest käskudest lähemalt.

Käskude üksikasjad

Alustuseks vaatame käskude tulemusi, mille väljund on stdout. Need tulemused ilmuvad tavaliselt terminali aknas.

▍Teabe saamine

man command_name: käsu käsiraamatu, s.t. - abiteabe kuvamine.

pwd: kuvab praeguse töökausta teed. Käsklustega töötades peab kasutaja tihti teadma, kus täpselt süsteemis asub.

ls: kuvab kausta sisu. Seda käsku kasutatakse samuti väga sageli.

ls -a: kuvab varjatud faile. Siin on kasutatud lippu -a käsklused ls. Lippe kasutades saab seadistada käskude käitumist.

ls -l: kuvab failide üksikasjalikku teavet.

Pange tähele, et lippe saab kombineerida. Näiteks — niimoodi: ls -al.

ps: käimasolevate protsesside vaatamine.

ps -e: kuvab andmeid kõikide käimasolevate protsesside kohta, mitte ainult nende kohta, mis on seotud kasutaja praeguse kestaga. Seda käsku kasutatakse sageli just sellisel kujul.

▍Failisüsteemi toimingud

cd my_directory: muudab töökausta my_directory. Üks tase kõrgemale liikuda kataloogipuus saate kasutada my_directory relatiivset teed ../.

[в закладки] Bash algajatele: 21 kasulikku käsku
Käsk cd

touch my_file: loob faili my_file määratud teel.

mkdir my_directory: loob kausta my_directory määratud teel.

mv my_file target_directory: viib faili my_file kausta target_directory. Sihtkausta määramisel tuleb kasutada absoluutset teed (mitte konstruktsiooni nagu ../).

Käsku mv, lisaks saab kasutada failide või kaustade ümbernimetamiseks. Näiteks võib see välja näha nii:

mv my_old_file_name.jpg my_new_file_name.jpg
cp minu_allika_fail sihtkaust
: faili koopia loomine my_source_file ja selle paigutamine kausta target_directory.

ln -s my_source_file my_target_file: sümboliline lingi loomine my_target_file failile my_source_file. Kui linki muudetakse, muutub ka algne fail.

Kui fail my_source_file kustutatakse, siis my_target_file jääb alles. Lipu -s käsklused ln abil on võimalik luua linke ka kataloogidele.

Nüüd räägime sisendi- ja väljundi suunamisest ning torudest.

▍Sisendi ja väljundi suunamine ning torud

my_command < my_file: asendab standardse sisendi failideskirja (stdin) failiga my_file. See võib olla kasulik, kui käsk ootab sisendit teatud andmete näol klaviatuurilt, kuid need andmed on eelnevalt salvestatud faili.

my_command > my_file: suunab käskude tulemused, st selle, mis tavaliselt satub stdout ja kuvatakse ekraanil, faili my_file. Kui fail my_file ei eksisteeri — see luuakse. Kui fail eksisteerib — see kirjutatakse üle.

Näiteks pärast käsku ls > my_folder_contents.txt luuakse tekstifail, mis sisaldab nimekirja sellest, mis asub hetkel töödeldavas kataloogis.

Kui sümboli asemel > kasutada konstruktsiooni >>, tingimusel, et faili, kuhu käsu väljund suunatakse, olemasolu korral seda faili ei ülekirjutata. Andmed lisatakse selle faili lõppu.

Vaatame nüüd andmete voogedastust.

[в закладки] Bash algajatele: 21 kasulikku käsku
See, mida üks käsk välja annab, antakse teise käsu sisendiks. See on nagu ühe toru ühendamine teisega.

first_command | second_command: toru sümbol, |, mida kasutatakse selleks, et saata ühe käsu tulemused teise käsu. See, mida käsk, mis asub kirjeldatud konstruktsiooni vasakul küljel, saadab stdout, jõuab stdin käsku, mis asub toru sümboli paremal küljel.

Linuxis on andmete voogedastust võimalik korraldada, kasutades peaaegu iga õigesti koostatud käsku. Tihti öeldakse, et kõik Linuxis on voog.

Toru sümboli abil saab siduda mitmeid käsklusi. See näeb välja selline:

first_command | second_command | third_command

[в закладки] Bash algajatele: 21 kasulikku käsku
Mitme käsu voogu võib võrrelda torustikuga.

Pange tähele, et kui käsk, mis asub toru sümboli vasakul küljel, |, välja annab midagi stdout, siis see, mida ta välja andis, saab kohe kätte. stdin teise meeskonna. See tähendab, et kasutades torustikku, tegeleme käskude samaaegse täitmisega. Mõnikord võib see viia ootamatute tulemuste tekkimiseni. Lisainfot selle kohta leiate siit siit.

Nüüd räägime andmete lugemisest failidest ja nende kuvamisest ekraanil.

▍Failide lugemine

head my_file: loeb faili algusest read ja kuvab need ekraanile. Saate lugeda mitte ainult failide sisu, vaid ka seda, mida käsud kuvavad stdin, kasutades seda käsku torustiku elemendina.

tail my_file: loeb faili lõpust read. Seda käsku saab samuti kasutada torustikus.

[в закладки] Bash algajatele: 21 kasulikku käsku
Head (pea) on ees, ja tail (saba) on taga

Kui töötate andmetega, kasutades pandas teeki, siis peaksid käskusid head ja tail olema teile tuttavad. Kui ei — vaadake ülaltoodud joonist ja teil on need kergesti meeles.

Vaatame teisi viise failide lugemiseks, räägime käskudest cat.

Meeskond cat kas kuvab faili sisu ekraanile või konkatereerib mitu faili. See sõltub sellest, kui palju faile on antud sellele käsule kutse tegemisel.

[в закладки] Bash algajatele: 21 kasulikku käsku
Käsk cat

cat my_one_file.txt: kui sellele käskule antakse üks fail — kuvab see selle stdout.

Kui edastada talle kaks faili või rohkem, käitub ta teisiti.

cat my_file1.txt my_file2.txt: saades sisendiks mitu faili, selle käsk ühendab nende sisu ja näitab, mis välja tuli. stdout.

Kui faili kätkestamise tulemust tuleb salvestada uue failina, saab kasutada operaatorit. >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Nüüd räägime failide kustutamisest ja protsesside peatamisest.

▍Failide kustutamine, protsesside peatamine

rm my_file: kustutab faili. my_file.

rm -r my_folder: kustutab kausta. my_folder ja kõik selle sees olevad failid ja kaustad. Lipp -r tähendab, et käsk töötab rekursiivses režiimis.

Kuna süsteem ei küsi iga failide või kaustade kustutamise opereerimise kinnitust, kasutage lippu. -f.

kill 012345: peatab määratud töötava protsessi, andes sellele aega korrektselt lõpetada.

kill -9 012345: sunnib peatama määratud jooksva protsessi. Lipp -s SIGKILL tähendab sama, mis lipp. -9.

▍Otsing

Andmete otsimiseks saab kasutada erinevaid käsku. Eelkõige — grep, ag ja ack. Alustame nende käskude tutvustamisega. grep. See on ajas kindel ja usaldusväärne meeskond, mis on tõsi, aeglasem kui teised ja mitte nii kasutajasõbralik.

[в закладки] Bash algajatele: 21 kasulikku käsku
grep meeskond

grep my_regex my_file: teeb otsingu my_regex ühes my_file. Kui leitakse vasteid, tagastatakse nende jaoks kogu rida. Vaikimisi my_regex tõlgendatakse kui regulaarne väljend.

grep -i my_regex my_file: otsing toimub ilma sümbolite suuruse arvestamiseta.

grep -v my_regex my_file: tagastab kõik read, mis ei sisalda my_regex. Lipuke -v tähendab pöördumist, see meenutab operaatorit NOT, mis on paljudes programmeerimiskeeltes olemas.

grep -c my_regex my_file: tagastab teavet leitud vastete arvu kohta, mis ühtib otsitava mustriga failis.

grep -R my_regex my_folder: teeb rekursiivse otsingu kõigis failides, mis asuvad määratud kaustas ja selle allkaustades.

Nüüd räägime käsklusest ag. See ilmus hiljem grep, see on kiirem, selle kasutamine on mugavam.

[в закладки] Bash algajatele: 21 kasulikku käsku
ag käsk

ag my_regex my_file: tagastab teavet ridade numbrite ja nende ridade kohta, kus leiti vasteid my_regex.

ag -i my_regex my_file: otsing toimub ilma sümbolite suuruse arvestamiseta.

Meeskond ag töötleb faili automaatselt .gitignore ja välistab väljundist selle, mis on leitud kaustades või failides, mis on selles failis nimetatud. See on väga mugav.

ag my_regex my_file -- skip-vcs-ignores: failide sisu automaatsete versioonihalduse süsteemide (nt .gitignore) otsingus ei arvestata.

Lisaks, et anda käsule ag teada, millised failiteed otsingust välja jätta, saab luua faili .agignore.

Selle jaotise alguses mainisime käsku ack. Käsk ack ja ag on väga sarnased, võib öelda, et nad on 99% ulatuses omavahel asendatavad. Siiski töötab käsk ag kiiremini, seetõttu kirjeldasin just seda.

Nüüd räägime arhiveerimisest.

▍Arhiveerimine

tar my_source_directory: ühendab failid kaustast my_source_directory üheks tarball-failiks. Taolisi faile on mugav kasutada, et edastada kellelegi suuri failikomplekte.

[в закладки] Bash algajatele: 21 kasulikku käsku
Käsk tar

Tarball-failid, mille see käsk loob, on failid, millel on laiend .tar (Tape ARchive). See, et käsu nimes ja selle loodud faililaiendis peitub sõna «tape» (lint), näitab, kui kaua see käsk on eksisteerinud.

tar -cf my_file.tar my_source_directory: loob tarball-faili nimega my_file.tar kausta sisu my_source_directory. Lipuke -c tähistab «create» (loomine) ja lipp -f tähistab «file» (fail).

Failide, mis asuvad .tar-failis, ekstraktimiseks kasutatakse käsku tar c lippudega -x («extract», ekstraktsioon) ja -f («file», fail).

tar -xf my_file.tar: ekstrakteerib faile my_file.tar praeguses töökataloogis.

Räägime nüüd, kuidas tihendada ja välja pakkida .tar-faile.

tar -cfz my_file.tar.gz my_source_directory: siin, kasutades lippu -z («zip», tihendusalgoritm) on näidatud, et faile tuleb tihendada algoritmi gzip (GNU zip) abil. Failide tihendamine aitab hoida kettaruumi nende failide ladustamise ajal. Kui faile kavatsetakse näiteks edastada teistele kasutajatele, soodustab see nende failide kiiremat allalaadimist.

Faili .tar.gz saab välja pakkida, lisades lippu -z eelnevale faile ekstrakteerimise käsule, mida me varem vaatasime. See näeb välja nii: .tartar -xfz my_file.tar.gz

Oluline on märkida, et käsul
on veel palju kasulikke lippe. tar Bashi aliasid

Bashi aliasid (millele viidatakse ka lühendite või aliasidena) on mõeldud käsurea lühendite või nende järjestuste loomiseks, mille kasutamine tavaliste käskude asemel kiirendab tööd. Kui teil on näiteks alias

bu , mille taga on käskpython setup.py sdist bdist_wheel python setup.py sdist bdist_wheel, siis piisab selle käsu väljakutseks selle hüüdnime kasutamisest.

Selle hüüdnime loomiseks piisab, kui lisada järgmine käsk faili ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Kui teie süsteemis ei ole faili ~/.bash_profile, siis saate selle ise luua, kasutades käsku touch. Hüüdnime loomise järel taaskäivitage terminal, pärast mida saate seda hüüdnime kasutada. Antud juhul kahe sümboli sisestamine asendab rohkem kui kolme tosina sümboli sisestamise käsu jaoks, mis on mõeldud kogud Python-pakettide jaoks.

V ~/.bash_profile võite lisada hüüdnimed mis tahes sageli kasutatavatele käskudele.

▍Kokkuvõtted

Selles materjalis käsitlesime 21 populaarset Bash käsku ja rääkisime nende hüüdnime loomise võimalustest. Kui see teema huvitab teid — siin on artiklite seeria, mis on pühendatud Bash-ile. Siit pdf-versiooni nende publikatsioonide leiate. Lisaks, kui soovite Bash'i omandada, pidage meeles, et siin, nagu ka teise tarkvarasüsteemi õppimisel, on oluline praktika.

Lugupidamisega lugejad! Milliseid käske, mis oleksid kasulikud algajatele, lisaksite nendele, mida käesolevas artiklis käsitleti?

Loe ka meie blogist bash-skriptide seeriat

[в закладки] Bash algajatele: 21 kasulikku käsku

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster