[pažymėta] Bash pradedantiesiems: 21 naudinga komanda

Medžiaga, kurios vertimą skelbiame šiandien, skirta tiems, kurie nori įvaldyti Linux komandų eilutę. Galimybė efektyviai naudoti šį įrankį gali sutaupyti daug laiko. Visų pirma, čia kalbėsime apie „Bash“ apvalkalą ir 21 naudingą komandą. Taip pat kalbėsime apie tai, kaip naudoti komandų vėliavėles ir Bash slapyvardžius, kad pagreitintume ilgų instrukcijų įvedimą.

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda

Taip pat skaitykite mūsų tinklaraštyje keletą publikacijų apie bash scenarijus

Sąlygos

Kai išmoksite dirbti su Linux komandų eilute, susidursite su daugybe sąvokų, kurios padės naršyti. Kai kurie iš jų, pavyzdžiui, „Linux“ ir „Unix“ arba „shell“ ir „terminalas“, kartais painiojami. Pakalbėkime apie šiuos ir kitus svarbius terminus.

unix yra populiari operacinė sistema, kurią aštuntajame dešimtmetyje sukūrė Bell Labs. Jos kodas buvo uždarytas.

Linux yra populiariausia Unix tipo operacinė sistema. Dabar jis naudojamas daugelyje įrenginių, įskaitant kompiuterius.

Terminalas (terminalas) arba terminalo emuliatorius yra programa, suteikianti prieigą prie operacinės sistemos. Vienu metu galite atidaryti kelis terminalo langus.

Shell (shell) – tai programa, leidžianti operacinei sistemai siųsti komandas, parašytas specialia kalba.

Bash reiškia Bourne Again Shell. Tai yra labiausiai paplitusi apvalkalo kalba, naudojama sąveikai su operacine sistema. Be to, „MacOS“ yra numatytasis „Bash“ apvalkalas.

Komandinės eilutės sąsaja (Command Line Interface, CLI) – tai žmogaus ir kompiuterio sąveikos būdas, kurį naudodamas vartotojas įveda komandas iš klaviatūros, o kompiuteris, vykdydamas šias komandas, vartotojui rodo pranešimus teksto forma. CLI daugiausia naudojama norint gauti naujausią informaciją apie tam tikrus objektus, pavyzdžiui, apie failus, ir dirbti su failais. Komandinės eilutės sąsaja turėtų būti atskirta nuo grafinės vartotojo sąsajos (GUI), kuri pirmiausia naudoja pelę. Komandinės eilutės sąsaja dažnai vadinama tiesiog komandų eilute.

Scenarijus (scenarijus) yra maža programa, kurioje yra apvalkalo komandų seka. Skriptai rašomi į failus, juos galima naudoti pakartotinai. Rašydami scenarijus galite naudoti kintamuosius, sąlyginius, ciklus, funkcijas ir kitas funkcijas.

Dabar, kai aptarėme svarbius terminus, noriu atkreipti dėmesį, kad terminus „Bash“, „shell“ ir „komandų eilutė“ čia vartosiu pakaitomis, taip pat terminus „katalogas“ ir „aplankas“.

Standartinis srautai, kurią naudosime čia, yra standartinė įvestis (standartinė įvestis, stdin), standartinė išvestis (standartinė išvestis, stdout) ir standartinės klaidos išvestis (standartinė klaida, stderr).

Jei pavyzdyje komandos, kurios bus pateiktos žemiau, rasite kažką panašaus my_whatever - tai reiškia, kad šį fragmentą reikia pakeisti kažkuo jūsų. Pavyzdžiui, failo pavadinimas.

Dabar, prieš pradėdami analizuoti komandas, kurioms skirta ši medžiaga, pažvelkime į jų sąrašą ir trumpus aprašymus.

21 Bash komandos

▍Informacijos gavimas

  • man: rodo komandos vartotojo vadovą (pagalbą).
  • pwd: rodoma informacija apie darbinį katalogą.
  • ls: rodo katalogo turinį.
  • ps: leidžia peržiūrėti informaciją apie vykdomus procesus.

▍Failų sistemos manipuliavimas

  • cd: pakeisti darbo katalogą.
  • touch: sukurti failą.
  • mkdir: sukurti katalogą.
  • cp: nukopijuokite failą.
  • mv: perkelti arba ištrinti failą.
  • ln: sukurti nuorodą.

▍I/O peradresavimas ir vamzdynai

  • <: peradresuoti stdin.
  • >: peradresuoti stdout.
  • |: pervedė vienos komandos išvestį į kitos komandos įvestį.

