[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku

Materjal, mille tõlke täna avaldame, on mõeldud neile, kes soovivad Linuxi käsurida omandada. Võimalus seda tööriista tõhusalt kasutada võib säästa palju aega. Eelkõige räägime siin Bashi kestast ja 21 kasulikust käsust. Räägime ka sellest, kuidas kasutada käsulippe ja Bashi varjunimesid, et kiirendada pikkade juhiste tippimist.

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku

Lugege meie ajaveebis ka väljaannete sarja bash-skriptide kohta

Tingimused

Kui õpite Linuxi käsureaga töötama, kohtate palju kontseptsioone, millest on navigeerimisel abi. Mõned neist, nagu "Linux" ja "Unix" või "shell" ja "terminal", on mõnikord segaduses. Räägime nendest ja muudest olulistest terminitest.

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

Linux on kõige populaarsem Unixi-laadne operatsioonisüsteem. Nüüd kasutatakse seda paljudes seadmetes, sealhulgas arvutites.

Terminal (terminal) ehk terminali emulaator on programm, mis annab juurdepääsu operatsioonisüsteemile. Saate korraga avada mitu terminali akent.

Koor (shell) on programm, mis võimaldab saata operatsioonisüsteemi spetsiaalses keeles kirjutatud käske.

sisse lööma tähistab Bourne Again Shelli. See on kõige levinum kestakeel, mida kasutatakse operatsioonisüsteemiga suhtlemiseks. Samuti on MacOS-i vaikeseadeks Bashi kest.

Käsurea liides (Command Line Interface, CLI) on inimese ja arvuti vahelise suhtluse meetod, mille abil kasutaja sisestab klaviatuurilt käsklusi ja arvuti neid käske täites kuvab kasutajale teksti kujul teateid. CLI peamine kasutusala on teatud olemite (nt failide) kohta ajakohase teabe hankimine ja failidega töötamine. Käsurea liidest tuleks eristada graafilisest kasutajaliidest (GUI), mis kasutab peamiselt hiirt. Käsurea liidest nimetatakse sageli lihtsalt käsureaks.

Skript (script) on väike programm, mis sisaldab shellikäskude jada. Skriptid kirjutatakse failidesse, neid saab korduvalt kasutada. Skriptide kirjutamisel saate kasutada muutujaid, tingimustingimusi, silmuseid, funktsioone ja muid funktsioone.

Nüüd, kui oleme olulised terminid käsitlenud, tahan juhtida tähelepanu sellele, et kasutan siin vaheldumisi termineid "Bash", "shell" ja "käsurida", samuti termineid "kataloog" ja "kaust".

Standardne ojad, mida me siin kasutame, on standardsisend (standardsisend, stdin), standardväljund (standardväljund, stdout) ja standardvea väljund (standardviga, stderr).

Kui allpool toodud näidiskäskudes leiate midagi sarnast my_whatever - see tähendab, et see fragment tuleb asendada millegi teie omaga. Näiteks faili nimi.

Nüüd, enne kui asuda analüüsima käske, millele see materjal on pühendatud, vaatame nende loendit ja nende lühikirjeldusi.

21 Bashi käsku

▍Teabe hankimine

  • man: kuvab käsu kasutusjuhendi (spikker).
  • pwd: kuvab teavet töökataloogi kohta.
  • ls: kuvab kataloogi sisu.
  • ps: Võimaldab vaadata teavet jooksvate protsesside kohta.

▍Failisüsteemiga manipuleerimine

  • cd: töökataloogi muutmine.
  • touch: faili loomine.
  • mkdir: loo kataloog.
  • cp: faili kopeerimine.
  • mv: faili teisaldamine või kustutamine.
  • ln: loo link.

▍I/O ümbersuunamine ja torujuhtmed

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

▍Failide lugemine

  • head: loe faili algust.
  • tail: loe faili lõppu.
  • cat: lugege faili ja printige selle sisu ekraanile või ühendage failid.

▍Failide kustutamine, protsesside peatamine

  • rm: faili kustutamine.
  • kill: peatage protsess.

▍ Otsige

  • grep: otsige teavet.
  • ag: täpsem käsk otsimiseks.

▍Arhiveerimine

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

Räägime neist käskudest üksikasjalikumalt.

Meeskonna üksikasjad

Alustuseks käsitleme käske, mille tulemused vormistatakse stdout. Tavaliselt kuvatakse need tulemused terminali aknas.

▍Teabe hankimine

man command_name: kuvab käsujuhendi, st abiteavet.

pwd: kuvab praeguse töökataloogi tee. Käsureaga töötamise käigus tuleb kasutajal sageli välja selgitada, kus süsteemis ta täpselt asub.

ls: kuvab kataloogi sisu. Seda käsku kasutatakse ka üsna sageli.

ls -a: näita peidetud faile. siin rakendatud lipp -a meeskonnad ls. Lippude kasutamine aitab kohandada käskude käitumist.

ls -l: kuvab üksikasjalikku teavet failide kohta.

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

ps: jooksvate protsesside kuvamine.

ps -e: kuvab teavet kõigi töötavate protsesside kohta, mitte ainult praeguse kasutaja kestaga seotud protsesside kohta. Seda käsku kasutatakse sellel kujul sageli.

▍Failisüsteemiga manipuleerimine

cd my_directory: muutke töökataloogiks my_directory. Kataloogipuus ühe taseme võrra ülespoole liikumiseks kasutage my_directory suhteline tee ../.

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku
cd käsk

touch my_file: faili loomine my_file mööda etteantud rada.

mkdir my_directory: looge kaust my_directory mööda etteantud rada.

mv my_file target_directory: faili teisaldamine my_file kausta target_directory. Sihtkataloogi määramisel peate kasutama selle absoluutset teed (ja mitte konstruktsiooni nagu ../).

meeskond mvsaab kasutada ka failide või kaustade ümbernimetamiseks. Näiteks võib see välja näha selline:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: failist koopia loomine my_source_file ja pane see kausta target_directory.

ln -s my_source_file my_target_file: looge sümboolne link my_target_file faili kohta my_source_file. Kui muudate linki, muutub ka algne fail.

Kui fail my_source_file kustutatakse siis my_target_file jääb alles. Lipp -s meeskonnad ln võimaldab luua linke kataloogide jaoks.

Nüüd räägime I/O ümbersuunamisest ja torujuhtmetest.

▍I/O ümbersuunamine ja torujuhtmed

my_command < my_file: asendab standardse sisendfaili deskriptori (stdin) faili kohta my_file. See võib olla kasulik, kui käsk ootab klaviatuurilt mingit sisendit ja need andmed on juba faili salvestatud.

my_command > my_file: suunab ümber käsu tulemused, st selle, mis tavaliselt läheb stdout ja väljastada ekraanile, faili my_file. Kui fail my_file ei ole olemas – see on loodud. Kui fail on olemas, kirjutatakse see üle.

Näiteks pärast käsu täitmist ls > my_folder_contents.txt luuakse tekstifail, mis sisaldab aktiivses töökataloogis olevate asjade loendit.

Kui sümboli asemel > kasutada konstruktsiooni >>, siis eeldusel, et fail, kuhu käsu väljund on ümber suunatud, on olemas, seda faili üle ei kirjutata. Andmed lisatakse selle faili lõppu.

Vaatame nüüd andmekonveieri töötlemist.

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku
Ühe käsu väljund sisestatakse teise käsu sisendisse. See on nagu ühe toru ühendamine teisega

first_command | second_command: konveieri sümbol, |, kasutatakse ühe käsu väljundi saatmiseks teisele käsule. Millele saadab kirjeldatud struktuuri vasakul küljel olev käsk stdout, Sisse kukkuma stdin käsk torujuhtme sümbolist paremal.

Linuxis saab andmeid konveierdada peaaegu iga hästi vormindatud käsu abil. Tihti öeldakse, et Linuxis on kõik torujuhe.

Konveieri sümboli abil saate aheldada mitu käsku. See näeb välja selline:

first_command | second_command | third_command

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku
Mitmest käsust koosnevat konveieri võib võrrelda konveieriga

Pange tähele, et kui käsk sümbolist vasakul |, väljastab midagi stdout, mida ta väljastab, on kohe saadaval stdin teine ​​meeskond. See tähendab, et selgub, et konveieri abil tegeleme käskude paralleelse täitmisega. Mõnikord võib see viia ootamatute tulemusteni. Üksikasju selle kohta saab lugeda siin.

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

▍Failide lugemine

head my_file: loeb ridu faili algusest ja prindib need ekraanile. Saate lugeda mitte ainult failide sisu, vaid ka seda, mida käsud väljastavad stdinkasutades seda käsku torujuhtme osana.

tail my_file: loeb ridu faili lõpust. Seda käsku saab kasutada ka torujuhtmes.

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku
Pea (pea) on ees ja saba (saba) on taga

Kui töötate andmetega pandateegi abil, siis käsud head и tail peaks sulle tuttav olema. Kui see nii ei ole, vaadake ülaltoodud joonist ja need jäävad teile kergesti meelde.

Mõelge failide lugemiseks muudele viisidele, räägime käsust cat.

Meeskond cat prindib kas faili sisu ekraanile või ühendab mitu faili. See sõltub sellest, kui palju faile sellele käsule kutsumisel edastatakse.

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku
kassi käsk

cat my_one_file.txt: kui sellele käsule edastatakse üks fail, väljastab see selle käsule stdout.

Kui annate sellele kaks või enam faili, käitub see teisiti.

cat my_file1.txt my_file2.txt: olles saanud sisendiks mitu faili, ühendab see käsk nende sisu ja kuvab, mis juhtus stdout.

Kui failide ühendamise tulemus tuleb salvestada uue failina, saate 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: Kustuta fail my_file.

rm -r my_folder: kustutab kausta my_folder ja kõik selles sisalduvad failid ja kaustad. Lipp -r näitab, et käsk töötab rekursiivses režiimis.

Selleks, et süsteem ei küsiks kinnitust iga kord, kui fail või kaust kustutatakse, kasutage lippu -f.

kill 012345: peatab määratud tööprotsessi, andes sellele aega elegantselt välja lülitada.

kill -9 012345: peatab määratud tööprotsessi sunniviisiliselt. Vaata lippu -s SIGKILL tähendab sama mis lipp -9.

▍ Otsige

Andmete otsimiseks saate kasutada erinevaid käske. Eriti - grep, ag и ack. Alustame nende käskudega tutvumist grep. See on ajaproovitud ja usaldusväärne käsk, mis on aga teistest aeglasem ja mitte nii mugav kasutada kui neid.

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku
grep käsk

grep my_regex my_file: otsib my_regex в my_file. Kui vaste leitakse, tagastatakse iga vaste kohta kogu string. Vaikimisi my_regex käsitletakse regulaaravaldisena.

grep -i my_regex my_file: otsing tehakse tõstutundlikult.

grep -v my_regex my_file: tagastab kõik read, mis ei sisalda my_regex. Lipp -v tähendab inversiooni, see sarnaneb operaatoriga NOT, mida leidub paljudes programmeerimiskeeltes.

grep -c my_regex my_file: tagastab teabe otsingumustri failist leitud vastete arvu kohta.

grep -R my_regex my_folder: teostab rekursiivse otsingu kõigis failides, mis asuvad määratud kaustas ja selles pesastatud kaustades.

Räägime nüüd meeskonnast ag. Ta tuli hiljem grep, see on kiirem, sellega on mugavam töötada.

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku
ag käsk

ag my_regex my_file: tagastab teabe reanumbrite ja ridade kohta, millelt leiti vasteid my_regex.

ag -i my_regex my_file: otsing tehakse tõstutundlikult.

Meeskond ag faili automaatselt töödelda .gitignore ja jätab väljundist välja selle, mis on leitud selles failis loetletud kaustadest või failidest. See on väga mugav.

ag my_regex my_file -- skip-vcs-ignores: automaatsete versioonikontrollifailide sisu (nt .gitignore) ei võeta otsingus arvesse.

Lisaks selleks, et meeskonnale öelda ag millistel failiteedel soovite otsingust välja jätta, saate luua faili .agignore.

Selle jaotise alguses mainisime käsku ack. Meeskonnad ack и ag väga sarnased, võime öelda, et need on 99% omavahel asendatavad. Siiski meeskond ag töötab kiiremini, sellepärast ma seda kirjeldasin.

Räägime nüüd arhiividega töötamisest.

▍Arhiveerimine

tar my_source_directory: ühendab failid kaustast my_source_directory ühte tarballi faili. Sellised failid on kasulikud suurte failikomplektide kellelegi edastamiseks.

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku
tar käsk

Selle käsuga loodud tarball-failid on laiendiga failid .tar (Lintiarhiiv). Asjaolu, et sõna "lint" (lint) on peidetud käsu nimes ja selle loodud failide nimede laiendis, näitab, kui kaua see käsk on eksisteerinud.

tar -cf my_file.tar my_source_directory: loob tarballi faili nimega my_file.tar kausta sisuga my_source_directory. Lipp -c tähistab "loomist" (loomist) ja lippu -f kui "fail" (fail).

Failide ekstraktimiseks .tar-fail, kasutage käsku tar lippudega -x ("väljavõte", ekstraheerimine) ja -f ("fail", fail).

tar -xf my_file.tar: ekstraktib failid my_file.tar praegusesse töökataloogi.

Nüüd räägime sellest, kuidas tihendada ja lahti pakkida .tar- failid.

tar -cfz my_file.tar.gz my_source_directory: siin kasutades lippu -z ("zip", tihendusalgoritm) näitab, et seda algoritmi tuleks kasutada failide tihendamiseks gzip (GNUzip). Failide tihendamine säästab selliste failide salvestamisel kettaruumi. Kui faile plaanitakse näiteks teistele kasutajatele edastada, aitab see kaasa selliste failide kiiremale allalaadimisele.

Paki fail lahti .tar.gz saate lisada lipu -z sisu väljavõtte käsule .tar-failid, millest me eespool rääkisime. See näeb välja selline:

tar -xfz my_file.tar.gz
Tuleb märkida, et meeskond tar Kasulikke lippe on palju rohkem.

Bashi varjunimed

Bash-aliased (nimetatakse ka varjunimedeks või lühenditeks) on mõeldud käskude või nende jadade lühendatud nimede loomiseks, mille kasutamine tavaliste käskude asemel kiirendab tööd. Kui teil on varjunimi bu, mis peidab käsu python setup.py sdist bdist_wheel, siis selle käsu kutsumiseks piisab selle varjunime kasutamisest.

Sellise varjunime loomiseks lisage failile lihtsalt järgmine käsk ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Kui teie süsteemis faili pole ~/.bash_profile, siis saate selle käsu abil ise luua touch. Pärast aliase loomist taaskäivitage terminal, misjärel saate seda aliast kasutada. Sel juhul asendab kahe märgi sisestamine käsu enam kui kolmekümne tähemärgi sisestust, mis on ette nähtud assambleed Pythoni paketid.

В ~/.bash_profile saate lisada varjunimesid mis tahes sageli kasutatavatele käskudele.

▍Tulemused

Selles postituses oleme käsitlenud 21 populaarset Bashi käsku ja rääkinud käskude varjunimede loomisest. Kui olete sellest teemast huvitatud - siin Bashile pühendatud väljaannete sari. see on Leiate nende väljaannete pdf-versiooni. Samuti, kui soovite Bashi õppida, pidage meeles, et nagu iga teise programmeerimissüsteemi puhul, on harjutamine võtmetähtsusega.

Kallid lugejad! Milliseid algajatele kasulikke käske lisaksite käesolevas artiklis käsitletutele?

Lugege meie ajaveebis ka väljaannete sarja bash-skriptide kohta

[järjehoidjatesse lisatud] Bash algajatele: 21 kasulikku käsku

Allikas: www.habr.com

Lisa kommentaar