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.
→
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.
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 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
<
: ümbersuunaminestdin
.>
: ümbersuunaminestdout
.|
: 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 ../
.
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 mv
saab 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
: failist koopia loomine
cp my_source_file target_directorymy_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.
Ü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
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
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 stdin
kasutades seda käsku torujuhtme osana.
tail my_file
: loeb ridu faili lõpust. Seda käsku saab kasutada ka torujuhtmes.
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.
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.
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.
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.
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
В ~/.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 -
Kallid lugejad! Milliseid algajatele kasulikke käske lisaksite käesolevas artiklis käsitletutele?
→
Allikas: www.habr.com