▍Skaityti failus

  • head: perskaitykite failo pradžią.
  • tail: skaitykite failo pabaigą.
  • cat: skaitykite failą ir atspausdinkite jo turinį ekrane arba sujunkite failus.

▍Failų trynimas, procesų stabdymas

  • rm: ištrinti failą.
  • kill: sustabdyti procesą.

▍Ieškokite

  • grep: ieškoti informacijos.
  • ag: išplėstinė paieškos komanda.

▍Archyvavimas

  • tar: archyvų kūrimas ir darbas su jais.

Pakalbėkime apie šias komandas išsamiau.

Komandos informacija

Pirmiausia nagrinėkime komandas, kurių rezultatai pateikiami formoje stdout. Paprastai šie rezultatai rodomi terminalo lange.

▍Informacijos gavimas

man command_name: rodyti komandų vadovą, t. y. pagalbos informaciją.

pwd: rodo kelią į dabartinį darbo katalogą. Dirbdamas su komandine eilute, vartotojas dažnai turi tiksliai išsiaiškinti, kurioje sistemos vietoje jis yra.

ls: rodomas katalogo turinys. Ši komanda taip pat naudojama gana dažnai.

ls -a: rodyti paslėptus failus. čia pritaikyta vėliava -a komandos ls. Vėliavėlių naudojimas padeda pritaikyti komandų veikimą.

ls -l: Rodyti išsamią informaciją apie failus.

Atminkite, kad vėliavėles galima derinti. Pavyzdžiui - taip: ls -al.

ps: peržiūrėti vykdomus procesus.

ps -e: Rodyti informaciją apie visus vykdomus procesus, o ne tik tuos, kurie yra susiję su dabartiniu vartotojo apvalkalu. Ši komanda dažnai naudojama šioje formoje.

▍Failų sistemos manipuliavimas

cd my_directory: pakeisti darbo katalogą į my_directory. Norėdami pereiti vienu lygiu aukštyn katalogų medyje, naudokite my_directory santykinis kelias ../.

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda
cd komanda

touch my_file: failo kūrimas my_file nurodytu keliu.

mkdir my_directory: sukurti aplanką my_directory nurodytu keliu.

mv my_file target_directory: perkelti failą my_file į aplanką target_directory. Nurodydami tikslinį katalogą, turite naudoti absoliutų kelią į jį (o ne tokią konstrukciją kaip ../).

komanda mvtaip pat gali būti naudojamas failams ar aplankams pervardyti. Pavyzdžiui, tai gali atrodyti taip:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: sukurti failo kopiją my_source_file ir įdėkite į aplanką target_directory.

ln -s my_source_file my_target_file: sukurkite simbolinę nuorodą my_target_file vienam failui my_source_file. Jei pakeisite nuorodą, pradinis failas taip pat pasikeis.

Jei failas my_source_file tada bus ištrintas my_target_file išliks. Vėliava -s komandos ln leidžia kurti nuorodas į katalogus.

Dabar pakalbėkime apie I/O peradresavimą ir vamzdynus.

▍I/O peradresavimas ir vamzdynai

my_command < my_file: pakeičia standartinį įvesties failo aprašą (stdin) vienam failui my_file. Tai gali būti naudinga, jei komanda laukia tam tikro įvesties iš klaviatūros, o šie duomenys jau išsaugoti faile.

my_command > my_file: peradresuoja komandos rezultatus, t. y. į tai, kas paprastai būtų įtraukta stdout ir išvesti į ekraną, į failą my_file. Jei failas my_file neegzistuoja – yra sukurta. Jei failas egzistuoja, jis perrašomas.

Pavyzdžiui, įvykdžius komandą ls > my_folder_contents.txt bus sukurtas tekstinis failas su sąrašu, kas yra dabartiniame darbiniame kataloge.

Jei vietoj simbolio > naudoti konstrukciją >>, tada, jei failas, į kurį nukreipiamas komandos išvestis, egzistuoja, šis failas nebus perrašytas. Duomenys bus įtraukti į šio failo pabaigą.

Dabar pažvelkime į duomenų srauto apdorojimą.

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda
Vienos komandos išvestis įvedama į kitos komandos įvestį. Tai tarsi vieno vamzdžio sujungimas su kitu

first_command | second_command: konvejerio simbolis, |, naudojamas siųsti vienos komandos išvestį kitai komandai. Kam siunčia komanda kairėje aprašytos struktūros pusėje stdout, Įkristi į stdin komandą dujotiekio simbolio dešinėje.

Linux sistemoje duomenys gali būti perduodami naudojant beveik bet kurią gerai suformuotą komandą. Dažnai sakoma, kad Linux sistemoje viskas yra vamzdynas.

