[atzīmēts] Bash iesācējiem: 21 noderīga komanda

Materiāls, kura tulkojumu Å”odien publicējam, ir paredzēts tiem, kas vēlas apgÅ«t Linux komandrindu. Spēja efektÄ«vi izmantot Å”o rÄ«ku var ietaupÄ«t daudz laika. Jo Ä«paÅ”i mēs Å”eit runāsim par Bash apvalku un 21 noderÄ«gu komandu. Mēs arÄ« runāsim par to, kā izmantot komandu karogus un Bash aizstājvārdus, lai paātrinātu garu instrukciju rakstÄ«Å”anu.

[atzīmēts] Bash iesācējiem: 21 noderīga komanda

ā†’ Izlasiet arÄ« mÅ«su emuārā vairākas publikācijas par bash skriptiem

Noteikumi

Mācoties strādāt ar Linux komandrindu, jÅ«s saskarsities ar daudziem jēdzieniem, kas ir noderÄ«gi, lai pārvietotos. Dažas no tām, piemēram, "Linux" un "Unix" vai "shell" un "termināls", dažreiz tiek sajauktas. Parunāsim par Å”iem un citiem svarÄ«giem terminiem.

Unix ir populāra operētājsistēma, ko 1970. gados izstrādāja Bell Labs. Viņas kods tika aizvērts.

Linux ir vispopulārākā Unix līdzīga operētājsistēma. Tagad to izmanto daudzās ierīcēs, tostarp datoros.

Termināls (terminālis) vai termināļa emulators ir programma, kas nodroÅ”ina piekļuvi operētājsistēmai. Vienlaikus var atvērt vairākus termināļa logus.

apvalks (shell) ir programma, kas ļauj nosÅ«tÄ«t operētājsistēmai komandas, kas rakstÄ«tas Ä«paŔā valodā.

Stipri iesist apzīmē Bourne Again Shell. Tā ir visizplatītākā čaulas valoda, ko izmanto mijiedarbībai ar operētājsistēmu. Turklāt MacOS noklusējuma čaula ir Bash.

Komandrindas interfeiss (Command Line Interface, CLI) ir mijiedarbÄ«bas metode starp personu un datoru, ar kuras palÄ«dzÄ«bu lietotājs ievada komandas no tastatÅ«ras, un dators, izpildot Ŕīs komandas, lietotājam parāda ziņojumus teksta formā. Galvenais CLI lietojums ir iegÅ«t jaunāko informāciju par noteiktām entÄ«tijām, piemēram, failiem, un strādāt ar failiem. Komandrindas saskarne ir jānoŔķir no grafiskā lietotāja interfeisa (GUI), kurā galvenokārt tiek izmantota pele. Komandrindas saskarni bieži sauc vienkārÅ”i par komandrindu.

Skripts (skripts) ir neliela programma, kas satur čaulas komandu secību. Skripti tiek ierakstīti failos, tos var izmantot atkārtoti. Rakstot skriptus, varat izmantot mainīgos, nosacījumus, cilpas, funkcijas un citus līdzekļus.

Tagad, kad esam apskatÄ«juÅ”i svarÄ«gos terminus, es vēlos norādÄ«t, ka terminus "Bash", "shell" un "komandrinda" Å”eit izmantoÅ”u aizvietojami, kā arÄ« terminus "direktorijs" un "mape".

Standarta plÅ«smas, ko mēs Å”eit izmantosim, ir standarta ievade (standarta ievade, stdin), standarta izvade (standarta izvade, stdout) un standarta kļūdu izvade (standarta kļūda, stderr).

Ja piemērā komandas, kas tiks sniegtas zemāk, jÅ«s atradÄ«sit kaut ko lÄ«dzÄ«gu my_whatever - tas nozÄ«mē, ka Å”is fragments ir jāaizstāj ar kaut ko no jÅ«su. Piemēram, faila nosaukums.

Tagad, pirms turpināt to komandu analīzi, kurām Ŕis materiāls ir veltīts, apskatīsim to sarakstu un īsus aprakstus.

21 Bash komandas

