Tänane tõlgitav materjal on mõeldud neile, kes soovivad Linuxi käsureaga tutvuda. Selle tööriista tõhus kasutamine aitab säästa palju aega. Eriti räägime siin Bash käsireast ja 21 kasulikust käsust. Samuti arutame, kuidas kasutada käsurea lippusid ja Bash alias'e, mis kiirendavad pika käsu sisestamist.
→
Terminid
Linuxi käsureaga töötades võite kokku puutuda paljude mõistetega, mille tundmine on kasulik. Mõned neist, nagu 'Linux' ja 'Unix', või 'käsiraam' ja 'terminal', võivad vahel segi minna. Räägime neist ja teistest olulistest terminitest.
on populaarne operatsioonisüsteem, mille töötas välja Bell Labs 1970. aastatel. Selle kood oli suletud.
on kõige populaarsem Unix-põhine operatsioonisüsteem. Praegu kasutatakse seda paljudes seadmetes, sealhulgas arvutites.
(terminal), või terminali emulaator — see on programm, mis võimaldab juurde pääseda operatsioonisüsteemile. Samal ajal saab avada mitu terminaliaken.
(shell) — see on programm, mis võimaldab saata operatsioonisüsteemile käske, mis on kirjutatud erilisel keelel.
tähendab Bourne Again SHell. See on kõige levinum käsurea keel, mida kasutatakse operatsioonisüsteemiga suhtlemiseks. Lisaks kasutatakse Bash'i vaikimisi macOS-is.
(Command Line Interface, CLI) — see on inimese ja arvuti vaheline suhtlemisviis, kus kasutaja sisestab käske klaviatuurilt ning arvuti täidab neid, edastades kasutajale tekstivormis teateid. Peamiselt kasutatakse CLI-d värskete andmete saamiseks teatud üksuste kohta, näiteks failide kohta, ja failidega töötamiseks. Käsurealiidest tuleks eristada graafilisest kasutajaliidest (Graphical User Interface, GUI), kus kasutatakse peamiselt hiirt. Käsurealiidest nimetatakse sageli lihtsalt käsureaks.
(script) — see väike programm, mis sisaldab käsurea käsuteemasid. Skripte saab salvestada failides, neid saab kasutada korduvalt. Skripti kirjutamisel saab kasutada muutujaid, tingimuslikke konstruktsioone, tsükleid, funktsioone ja muid võimalusi.
Nüüd, kui oleme käsitlenud olulisi termineid, tahan märkida, et siin ma kasutan termineid „Bash“, „käsurea tõlgendaja“ ja „käsklusrea“ vahetatavalt, samuti mõisteid „kaust“ (directory) ja „kataloog“ (folder).
Standardne , millega me siin töötame — see on standardne sisend (standard input, stdin), standardne väljund (standard output, stdout) ja standardne veateade (standard error, stderr).
Kui allpool toodud käskude näidetes kohtate midagi sellist nagu my_whatever — see tähendab, et see fragment tuleks asendada millegagi teie omaga. Näiteks — faili nimega.
Nüüd, enne kui hakkame käsitlema käske, millele see materjal on pühendatud, vaadakem nende loend ja lühikirjeldused.
21 Bash-käsku
▍Teabe saamine
man: kuvab kasutaja juhendi (abi) käsu kohta.pwd: kuvab teavet töökausta kohta.ls: kuvab kausta sisu.ps: võimaldab vaadata töötavate protsesside teavet.
▍Failisüsteemiga manipuleerimine
cd: muudab töökausta.touch: failide loomine.mkdir: kausta loomine.cp: faili kopeerimine.mv: faili liigutamine või kustutamine.ln: lingi loomine.
▍Sisendi-väljundi suunamine ja torustikud
<: suunaminestdin.>: suunaminestdout.|: 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 kuvamine ekraanil või failide ühendamine.
▍Failide kustutamine, protsesside peatamine
rm: faili eemaldamine.kill: protsessi peatamine.
▍Otsimine
grep: teabe otsimine.ag: täiustatud otsingukäsk.
▍Arhiveerimine
tar: arhivide loomine ja nendega töötamine.
Räägime nendest käskudest lähemalt.
Käskude üksikasjad
Alustuseks vaatame neid käske, mille väljund on vormis stdout. Tüüpiliselt kuvatakse need tulemused terminali aknas.
▍Teabe saamine
man command_name: käsu juhendi, st — abiteabe kuvamine.
pwd: kuvab ekraani teed praegusesse töökausta. Kommando readis töötades peab kasutaja sageli teadma, kus täpselt süsteemis ta asub.
ls: kuvab katalooge sisu. Seda käsku kasutatakse samuti üsna sageli.
ls -a: kuvab varjatud faile. Siin on kasutatud lippu -a käskudeks ls. Lippude kasutamine aitab seadistada käskude toimimist.
ls -l: kuvab failide üksikasjalikku teavet.
Pange tähele, et lippe saab kombineerida. Näiteks — nii: ls -al.
ps: kuvab käimasolevaid protsesse.
ps -e: kuvab teavet kõigi käimasolevate protsesside kohta, mitte ainult nende kohta, mis on seotud praeguse kasutaja shelliga. Seda käsku kasutatakse sageli just sellisel kujul.
▍Failisüsteemiga manipuleerimine
cd my_directory: muudab töökausta my_directory. Kataloogipuu ühe taseme võrra üleminekuks kasutage my_directory relatiivset teed ../.
![[salvesta järjehoidjatena] Bash algajatele: 21 kasulikku käsku](/wp-content/uploads/2019/03/91815e5212c9dfec88a76bc2ab37955f.png)
Käsk cd
touch my_file: loob faili my_file antud teel.
mkdir my_directory: loob kausta my_directory antud teel.
mv my_file target_directory: liigutab faili my_file kausta target_directory. Sihtkausta määramisel tuleb kasutada selle absoluutset teed (mitte konstruktsiooni nagu ../).
Käsku mv, lisaks saab kasutada ka failide või kaustade ümbernimetamiseks. Näiteks võiks see välja näha nii:
mv my_old_file_name.jpg my_new_file_name.jpg: loob faili koopia
cp minu_allika_fail sihtkaustamy_source_file ja paigutab selle kausta target_directory.
ln -s my_source_file my_target_file: loob sümboolse lingi my_target_file failile my_source_file. Kui linki muudetakse, muudetakse ka algset faili.
Kui fail my_source_file kustutatakse, siis my_target_file jääb alles. Lipp -s käskudeks ln võimaldab luua linke ka kaustadele.
Nüüd räägime sisendi-väljundi suunamisest ja torudest.
▍Sisendi-väljundi suunamine ja torustikud
my_command < my_file: asendab standardse sisendi (stdin) failide deskriptoriga my_file. See võib olla kasulik, kui käsk ootab andmete sisestamist klaviatuurilt, kuid need andmed on eelnevalt salvestatud failis.
my_command > my_file: suunab käsu töö tulemused, mis tavaliselt kuvatakse ekraanil, faili stdout . Kui fail my_fileei eksisteeri — see luuakse. Kui fail eksisteerib — see ülekirjutatakse. my_file Näiteks pärast käsku
ls > my_folder_contents.txt loodakse tekstifail, mis sisaldab loendit sellest, mis on praeguses töökaustas. Kui kasutada sümboli asemel konstruktsiooni
>> > : >>, siis, kui fail, kuhu käsu väljund suunatakse, eksisteerib, ei kirjutata see fail uuesti üle. Andmed lisatakse selle faili lõppu.
Vaadakem nüüd andmete torujuhtme töötlemist.
![[salvesta järjehoidjatena] Bash algajatele: 21 kasulikku käsku](/wp-content/uploads/2019/03/dcc4e500b247cb13adb4d64c36c24f88.png)
See, mida üks käsk väljundab, suunatakse teise käsu sisendiks. See meenutab ühte toru ühendamist teisega.
first_command | second_command: torusümbol, |, kasutatakse selleks, et saata ühe käsu töötulemusi teisele käsule. See, mida vasakul olev käsk saadab stdout, jõuab stdin paremal olevasse käsusse torusümboliga.
Linuxis saab andmete torujuhtme töötlemist korraldada peaaegu iga korralikult koostatud käsuga. Sageli öeldakse, et Linuxis on kõik nagu torujuhe.
Torustikku saab luua mitmeid käske ühendades. See näeb välja nii:
first_command | second_command | third_command ![[salvesta järjehoidjatena] Bash algajatele: 21 kasulikku käsku](/wp-content/uploads/2019/03/1d94b3f04846ef40c072299877c55b1f.png)
Mitme käsu toru võib võrrelda torustikuga.
Pange tähele, et kui vasakul olev käsk |, väljundab midagi stdout, siis see, mida ta väljundas, on kohe saadaval stdin teiseks käskuks. See tähendab, et torujuhete kasutamisel teeme paralleelset käsu täitmist. See võib mõnikord viia ootamatute tulemusteni. Üksikasju selle kohta saab lugeda .
Nüüd räägime failidest andmete lugemisest ja nende kuvamisest ekraanile.
▍Failide lugemine
head my_file: loeb faili algusest read ja kuvab need ekraanile. Saame lugeda mitte ainult failide sisu, vaid ka seda, mida käsud väljundavad stdin, kasutades seda käsku torus elemendina.
tail my_file: loeb faili lõpust read. Seda käsku saab samuti torus kasutada.
![[salvesta järjehoidjatena] Bash algajatele: 21 kasulikku käsku](/wp-content/uploads/2019/03/0dd6e0353a1b5995d4a1228ae2550ad9.png)
Head (pea) on ees, samas kui tail (saba) on taga.
Kui kasutate andmete töötlemiseks pandas teeki, siis need käsud head ja tail peavad teile olema tuttavad. Kui ei, siis vaadake ülaltoodud joonist ja te õpite need kergesti meelde.
Uurime teisi viise failide lugemiseks, räägime käsust cat.
Meeskond cat kas kuvab faili sisu ekraanile või ühendab mitu faili. See sõltub sellest, kui palju faile sellele käsule edastatakse.
![[salvesta järjehoidjatena] Bash algajatele: 21 kasulikku käsku](/wp-content/uploads/2019/03/708bea2f5d31e1623e9fd80ff5b576af.png)
Käsk cat
cat my_one_file.txt: kui sellele käskule edastatakse üks fail, siis see kuvab selle. stdout.
Kui edastada talle kaks faili või rohkem, käitub ta teisiti.
cat my_file1.txt my_file2.txt: kui sisendiks on mitu faili, ühendab see käsk nende sisu ja väljundina annab tulemuse stdout.
Kui soovite faili konkateneerimise tulemust uue failina salvestada, saate kasutada operaatorit >:
cat my_file1.txt my_file2.txt > my_new_file.txtNüü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 selles sisalduvad failid ja kaustad. Lipp -r tähendab, et käsk töötab rekursiivses režiimis.
Kuna süsteem ei palu igas faili või kausta kustutamise operatsioonis kinnitust, kasutage lippu -f.
kill 012345: peatab määratud käimasoleva protsessi, andes selle korralikuks lõpetamiseks aega.
kill -9 012345: sunniviisiliselt lõpetab määratud käivitatud protsessi. Lipp -s SIGKILL tähendab sama mis lipp -9.
▍Otsimine
Andmete leidmiseks saab kasutada erinevaid käske. Eelkõige — grep, ag ja ack. Alustame meie tutvustust nende käskudega grep. See on ajaproovile vastupidav, usaldusväärne käsk, kuigi aeglasem kui teised ja mitte nii mugav kasutada.
![[salvesta järjehoidjatena] Bash algajatele: 21 kasulikku käsku](/wp-content/uploads/2019/03/bc02403dbbd0109f0dfd595eccf239c7.png)
Käsk grep
grep my_regex my_file: otsib my_regex ja my_file. Kui leitakse vasteid, tagastatakse igaühe jaoks terve rida. Vaikimisi my_regex tõlgendatakse regulaarse väljendina.
grep -i my_regex my_file: otsing toimub väiketähtede arvestamata.
grep -v my_regex my_file: tagastab kõik read, mis ei sisalda my_regex. Lipp -v tähendab, et see inverteerib, see sarnaneb operaatorile EXISTS, mis on paljudes programmeerimiskeeldes.
grep -c my_regex my_file: tagastab teavet sobivate vastete arvu kohta, mis leiti failis.
grep -R my_regex my_folder: teostab rekursiivse otsingu kõigis failides, mis asuvad määratud kaustas ja selle alamkaustades.
Nüüd räägime käskudest ag. See ilmus hiljem grep, see on kiirem, selle kasutamine on mugavam.
![[salvesta järjehoidjatena] Bash algajatele: 21 kasulikku käsku](/wp-content/uploads/2019/03/f0eeb1d38a1e9c22a8463858753dedb5.png)
Käsk ag
ag my_regex my_file: tagastab teavet ridade numbrite ja nende ridade kohta, milles leiti vasted my_regex.
ag -i my_regex my_file: otsing toimub väiketähtede arvestamata.
Meeskond ag töötleb faili automaatselt .gitignore ja välistab väljundist selle, mis leiti kaustades või failides, mis on loetletud selles failis. See on väga mugav.
ag my_regex my_file -- skip-vcs-ignores: failide sisu versioonihalduse süsteemides (nt. .gitignore) otsimisel ei arvestata.
Lisaks, et näidata meeskonnale, ag milliseid failiteid tuleks otsimisest välja jätta, saab luua faili .agignore.
Selle jaotise alguses mainisime käsku ack. Käsk ack ja ag on väga sarnane, võib öelda, et need on 99% ulatuses vahetatavad. Siiski töötab käsk ag kiiremini, seega kirjeldasin just seda.
Nüüd räägime arhiividest.
▍Arhiveerimine
tar my_source_directory: ühendab failid kaustast my_source_directory üheks tarball-failiks. Selliseid faile on mugav kasutada, et edastada kellelegi suuri failikogumeid.
![[salvesta järjehoidjatena] Bash algajatele: 21 kasulikku käsku](/wp-content/uploads/2019/03/4531ef1d4084af608fcbe91964a6710b.png)
Käsk tar
Tarball-failid, mis see käsk loob, on failid laiendiga .tar (Tape ARchive). See, et käsu nimel ja loodud failide laienditel on sõna „tape” (lint), viitab sellele, kui kaua see käsk on olemas olnud.
tar -cf my_file.tar my_source_directory: loob tarball-faili nimega my_file.tar kausta sisu my_source_directory. Lipp -c tähistatakse kui „create” (loomine), samas kui lipp -f tähendab „file” (fail).
Failide, mis asuvad .tar-failis, välja tõmbamiseks kasutatakse käsku tar c lippudega -x („extract”, välja tõmbamine) ja -f („file”, fail).
tar -xf my_file.tar: tõmbab failid välja my_file.tar praegusesse töökausta.
Nüüd räägime sellest, kuidas tihendada ja lahti pakkida .tar-faile.
tar -cfz my_file.tar.gz my_source_directory: siin, kasutades lippu -z („zip”, tihendamisalgoritm), on märgitud, et failide tihendamiseks peab olema kasutusel algoritm gzip (GNU zip). Failide tihendamine aitab säästa kettaruumi, kui selliseid faile hoitakse. Kui faile plaanitakse näiteks teistele kasutajatele edastada, aitab see selliste failide kiiremat allalaadimist.
Faili .tar.gz saab lahti pakkida, lisades käsule, millega me eelnevalt oleme arutanud, lipp -z faili sisu .tar-failide välja tõmbamiseks. See näeb välja nii:
tar -xfz my_file.tar.gz
Tuleb märkida, et käsk tar on lisaks veel mitmeid kasulikke lippe.
Bash-lühendid
Bash-lühendid (mida tuntakse ka alias’te või lühendite nime all) on mõeldud, et luua lühendatud nimetusi käskudele või nende järjestustele, mille kasutamine tavakäskude asemel kiirendab tööd. Kui teil on näiteks lühend bu, mis varjab käsku python setup.py sdist bdist_wheel, piisab selle käsu väljakutsumiseks sellest lühendist.
Selle pseudonüüdi 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. Pärast pseudonüüdi loomist taaskäivitage terminal, mille järel saate seda pseudonüüdi kasutada. Antud juhul asendab kahe sümboli sisestamine üle kolme kümne sümboli käsu, mis on mõeldud Python-pakettide jaoks.
Uues ~/.bash_profile pseudonüüde saab lisada mistahes sageli kasutatavatele käskudele.
▍Kokkuvõte
Selles materjalis käsitlesime 21 populaarset Bash-käsku ja rääkisime pseudonüüdide loomisest käskude jaoks. Kui see teema teid huvitab — siis tsükkel väljaandeid, mis on pühendatud Bashile. pdf-versiooni nendest väljaannetest leiate ka. Lisaks, kui soovite Bash'i omandada, pidage meeles, et nagu iga teise tarkvarasüsteemi puhul, on oluline harjutamine.
Lugupeetud lugejad! Milliseid käskusid, mis on algajatele kasulikud, lisaksite nendele, mida selles artiklis käsitleti?
→
Allikas: habr.com