Galite sujungti kelias komandas naudodami konvejerio simbolį. Tai atrodo taip:

first_command | second_command | third_command

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda
Kelių komandų konvejerį galima palyginti su konvejeriu

Atkreipkite dėmesį, kad kai komanda simbolio kairėje |, išveda kažką į stdout, ką ji išveda, iš karto pasiekiama kaip stdin antra komanda. Tai yra, paaiškėja, kad naudojant dujotiekį, mes susiduriame su lygiagrečiu komandų vykdymu. Kartais tai gali sukelti netikėtų rezultatų. Išsamią informaciją apie tai galima perskaityti čia.

Dabar pakalbėkime apie duomenų nuskaitymą iš failų ir jų rodymą ekrane.

▍Skaityti failus

head my_file: skaito eilutes nuo failo pradžios ir spausdina jas ekrane. Galite perskaityti ne tik failų turinį, bet ir tai, ką išveda komandos stdinnaudojant šią komandą kaip dujotiekio dalį.

tail my_file: skaito eilutes nuo failo pabaigos. Ši komanda taip pat gali būti naudojama konvejeryje.

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda
Galva (galva) yra priekyje, o uodega (uodega) yra už nugaros

Jei dirbate su duomenimis naudodami pandų biblioteką, tada komandos head и tail turėtų būti jums pažįstami. Jei taip nėra, pažvelkite į aukščiau pateiktą paveikslėlį ir lengvai juos prisiminsite.

Apsvarstykite kitus failų skaitymo būdus, pakalbėkime apie komandą cat.

Komanda cat spausdina failo turinį ekrane arba sujungia kelis failus. Tai priklauso nuo to, kiek failų perduodama šiai komandai, kai ji iškviečiama.

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda
katės komanda

cat my_one_file.txt: kai šiai komandai perduodamas vienas failas, ji išveda į stdout.

Jei duosite du ar daugiau failų, jis elgsis kitaip.

cat my_file1.txt my_file2.txt: gavusi kelis failus kaip įvestį, ši komanda sujungia jų turinį ir parodo, kas atsitiko stdout.

Jei failų sujungimo rezultatą reikia įrašyti kaip naują failą, galite naudoti operatorių >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Dabar pakalbėkime apie tai, kaip ištrinti failus ir sustabdyti procesus.

▍Failų trynimas, procesų stabdymas

rm my_file: Ištrinti failą my_file.

rm -r my_folder: ištrina aplanką my_folder ir visus jame esančius failus bei aplankus. Vėliava -r rodo, kad komanda veiks rekursiniu režimu.

Kad sistema neprašytų patvirtinimo kiekvieną kartą, kai ištrinamas failas arba aplankas, naudokite vėliavėlę -f.

kill 012345: Sustabdo nurodytą vykdomą procesą, suteikdamas laiko grakščiai išsijungti.

kill -9 012345: priverstinai nutraukia nurodytą vykdomą procesą. Žiūrėti vėliavą -s SIGKILL reiškia tą patį, ką vėliava -9.

▍Ieškokite

Duomenų paieškai galite naudoti skirtingas komandas. Visų pirma - grep, ag и ack. Pažintį su šiomis komandomis pradėkime nuo grep. Tai laiko patikrinta, patikima komanda, tačiau ji yra lėtesnė nei kitos ir nėra tokia patogi naudoti.

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda
grep komanda

grep my_regex my_file: ieško my_regex в my_file. Jei randama atitiktis, grąžinama visa eilutė už kiekvieną atitiktį. Numatytas my_regex traktuojamas kaip reguliarioji išraiška.

grep -i my_regex my_file: Paieška atliekama neskiriant didžiųjų ir mažųjų raidžių.

grep -v my_regex my_file: grąžina visas eilutes, kuriose nėra my_regex. Vėliava -v reiškia inversiją, ji primena operatorių NOT, randamas daugelyje programavimo kalbų.

grep -c my_regex my_file: pateikia informaciją apie faile rasto ieškomo šablono atitikčių skaičių.

grep -R my_regex my_folder: atlieka rekursinę paiešką visuose failuose, esančiuose nurodytame aplanke ir jame įdėtuose aplankuose.

Dabar pakalbėkime apie komandą ag. Ji atėjo vėliau grep, jis greitesnis, su juo patogiau dirbti.

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda
ag komanda

ag my_regex my_file: pateikia informaciją apie eilučių numerius ir pačias eilutes, kuriose buvo rasti atitikmenys my_regex.

ag -i my_regex my_file: Paieška atliekama neskiriant didžiųjų ir mažųjų raidžių.