ā–Informācijas iegÅ«Å”ana

  • man: parāda komandas lietotāja rokasgrāmatu (palÄ«dzÄ«bu).
  • pwd: parāda informāciju par darba direktoriju.
  • ls: parāda direktorijas saturu.
  • ps: ļauj skatÄ«t informāciju par notiekoÅ”ajiem procesiem.

ā–Failu sistēmas manipulācijas

  • cd: mainÄ«t darba direktoriju.
  • touch: izveidot failu.
  • mkdir: izveidot direktoriju.
  • cp: kopēt failu.
  • mv: pārvietojiet vai dzēsiet failu.
  • ln: izveidot saiti.

ā–I/O novirzÄ«Å”ana un cauruļvadi

  • <: novirzÄ«t stdin.
  • >: novirzÄ«t stdout.
  • |: novadÄ«ja vienas komandas izvadi uz citas komandas ievadi.

ā–Failu lasÄ«Å”ana

  • head: izlasiet faila sākumu.
  • tail: lasÄ«t faila beigas.
  • cat: lasiet failu un izdrukājiet tā saturu ekrānā vai savienojiet failus.

ā–DzÄ“Å” failus, aptur procesus

  • rm: dzēst failu.
  • kill: pārtrauciet procesu.

ā– Meklēt

  • grep: meklēt informāciju.
  • ag: uzlabota meklÄ“Å”anas komanda.

ā–ArhivÄ“Å”ana

  • tar: arhÄ«vu izveide un darbs ar tiem.

Parunāsim par Ŕīm komandām sīkāk.

Komandas informācija

Sākumā tiksim galā ar komandām, kuru rezultāti tiek izdoti formā stdout. Parasti Ŕie rezultāti tiek parādīti termināļa logā.

ā–Informācijas iegÅ«Å”ana

man command_name: parādīt komandu rokasgrāmatu, t.i., palīdzības informāciju.

pwd: parāda ceļu uz paÅ”reizējo darba direktoriju. Strādājot ar komandrindu, lietotājam bieži ir jānoskaidro, kur tieÅ”i viņŔ atrodas.

ls: parāda direktorija saturu. Arī Ŕī komanda tiek izmantota diezgan bieži.

ls -a: parādÄ«t slēptos failus. Å”eit lietots karogs -a komandām ls. Karogu izmantoÅ”ana palÄ«dz pielāgot komandu darbÄ«bu.

ls -l: parāda detalizētu informāciju par failiem.

Ņemiet vērā, ka karogus var apvienot. Piemēram - Ŕādi: ls -al.

ps: skatiet darbojoŔos procesus.

ps -e: parāda informāciju par visiem darbojoÅ”ajiem procesiem, ne tikai tiem, kas saistÄ«ti ar paÅ”reizējo lietotāja čaulu. Å Ä« komanda bieži tiek izmantota Å”ajā formā.

ā–Failu sistēmas manipulācijas

cd my_directory: mainīt darba direktoriju uz my_directory. Lai direktoriju kokā pārvietotos vienu līmeni uz augŔu, izmantojiet my_directory relatīvais ceļŔ ../.

[atzīmēts] Bash iesācējiem: 21 noderīga komanda
cd komanda

touch my_file: failu izveide my_file pa norādīto ceļu.

mkdir my_directory: izveidojiet mapi my_directory pa norādīto ceļu.

mv my_file target_directory: pārvietot failu my_file uz mapi target_directory. Norādot mērÄ·a direktoriju, jums ir jāizmanto absolÅ«tais ceļŔ uz to (nevis konstrukcija, piemēram, ../).

komanda mvvar izmantot arÄ« failu vai mapju pārdēvÄ“Å”anai. Piemēram, tas varētu izskatÄ«ties Ŕādi:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: izveido faila kopiju my_source_file un ievietojiet to mapē target_directory.

ln -s my_source_file my_target_file: izveidojiet simbolisku saiti my_target_file par failu my_source_file. Ja mainīsit saiti, mainīsies arī sākotnējais fails.

Ja fails my_source_file tiks dzēsts my_target_file paliks. Karogs -s komandām ln ļauj izveidot saites uz direktorijiem.

Tagad parunāsim par I/O novirzīŔanu un cauruļvadiem.

ā–I/O novirzÄ«Å”ana un cauruļvadi

