[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo

Okubalulekile, okuhunyushwe ngakho namuhla, kuhloselwe labo abafuna ukwazi kahle umugqa womyalo we-Linux. Ikhono lokusebenzisa leli thuluzi ngempumelelo lingonga isikhathi esiningi. Ikakhulukazi, sizokhuluma ngegobolondo le-Bash kanye nemiyalo ewusizo engu-21 lapha. Sizophinde sikhulume ngendlela yokusebenzisa amafulegi womyalo neziteketiso ze-Bash ukusheshisa ukuthayipha kwemiyalelo emide.

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo

β†’ Futhi funda kubhulogi yethu uchungechunge lokushicilelwe mayelana nemibhalo ye-bash

Imibandela

Njengoba ufunda ukusebenza ngomugqa womyalo we-Linux, uzohlangana nemiqondo eminingi ewusizo ukuzulazula. Ezinye zazo, njengokuthi "Linux" kanye "Unix", noma "igobolondo" kanye "nokuphela", ngezinye izikhathi ziyadideka. Ake sikhulume ngalawa kanye namanye amagama abalulekile.

Unix iwuhlelo lokusebenza oludumile olwasungulwa ngabakwaBell Labs ngeminyaka yawo-1970. Ikhodi yakhe ivaliwe.

Linux iyisistimu yokusebenza efana ne-Unix ethandwa kakhulu. Manje isisetshenziswa kumadivayisi amaningi, kuhlanganise namakhompyutha.

Isiginali (itheminali), noma i-terminal emulator wuhlelo olunikeza ukufinyelela kusistimu yokusebenza. Ungavula itheminali eminingi ngesikhathi esisodwa.

Igobolondo (igobolondo) wuhlelo olukuvumela ukuthi uthumele imiyalo ebhalwe ngolimi olukhethekile ohlelweni lokusebenza.

Bash imele i-Bourne Again Shell. Ulimi lwegobolondo oluvame kakhulu olusetshenziswa ukuxhumana nesistimu yokusebenza. Futhi, igobolondo le-Bash liyinto ezenzakalelayo ku-macOS.

Isixhumi esibonakalayo somugqa womyalo (I-Command Line Interface, CLI) iyindlela yokuxhumana phakathi komuntu nekhompyutha, lapho umsebenzisi efaka imiyalo esuka kukhibhodi, kanti ikhompuyutha, yenza le miyalo, ikhombisa imiyalezo ngefomu lombhalo kumsebenzisi. I-CLI isetshenziswa kakhulu ukuthola ulwazi lwakamuva mayelana nezinhlangano ezithile, ngokwesibonelo, ngamafayela, nokusebenza ngamafayela. Isixhumi esibonakalayo somugqa womyalo kufanele sihlukaniswe ku-graphical user interface (GUI), esebenzisa ngokuyinhloko igundane. I-interface yomugqa womyalo ngokuvamile ibizwa ngokuthi umugqa womyalo.

Iskripthi (iskripthi) wuhlelo oluncane oluqukethe ukulandelana kwemiyalelo yegobolondo. Imibhalo ibhalwa kumafayela, ingasetshenziswa ngokuphindaphindiwe. Lapho ubhala imibhalo, ungasebenzisa okuguquguqukayo, izimo, amaluphu, imisebenzi, nezinye izici.

Manje njengoba sesihlanganise amatemu abalulekile, ngifuna ukuveza ukuthi ngizosebenzisa amagama athi "Bash", "shell" kanye "nomugqa womyalo" ngokushintshana lapha, kanye namagama "uhlu lwemibhalo" kanye "nefolda".

Standard imifudlana, esizokusebenzisa lapha okokufaka okujwayelekile (okufakiwe okujwayelekile, stdin), okukhiphayo okujwayelekile (okuphumayo okujwayelekile, stdout) kanye nokukhishwa kwephutha elijwayelekile (iphutha elijwayelekile, stderr).

Uma esibonelweni semiyalo ezonikezwa ngezansi, uzothola okuthile okufana nalokhu my_whatever - lokhu kusho ukuthi lesi siqeshana sidinga ukushintshwa ngokuthile kwakho. Isibonelo, igama lefayela.

Manje, ngaphambi kokuqhubeka nokuhlaziya imiyalo le nto enikezelwe kuyo, ake sibheke uhlu lwabo kanye nezincazelo zabo ezimfushane.

21 Bash imiyalo

▍Ukuthola ulwazi

  • man: Ibonisa inkomba yomsebenzisi (usizo) yomyalo.
  • pwd: Ibonisa ulwazi mayelana nohla lwemibhalo olusebenzayo.
  • ls: ibonisa okuqukethwe kohla lwemibhalo.
  • ps: Ikuvumela ukuthi ubuke ulwazi mayelana nezinqubo ezisebenzayo.

▍Ukukhohlisa kwesistimu yefayela

  • cd: shintsha inkomba yokusebenza.
  • touch: dala ifayela.
  • mkdir: dala uhla lwemibhalo.
  • cp: Kopisha ifayela.
  • mv: Hambisa noma susa ifayela.
  • ln: dala isixhumanisi.

▍ Ukuqondisa kabusha kwe-I/O namapayipi

  • <: qondisa kabusha stdin.
  • >: qondisa kabusha stdout.
  • |: faka ngepayipi okukhiphayo komyalelo owodwa kokokufaka komunye umyalo.

▍ Ukufunda amafayela

  • head: funda isiqalo sefayela.
  • tail: funda ukuphela kwefayela.
  • cat: Funda ifayela bese uphrinte elikuqukethe esikrinini, noma uhlanganise amafayela.

▍ Ukususa amafayela, ukumisa izinqubo

  • rm: Susa ifayela.
  • kill: yeka inqubo.

▍Sesha

  • grep: sesha ulwazi.
  • ag: umyalo othuthukisiwe wokusesha.

▍Ukugcina kungobo yomlando

  • tar: ukudala izingobo zomlando nokusebenza nazo.

Ake sikhulume ngale miyalo ngokuningiliziwe.

Imininingwane Yethimba

Okokuqala, ake sibhekane nemiyalo, imiphumela ekhishwe ngefomu stdout. Ngokuvamile le miphumela ivela efasiteleni letheminali.

▍Ukuthola ulwazi

man command_name: bonisa umhlahlandlela womyalo, okungukuthi ulwazi losizo.

pwd: bonisa indlela eya kuhla lwemibhalo olusebenzayo lwamanje. Ngesikhathi sokusebenza ngomugqa womyalo, umsebenzisi ngokuvamile udinga ukuthola ukuthi ukuphi ohlelweni.

ls: bonisa okuqukethwe kohla lwemibhalo. Lo myalo usetshenziswa kaningi.

ls -a: bonisa amafayela afihliwe. ifulegi lisetshenziswe lapha -a imiyalo ls. Ukusetshenziswa kwamafulegi kusiza ukwenza ngendlela oyifisayo ukuziphatha kwemiyalelo.

ls -l: Bonisa ulwazi oluningiliziwe mayelana namafayela.

Qaphela ukuthi amafulegi angahlanganiswa. Isibonelo - kanje: ls -al.

ps: Buka izinqubo ezisebenzayo.

ps -e: Bonisa ulwazi mayelana nazo zonke izinqubo ezisebenzayo, hhayi nje lezo ezihlotshaniswa negobolondo lomsebenzisi wamanje. Lo myalo uvame ukusetshenziswa kuleli fomu.

▍Ukukhohlisa kwesistimu yefayela

cd my_directory: shintsha uhla lwemibhalo olusebenzayo lube my_directory. Ukuze ukhuphuke ileveli eyodwa esihlahleni sohla lwemibhalo, sebenzisa my_directory indlela ehlobene ../.

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo
cd umyalo

touch my_file: ukudalwa kwefayela my_file endleleni enikiwe.

mkdir my_directory: dala ifolda my_directory endleleni enikiwe.

mv my_file target_directory: hambisa ifayela my_file kufolda target_directory. Lapho ucacisa uhla lwemibhalo oluqondiwe, udinga ukusebenzisa indlela ephelele eya kulo (hhayi ukwakhiwa okufana ../).

iqembu mvingasetshenziswa futhi ukuqamba kabusha amafayela noma amafolda. Ngokwesibonelo, kungase kubukeke kanje:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: dala ikhophi yefayela my_source_file futhi uyifake kufolda target_directory.

ln -s my_source_file my_target_file: dala isixhumanisi esingokomfanekiso my_target_file ngefayela ngalinye my_source_file. Uma ushintsha isixhumanisi, ifayela lokuqala nalo lizoshintsha.

Uma ifayela my_source_file izosuswa ke my_target_file izosala. Hlaba umkhosi -s imiyalo ln ikuvumela ukuthi udale izixhumanisi zezinkomba.

Manje ake sikhulume ngokuqondisa kabusha kwe-I/O namapayipi.

▍ Ukuqondisa kabusha kwe-I/O namapayipi

my_command < my_file: ingena esikhundleni sesichazi sefayela lokufaka elijwayelekile (stdin) ifayela ngalinye my_file. Lokhu kungaba usizo uma umyalo ulinde okokufaka okuthile okuvela kukhibhodi, futhi le datha isivele ilondolozwe efayelini.

my_command > my_file: iqondisa kabusha imiphumela yomyalelo, okusho ukuthi yini evamise ukungena kukho stdout futhi okukhiphayo esikrinini, kufayela my_file. Uma ifayela my_file alikho - liyadalwa. Uma ifayela likhona, libhalwa phezu kwalokho.

Ngokwesibonelo, ngemva kokwenza umyalo ls > my_folder_contents.txt ifayela lombhalo lizokwakhiwa eliqukethe uhlu lwalokho okusohlwini lwemibhalo olusebenzayo lwamanje.

Uma esikhundleni sophawu > sebenzisa ukwakhiwa >>, bese, inqobo nje uma ifayela lapho okukhipha umyalo oqondiswa kabusha likhona, leli fayela ngeke libhalwe ngaphezulu. Idatha izongezwa ekupheleni kwaleli fayela.

Manje ake sibheke ukucubungula ipayipi ledatha.

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo
Okukhipha umyalo owodwa kufakwa okokufaka komunye umyalo. Kufana nokuxhuma ipayipi elilodwa kwelinye

first_command | second_command: uphawu lokuthutha, |, isetshenziselwa ukuthumela okukhipha umyalo komunye umyalo. Umyalo ongakwesokunxele sesakhiwo esichazwe uthumela ini stdout, Awele phakathi stdin umyalo kwesokudla sophawu lwepayipi.

Ku-Linux, idatha ingafakwa ngamapayipi kusetshenziswa cishe noma yimuphi umyalo owakhiwe kahle. Kuvame ukuthiwa yonke into eku-Linux iyipayipi.

Ungakwazi ukuhlanganisa imiyalo eminingi usebenzisa uphawu lwepayipi. Kubukeka kanjena:

first_command | second_command | third_command

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo
Ipayipi lemiyalo eminingana lingafaniswa nepayipi

Qaphela ukuthi lapho umyalo kwesokunxele uphawu |, ikhipha okuthile ku stdout, lokho akukhiphayo kutholakala ngokushesha njenge stdin iqembu lesibili. Okusho ukuthi, kuvela ukuthi, sisebenzisa ipayipi, sibhekene nokukhishwa kwemiyalelo efanayo. Ngezinye izikhathi lokhu kungaholela emiphumeleni engalindelekile. Imininingwane mayelana nalokhu ingafundwa lapha.

Manje ake sikhulume ngokufunda idatha kumafayela nokuyiveza esikrinini.

▍ Ukufunda amafayela

head my_file: ufunda imigqa kusukela ekuqaleni kwefayela futhi uyiphrinte esikrinini. Awukwazi ukufunda kuphela okuqukethwe kwamafayela, kodwa nokuthi imiyalo iphuma ini stdinusebenzisa lo myalo njengengxenye yepayipi.

tail my_file: ufunda imigqa kusukela ekugcineni kwefayela. Lo myalo ungasetshenziswa futhi epayipini.

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo
Inhloko (ikhanda) ingaphambili, nomsila (umsila) ungemuva

Uma usebenzisa idatha usebenzisa umtapo we-pandas, bese ulandela imiyalo head ΠΈ tail kufanele ujwayelene nawe. Uma kungenjalo, bheka lesi sibalo esingenhla, futhi uzosikhumbula kalula.

Cabangela ezinye izindlela zokufunda amafayela, ake sikhulume ngomyalo cat.

Ithimba cat iphrinta okuqukethwe kwefayela esikrinini, noma ihlanganise amafayela amaningi. Kuya ngokuthi mangaki amafayela adluliselwa kulo myalo uma ebizwa.

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo
umyalo wekati

cat my_one_file.txt: uma ifayela elilodwa lidluliselwa kulo myalo, liphumela kulo stdout.

Uma uyinikeza amafayela amabili noma amafayela amaningi, iziphatha ngendlela ehlukile.

cat my_file1.txt my_file2.txt: ngemva kokuthola amafayela amaningana njengokufakwayo, lo myalo uhlanganisa okuqukethwe kwawo futhi ubonise okwenzeka kuyo stdout.

Uma umphumela wokuhlanganisa ifayela udinga ukugcinwa njengefayela elisha, ungasebenzisa u-opharetha >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Manje ake sikhulume ngendlela yokususa amafayela nokumisa izinqubo.

▍ Ukususa amafayela, ukumisa izinqubo

rm my_file: susa ifayela my_file.

rm -r my_folder: isusa ifolda my_folder kanye nawo wonke amafayela namafolda eliwaqukethe. Hlaba umkhosi -r ibonisa ukuthi umyalo uzosebenza ngemodi yokuphindaphinda.

Ukuze uvimbele isistimu ekuceleni ukuqinisekiswa isikhathi ngasinye lapho kususwa ifayela noma ifolda, sebenzisa ifulegi -f.

kill 012345: Imisa inqubo eshiwo yokuqalisa, iyinike isikhathi sokuvala kahle.

kill -9 012345: Inqamula ngenkani inqubo eshiwo yokusebenza. Buka ifulegi -s SIGKILL lisho okufanayo nefulegi -9.

▍Sesha

Ungasebenzisa imiyalo ehlukene ukucinga idatha. Ngokuqondene - grep, ag ΠΈ ack. Ake siqale ukwazana kwethu nale miyalo nge grep. Lona umyalo ohlolwe isikhathi, onokwethenjelwa, othi, nokho, uhamba kancane kuneminye futhi awulungele ukuwusebenzisa njengoba unjalo.

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo
umyalo we-grep

grep my_regex my_file: usesho my_regex Π² my_file. Uma okufanayo kutholwa, iyunithi yezinhlamvu yonke iyabuyiselwa, ngokufana ngakunye. Okuzenzakalelayo my_regex iphathwe njengenkulumo evamile.

grep -i my_regex my_file: Ukusesha kwenziwa ngendlela enganaki.

grep -v my_regex my_file: ibuyisela yonke imigqa engaqukethe my_regex. Hlaba umkhosi -v kusho ukuguqulwa, kufana no-opharetha NOT, etholakala ezilimini eziningi zokuhlela.

grep -c my_regex my_file: Ibuyisela ulwazi mayelana nenani lokufanayo elitholakala kufayela lephethini yokusesha.

grep -R my_regex my_folder: yenza usesho oluphindayo kuwo wonke amafayela atholakala kufolda eshiwo nasemafoldani abekwe kuyo.

Manje ake sikhulume ngeqembu ag. Wafika kamuva grep, iyashesha, kulula kakhulu ukusebenza nayo.

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo
umyalo we-ag

ag my_regex my_file: ibuyisela ulwazi mayelana nezinombolo zomugqa, kanye nemigqa ngokwayo, lapho okufanayo kutholwe nayo my_regex.

ag -i my_regex my_file: Ukusesha kwenziwa ngendlela enganaki.

Ithimba ag cubungula ifayela ngokuzenzakalelayo .gitignore futhi ayifaki kokuphumayo lokho okutholakala kumafolda noma amafayela asohlwini lwalelo fayela. Ikhululekile kakhulu.

ag my_regex my_file -- skip-vcs-ignores: okuqukethwe kwamafayela okulawula inguqulo ezenzakalelayo (njenge .gitignore) akunakwa ekusesheni.

Ngaphezu kwalokho, ukuze utshele iqembu ag yiziphi izindlela zefayela ofuna ukuzikhipha ekusesheni, ungakha ifayela .agignore.

Ekuqaleni kwalesi sigaba, sikhulume ngomyalo ack. Amaqembu ack ΠΈ ag zifana kakhulu, singasho ukuthi zingashintshashintsha ngo-99%. Nokho, iqembu ag isebenza ngokushesha, yingakho ngiyichazile.

Manje ake sikhulume ngokusebenza nezinqolobane zomlando.

▍Ukugcina kungobo yomlando

tar my_source_directory: ihlanganisa amafayela ukusuka kufolda my_source_directory kufayela elilodwa le-tarball. Amafayela anjalo awusizo ekudluliseleni amasethi amakhulu amafayela kothile.

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo
umyalo we-tar

Amafayela e-tarball akhiqizwe yilo myalo amafayela anesandiso .tar (Thepha Ingobo yomlando). Iqiniso lokuthi igama elithi "tape" (tape) lifihliwe egameni lomyalo futhi ekunwetshweni kwamagama amafayela elidala libonisa ukuthi lo myalo usunesikhathi esingakanani ukhona.

tar -cf my_file.tar my_source_directory: idala ifayela le-tarball eliqanjwe igama my_file.tar nokuqukethwe kwefolda my_source_directory. Hlaba umkhosi -c imele "dala" (indalo), kanye nefulege -f njenge "file" (ifayela).

Ukuze ukhiphe amafayela ku .tar-file, sebenzisa umyalo tar namafulege -x ("khipha", isizinda) kanye -f ("ifayela", ifayela).

tar -xf my_file.tar: ikhipha amafayela ku my_file.tar kuhla lwemibhalo olusebenzayo lwamanje.

Manje ake sikhulume ngendlela yokucindezela nokuwohloka .tar-amafayela.

tar -cfz my_file.tar.gz my_source_directory: lapha usebenzisa ifulegi -z ("zip", i-algorithm yokucindezela) ibonisa ukuthi i-algorithm kufanele isetshenziselwe ukucindezela amafayela gzip (GNUzip). Ukucindezela ifayela konga isikhala sediski lapho ugcina amafayela anjalo. Uma amafayela ehlelwa, ngokwesibonelo, ukuthi adluliselwe kwabanye abasebenzisi, lokhu kunomthelela ekulandweni ngokushesha kwamafayela anjalo.

Vula ifayela le-zip .tar.gz ungakwazi ukwengeza ifulege -z kumyalo wokuqukethwe wokukhipha .tar-amafayela, esixoxe ngawo ngenhla. Kubukeka kanjena:

tar -xfz my_file.tar.gz
Kufanele kuqashelwe ukuthi iqembu tar Kunamafulegi amaningi awusizo.

Iziteketiso ze-Bash

Iziteketiso ze-Bash (ezibizwa nangokuthi iziteketiso noma izifinyezo) zenzelwe ukudala amagama afushanisiwe emiyalo noma ukulandelana kwawo, ukusetshenziswa kwawo esikhundleni semiyalo evamile kusheshisa umsebenzi. Uma une-alias bu, efihla umyalo python setup.py sdist bdist_wheel, bese ubiza lo myalo, kwanele ukusebenzisa lesi sibizo.

Ukwakha igama elinjalo, mane ungeze umyalo olandelayo efayeleni ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Uma isistimu yakho ingenalo ifayela ~/.bash_profile, khona-ke ungazenzela ngokwakho usebenzisa umyalo touch. Ngemva kokudala i-alias, qala kabusha i-terminal, ngemva kwalokho ungasebenzisa lesi sibizo. Kulokhu, okokufaka kwezinhlamvu ezimbili kungena esikhundleni sokufakwa kwezinhlamvu ezingaphezu kweshumi nambili zomyalo, okuhloselwe imihlangano Python amaphakheji.

Π’ ~/.bash_profile ungangeza iziteketiso zanoma yimiphi imiyalo esetshenziswa njalo.

▍ Imiphumela

Kulokhu okuthunyelwe, sihlanganise imiyalo engu-21 edumile ye-Bash futhi sakhuluma ngokwakha iziteketiso zomyalo. Uma unentshisekelo kulesi sihloko - lapha uchungechunge lwezincwadi ezinikezelwe ku-Bash. kuyinto Ungathola inguqulo ye-pdf yalezi zincwadi. Futhi, uma ufuna ukufunda i-Bash, khumbula ukuthi, njenganoma yiluphi olunye uhlelo lokuhlela, ukuzijwayeza kubalulekile.

Bafundi abathandekayo! Imiphi imiyalo ewusizo kwabaqalayo ongayengeza kuleyo okuxoxwe ngayo kulesi sihloko?

β†’ Futhi funda kubhulogi yethu uchungechunge lokushicilelwe mayelana nemibhalo ye-bash

[ibhukhimakhi] I-Bash yabaqalayo: imiyalo engu-21 ewusizo

Source: www.habr.com

Engeza amazwana