Komanda ag automatiškai apdoroja failą .gitignore ir neįtraukia į išvestį tai, kas yra tame faile išvardytuose aplankuose arba failuose. Tai labai patogu.

ag my_regex my_file -- skip-vcs-ignores: automatinio versijos valdymo failų turinys (pvz .gitignore) paieškoje neatsižvelgiama.

Be to, norint pasakyti komandai ag kuriuose failų keliuose norite neįtraukti į paiešką, galite sukurti failą .agignore.

Šio skyriaus pradžioje paminėjome komandą ack. Komandos ack и ag labai panašūs, galime sakyti, kad jie yra 99% pakeičiami. Tačiau komanda ag veikia greičiau, todėl ir aprašiau.

Dabar pakalbėkime apie darbą su archyvais.

▍Archyvavimas

tar my_source_directory: sujungia failus iš aplanko my_source_directory į vieną tarball failą. Tokie failai yra naudingi perduodant kam nors didelius failų rinkinius.

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda
tar komanda

Šios komandos sugeneruoti tarball failai yra failai su plėtiniu .tar (Juostos archyvas). Tai, kad komandos pavadinime ir jos sukurtų failų pavadinimų plėtinyje yra paslėptas žodis „tape“ (tape) rodo, kiek laiko ši komanda egzistuoja.

tar -cf my_file.tar my_source_directory: sukuria tarball failą pavadinimu my_file.tar su aplanko turiniu my_source_directory. Vėliava -c reiškia „sukurti“ (kūrimas) ir vėliavą -f kaip „failas“ (failas).

Norėdami išgauti failus iš .tar-failą, naudokite komandą tar su vėliavėlėmis -x ("ekstraktas", ekstrahavimas) ir -f („failas“, failas).

tar -xf my_file.tar: ištraukia failus iš my_file.tar į dabartinį darbo katalogą.

Dabar pakalbėkime apie tai, kaip suspausti ir išspausti .tar- failai.

tar -cfz my_file.tar.gz my_source_directory: čia naudojant vėliavą -z („zip“, glaudinimo algoritmas) nurodo, kad algoritmas turėtų būti naudojamas failams suspausti gzip (GNUzip). Failų glaudinimas taupo vietą diske, kai saugomi tokie failai. Jei failus planuojama, pavyzdžiui, perduoti kitiems vartotojams, tai prisideda prie greitesnio tokių failų atsisiuntimo.

Išpakuokite failą .tar.gz galite pridėti vėliavėlę -z į komandą išskleisti turinį .tar-failai, kuriuos aptarėme aukščiau. Tai atrodo taip:

tar -xfz my_file.tar.gz
Reikia pažymėti, kad komanda tar Yra daug daugiau naudingų vėliavėlių.

Bash slapyvardžiai

Bash slapyvardžiai (dar vadinami slapyvardžiais arba sutrumpinimais) skirti sukurti sutrumpintus komandų pavadinimus ar jų sekas, kurių naudojimas vietoj įprastų komandų pagreitina darbą. Jei turite slapyvardį bu, kuris slepia komandą python setup.py sdist bdist_wheel, tada norint iškviesti šią komandą, pakanka naudoti šį slapyvardį.

Norėdami sukurti tokį slapyvardį, tiesiog pridėkite šią komandą prie failo ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Jei jūsų sistemoje failo nėra ~/.bash_profile, tada galite patys sukurti naudodami komandą touch. Sukūrę slapyvardį, iš naujo paleiskite terminalą, po kurio galėsite naudoti šį slapyvardį. Šiuo atveju dviejų simbolių įvedimas pakeičia daugiau nei trijų dešimčių komandos simbolių įvestį, skirtą mazgai Python paketai.

В ~/.bash_profile galite pridėti bet kokių dažnai naudojamų komandų slapyvardžius.

▍Rezultatai

Šiame įraše apžvelgėme 21 populiarią „Bash“ komandą ir kalbėjome apie komandų slapyvardžių kūrimą. Jei jus domina ši tema - čia publikacijų serija, skirta Bashui. Čia Galite rasti šių leidinių pdf versiją. Be to, jei norite išmokti Bash, atminkite, kad, kaip ir bet kurioje kitoje programavimo sistemoje, praktika yra labai svarbi.

Mieli skaitytojai! Kokias komandas, kurios yra naudingos pradedantiesiems, pridėtumėte prie tų, kurios buvo aptartos šiame straipsnyje?

Taip pat skaitykite mūsų tinklaraštyje keletą publikacijų apie bash scenarijus

[pažymėta] Bash pradedantiesiems: 21 naudinga komanda

Šaltinis: www.habr.com

Добавить комментарий