my_command < my_file: aizstāj standarta ievades faila deskriptoru (stdin) katram failam my_file. Tas var būt noderīgi, ja komanda gaida kādu ievadi no tastatūras un Ŕie dati jau ir saglabāti failā.

my_command > my_file: novirza komandas rezultātus, t.i., uz to, kas parasti nonāktu stdout un izvadīt uz ekrānu, failā my_file. Ja fails my_file neeksistē - tas ir radīts. Ja fails pastāv, tas tiek pārrakstīts.

Piemēram, pēc komandas izpildÄ«Å”anas ls > my_folder_contents.txt tiks izveidots teksta fails, kurā bÅ«s saraksts ar to, kas atrodas paÅ”reizējā darba direktorijā.

Ja simbola vietā > izmantot konstrukciju >>, tad, ja fails, uz kuru tiek novirzīta komandas izvade, pastāv, Ŕis fails netiks pārrakstīts. Dati tiks pievienoti Ŕī faila beigās.

Tagad apskatīsim datu konveijera apstrādi.

[atzīmēts] Bash iesācējiem: 21 noderīga komanda
Vienas komandas izvade tiek ievadÄ«ta citas komandas ievadē. Tas ir tāpat kā vienas caurules savienoÅ”ana ar otru

first_command | second_command: konveijera simbols, |, tiek izmantots, lai nosÅ«tÄ«tu vienas komandas izvadi citai komandai. Uz ko sÅ«ta aprakstÄ«tās struktÅ«ras kreisajā pusē esoŔā komanda stdout, Iekrist stdin komanda pa labi no cauruļvada simbola.

Operētājsistēmā Linux datus var pārsūtīt, izmantojot gandrīz jebkuru labi noformētu komandu. Mēdz teikt, ka Linux sistēmā viss ir konveijera.

Varat ķēdÄ«t vairākas komandas, izmantojot konveijera simbolu. Tas izskatās Ŕādi:

first_command | second_command | third_command

[atzīmēts] Bash iesācējiem: 21 noderīga komanda
Vairāku komandu konveijeru var salīdzināt ar konveijeru

Ņemiet vērā, ka komanda pa kreisi no simbola |, izvada kaut ko stdout, tas, ko viņa izdod, ir uzreiz pieejams kā stdin otrā komanda. Tas ir, izrādās, ka, izmantojot konveijeru, mums ir darÄ«Å”ana ar komandu paralēlu izpildi. Dažreiz tas var novest pie negaidÄ«tiem rezultātiem. SÄ«kāku informāciju par to var lasÄ«t Å”eit.

Tagad parunāsim par datu nolasīŔanu no failiem un to parādīŔanu ekrānā.

ā–Failu lasÄ«Å”ana

head my_file: nolasa rindiņas no faila sākuma un izdrukā tās uz ekrāna. JÅ«s varat lasÄ«t ne tikai failu saturu, bet arÄ« to, ko komandas izvada stdinizmantojot Å”o komandu kā cauruļvada daļu.

tail my_file: nolasa rindas no faila beigām. Šo komandu var izmantot arī konveijerā.

[atzīmēts] Bash iesācējiem: 21 noderīga komanda
Galva (galva) ir priekŔā, un aste (aste) ir aizmugurē

Ja strādājat ar datiem, izmantojot pandas bibliotēku, tad komandas head Šø tail jums vajadzētu bÅ«t pazÄ«stamam. Ja tas tā nav, apskatiet iepriekÅ” minēto attēlu, un jÅ«s tos viegli atcerēsities.

Apsveriet citus veidus, kā lasīt failus, parunāsim par komandu cat.

Komanda cat vai nu izdrukā faila saturu ekrānā, vai saliek vairākus failus. Tas ir atkarīgs no tā, cik failu tiek nosūtīts Ŕai komandai, kad tā tiek izsaukta.

[atzīmēts] Bash iesācējiem: 21 noderīga komanda
kaÄ·a komanda

cat my_one_file.txt: kad Ŕai komandai tiek nodots viens fails, tā to izvada uz stdout.

Ja pieŔķirat divus vai vairāk failus, tas darbojas citādi.

cat my_file1.txt my_file2.txt: saņemot vairākus failus kā ievadi, Ŕī komanda savieno to saturu un parāda to, kas notika stdout.

Ja failu savienoŔanas rezultāts ir jāsaglabā kā jauns fails, varat izmantot operatoru >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Tagad parunāsim par to, kā izdzēst failus un apturēt procesus.

ā–DzÄ“Å” failus, aptur procesus

rm my_file: izdzēst failu my_file.

rm -r my_folder: izdzÄ“Å” mapi my_folder un visus tajā esoÅ”os failus un mapes. Karogs -r norāda, ka komanda darbosies rekursÄ«vā režīmā.

Lai sistēma neprasītu apstiprinājumu katru reizi, kad fails vai mape tiek dzēsta, izmantojiet karodziņu -f.

kill 012345: aptur norādīto darbības procesu, dodot tam laiku graciozi izslēgties.

kill -9 012345: piespiedu kārtā pārtrauc norādÄ«to darbÄ«bas procesu. SkatÄ«t karogu -s SIGKILL nozÄ«mē to paÅ”u, ko karogs -9.

ā– Meklēt

Datu meklÄ“Å”anai varat izmantot dažādas komandas. It Ä«paÅ”i - grep, ag Šø ack. Sāksim savu iepazÄ«Å”anos ar Ŕīm komandām ar grep. Å Ä« ir laika pārbaudÄ«ta, uzticama komanda, kas tomēr ir lēnāka nekā citas un nav tik ērti lietojama kā tās.

[atzīmēts] Bash iesācējiem: 21 noderīga komanda
grep komanda

grep my_regex my_file: meklē my_regex Š² my_file. Ja tiek atrasta atbilstÄ«ba, katrai atbilstÄ«bai tiek atgriezta visa virkne. Noklusējums my_regex tiek uzskatÄ«ta par regulāru izteiksmi.

grep -i my_regex my_file: meklÄ“Å”ana tiek veikta, neņemot vērā reÄ£istrjutÄ«gumu.

grep -v my_regex my_file: atgriež visas rindas, kas nesatur my_regex. Karogs -v nozÄ«mē inversiju, tas atgādina operatoru NOT, kas atrodams daudzās programmÄ“Å”anas valodās.

grep -c my_regex my_file: atgriež informāciju par failā atrastā meklētā raksta atbilstību skaitu.

grep -R my_regex my_folder: veic rekursÄ«vu meklÄ“Å”anu visos failos, kas atrodas norādÄ«tajā mapē un tajā ligzdotajās mapēs.

Tagad parunāsim par komandu ag. Viņa ieradās vēlāk grep, tas ir ātrāk, ar to ir ērtāk strādāt.

[atzīmēts] Bash iesācējiem: 21 noderīga komanda
ag komanda

ag my_regex my_file: atgriež informāciju par rindu numuriem un paŔām rindām, kurās tika atrastas atbilstības ar my_regex.

ag -i my_regex my_file: meklÄ“Å”ana tiek veikta, neņemot vērā reÄ£istrjutÄ«gumu.

Komanda ag automātiski apstrādā failu .gitignore un no izvades izslēdz to, kas ir atrodams Å”ajā failā norādÄ«tajās mapēs vai failos. Tas ir ļoti ērti.

ag my_regex my_file -- skip-vcs-ignores: automātisko versiju kontroles failu saturs (piemēram .gitignore) meklÄ“Å”anā netiek ņemts vērā.

Turklāt, lai pateiktu komandai ag uz kuriem faila ceļiem vēlaties izslēgt no meklÄ“Å”anas, varat izveidot failu .agignore.

Å Ä«s sadaļas sākumā mēs minējām komandu ack. Komandas ack Šø ag ļoti lÄ«dzÄ«gi, mēs varam teikt, ka tie ir 99% savstarpēji aizstājami. Tomēr komanda ag darbojas ātrāk, tāpēc es to aprakstÄ«ju.

Tagad parunāsim par darbu ar arhīviem.

ā–ArhivÄ“Å”ana

tar my_source_directory: savieno failus no mapes my_source_directory vienā tarball failā. Šādi faili ir noderīgi, lai kādam pārsūtītu lielas failu kopas.

[atzīmēts] Bash iesācējiem: 21 noderīga komanda
darvas komanda

Å Ä«s komandas Ä£enerētie tarbola faili ir faili ar paplaÅ”inājumu .tar (lenÅ”u arhÄ«vs). Tas, ka komandas nosaukumā un tās izveidoto failu nosaukumu paplaÅ”inājumos ir paslēpts vārds "lente" (lente), norāda, cik ilgi Ŕī komanda pastāv.

tar -cf my_file.tar my_source_directory: izveido tarball failu ar nosaukumu my_file.tar ar mapes saturu my_source_directory. Karogs -c apzīmē "radīt" (radīt) un karogu -f kā "fails" (fails).

Lai izvilktu failus no .tar-failu, izmantojiet komandu tar ar karogiem -x ("ekstrakts", ekstrakcija) un -f ("fails", fails).

tar -xf my_file.tar: izvelk failus no my_file.tar uz paÅ”reizējo darba direktoriju.

Tagad parunāsim par to, kā saspiest un atspiest .tar- faili.

tar -cfz my_file.tar.gz my_source_directory: Å”eit, izmantojot karogu -z ("zip", saspieÅ”anas algoritms) norāda, ka algoritms jāizmanto failu saspieÅ”anai gzip (GNUzip). Failu saspieÅ”ana ietaupa vietu diskā, saglabājot Ŕādus failus. Ja failus plāno, piemēram, pārsÅ«tÄ«t citiem lietotājiem, tas veicina Ŕādu failu ātrāku lejupielādi.

Izpakojiet failu .tar.gz jÅ«s varat pievienot karogu -z uz satura ekstrakta komandu .tar- faili, par kuriem mēs runājām iepriekÅ”. Tas izskatās Ŕādi:

tar -xfz my_file.tar.gz
Jāpiebilst, ka komanda tar Ir daudz vairāk noderīgu karogu.

Bash aizstājvārdi

Bash aizstājvārdi (saukti arÄ« par aizstājvārdiem vai saÄ«sinājumiem) ir paredzēti, lai izveidotu saÄ«sinātus komandu nosaukumus vai to secÄ«bas, kuru lietoÅ”ana parasto komandu vietā paātrina darbu. Ja jums ir pseidonÄ«ms bu, kas slēpj komandu python setup.py sdist bdist_wheel, tad, lai izsauktu Å”o komandu, pietiek ar Å”o aizstājvārdu.

Lai izveidotu Ŕādu aizstājvārdu, vienkārŔi pievienojiet failam Ŕādu komandu ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Ja jÅ«su sistēmai nav faila ~/.bash_profile, tad varat to izveidot pats, izmantojot komandu touch. Pēc aizstājvārda izveides restartējiet termināli, pēc tam varat izmantot Å”o aizstājvārdu. Å ajā gadÄ«jumā divu rakstzÄ«mju ievade aizstāj vairāk nekā trÄ«s desmitu komandas rakstzÄ«mju ievadi, kas paredzēta mezgli Python pakotnes.

Š’ ~/.bash_profile varat pievienot aizstājvārdus visām bieži lietotajām komandām.

ā–Rezultāti

Å ajā ziņā mēs esam apskatÄ«juÅ”i 21 populāru Bash komandu un runājuÅ”i par komandu aizstājvārdu izveidi. Ja jÅ«s interesē Ŕī tēma - Å”eit publikāciju sērija, kas veltÄ«ta BaÅ”am. Å eit JÅ«s varat atrast Å”o publikāciju pdf versiju. Turklāt, ja vēlaties apgÅ«t BaÅ”u, atcerieties, ka, tāpat kā jebkurai citai programmÄ“Å”anas sistēmai, prakse ir svarÄ«ga.

CienÄ«jamie lasÄ«tāji! Kādas komandas, kas ir noderÄ«gas iesācējiem, jÅ«s pievienotu tām, kas tika apspriestas Å”ajā rakstā?

ā†’ Izlasiet arÄ« mÅ«su emuārā vairākas publikācijas par bash skriptiem

[atzīmēts] Bash iesācējiem: 21 noderīga komanda

Avots: www.habr.com

Pievieno komentāru