[bookmarked] Bash yevanotanga: 21 mirairo inobatsira

Izvo zvinyorwa, dudziro yatinoburitsa nhasi, inoitirwa avo vanoda kugona iyo Linux command line. Kugona kushandisa chishandiso ichi zvinobudirira kunogona kuchengetedza nguva yakawanda. Kunyanya, isu tichataura nezve Bash shell uye 21 inobatsira mirairo pano. Isu tichazotaurawo nezve mashandisiro emirairo mireza uye Bash aliases kukurumidza kutaipa kwemirairo refu.

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira

β†’ Uyezve verenga mu blog yedu nhevedzano yezvinyorwa nezve bash scripts

Terms

Sezvo iwe uchidzidza kushanda neLinux command line, iwe unosangana nezvakawanda pfungwa dzinobatsira kufamba. Vamwe vavo, se "Linux" uye "Unix", kana "shell" uye "terminal", dzimwe nguva vanovhiringidzika. Ngatitaurei nezve aya nemamwe mazwi akakosha.

Unix ndiyo yakakurumbira sisitimu yekushandisa iyo yakagadziriswa neBell Labs muma1970s. Kodhi yake yakavharwa.

Linux ndiyo inonyanya kufarirwa Unix-senge yekushandisa system. Iko zvino inoshandiswa pamidziyo yakawanda, kusanganisira makombiyuta.

chiteshi (terminal), kana terminal emulator chirongwa chinopa mukana kune inoshanda sisitimu. Iwe unogona kuita akawanda terminal windows kuvhurwa panguva imwe chete.

Shell (shell) chirongwa chinokutendera kuti utumire mirairo yakanyorwa nemutauro unokosha kune inoshanda sisitimu.

Bash inomirira Bourne Again Shell. Ndiwo mutauro weganda rinonyanya kushandiswa kupindirana neiyo inoshanda sisitimu. Zvakare, iyo Bash shell ndiyo yakasarudzika pane macOS.

Command line interface (Command Line Interface, CLI) inzira yekudyidzana pakati pemunhu nekombuta, kana uchishandisa iyo mushandisi anopinda mirairo kubva kukhibhodi, uye komputa, ichiita mirairo iyi, inoratidza mameseji muchimiro chemavara kumushandisi. Iyo CLI inonyanya kushandiswa kuwana ruzivo rwezvino nezve mamwe masangano, semuenzaniso, nezve mafaera, uye kushanda nemafaira. Iyo yekuraira mutsara interface inofanirwa kusiyaniswa kubva kune graphical mushandisi interface (GUI), iyo inonyanya kushandisa mbeva. Iyo yekuraira mutsara interface inowanzotaurwa nezvayo kungoti mutsara wekuraira.

Script (script) chirongwa chidiki chine nhevedzano yemirairo yegoko. Magwaro anonyorerwa mafaira, anogona kushandiswa kakawanda. Paunenge uchinyora zvinyorwa, unogona kushandisa zvinoshanduka, zvimiso, zvishwe, mabasa, uye zvimwe zvinhu.

Zvino zvatabata mazwi akakosha, ndinoda kuratidza kuti ndichashandisa mazwi ekuti "Bash", "shell" uye "command line" zvakasiyana pano, pamwe chete nemazwi ekuti "dhairekitori" uye "folder".

Standard hova, iyo yatichashandisa pano ndiyo yakajairwa yekuisa (yakajairwa kuisa, stdin), yakajairika kubuda (yakajairwa kubuda, stdout) uye yakajairika kukanganisa kukanganisa (yakajairwa kukanganisa, stderr).

Kana mumuenzaniso mirairo iyo ichapihwa pazasi, iwe unowana chimwe chinhu chakadai my_whatever - izvi zvinoreva kuti chidimbu ichi chinoda kutsiviwa nechimwe chako. Semuenzaniso, zita refaira.

Zvino, tisati taenderera mberi nekuongororwa kwemirairo iyo chinyorwa ichi chakatsaurirwa, ngatitarisei rondedzero yavo uye tsananguro yavo pfupi.

21 Bash anorayira

▍Kuwana ruzivo

  • man: Inoratidza gwara remushandisi (rubatsiro) rwekuraira.
  • pwd: inoratidza ruzivo nezve dhairekitori rekushanda.
  • ls: inoratidza zviri mukati medhairekitori.
  • ps: Inokutendera iwe kuti uone ruzivo nezve inomhanya maitiro.

▍Faira system manipulation

  • cd: shandura dhairekitori rekushanda.
  • touch: gadzira faira.
  • mkdir: gadzira dhairekitori.
  • cp: Kopa faira.
  • mv: Fambisa kana kudzima faira.
  • ln: gadzira chinongedzo.

▍I/O kutungamira patsva uye mapaipi

  • <: redirect stdin.
  • >: redirect stdout.
  • |: pombi inobuda yeimwe command kune yekuisa yemumwe kuraira.

▍Kuverenga mafaira

  • head: verenga kutanga kwefaira.
  • tail: verenga kupera kwefaira.
  • cat: Verenga faira uye pirinda zvirimo kuchiratidziro, kana concatenate mafaera.

▍Kudzima mafaera, kumisa maitiro

  • rm: Bvisa faira.
  • kill: kumisa maitiro.

▍Tsvaga

  • grep: tsvaga ruzivo.
  • ag: murairo wepamusoro wekutsvaga.

▍Kuchengeta

  • tar: kugadzira zvinyorwa uye kushanda nazvo.

Ngatitaure nezvemirairo iyi zvakadzama.

Team Details

Kutanga, ngatitarisei nemirairo, mhedzisiro yacho inopihwa mufomu stdout. Kazhinji mhinduro idzi dzinoonekwa pahwindo rekupedzisira.

▍Kuwana ruzivo

man command_name: ratidza gwara rekuraira, i.e. ruzivo rwekubatsira.

pwd: ratidza nzira kune ikozvino kushanda dhairekitori. Mukati mekushanda nemutsara wekuraira, mushandisi kazhinji anoda kuziva kuti ndepapi muhurongwa hwaari.

ls: ratidza zviri mukati medhairekitori. Uyu murairo unoshandiswawo kazhinji.

ls -a: ratidza mafaera akavanzika. mureza wakaiswa pano -a mirairo ls. Kushandiswa kwemireza kunobatsira kugadzirisa maitiro emirairo.

ls -l: Ratidza ruzivo rwakadzama nezvemafaira.

Ziva kuti mireza inogona kusanganiswa. Somuenzaniso - seizvi: ls -al.

ps: Ona maitiro ekumhanya.

ps -e: Ratidza ruzivo nezve ese arikumhanya maitiro, kwete iwo akabatana neazvino mushandisi shell. Uyu murairo unowanzoshandiswa mune iyi fomu.

▍Faira system manipulation

cd my_directory: shandura dhairekitori rekushanda kuti my_directory. Kuti ukwire nhanho imwe mudhairekitori muti, shandisa my_directory nzira yakabatana ../.

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira
cd command

touch my_file: kugadzira mafaira my_file munzira yakapihwa.

mkdir my_directory: gadzira folda my_directory munzira yakapihwa.

mv my_file target_directory: fambisa faira my_file kufolder target_directory. Paunenge uchitsanangura dhairekitori rinonangwa, unofanirwa kushandisa iyo yakakwana nzira kwairi (uye kwete kuvaka senge ../).

team mvinogona zvakare kushandiswa kutumidzazve mafaera kana maforodha. Semuenzaniso, inogona kutaridzika seizvi:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: gadzira kopi yefaira my_source_file woiisa mufodhi target_directory.

ln -s my_source_file my_target_file: gadzira chinongedzo chekufananidzira my_target_file per file my_source_file. Kana iwe ukashandura chinongedzo, iyo yekutanga faira ichachinja zvakare.

Kana iyo faira my_source_file zvichadzimwa, ipapo my_target_file zvicharamba zviripo. Flag -s mirairo ln inobvumidza iwe kugadzira zvinongedzo zvedhairekitori.

Zvino ngatitaure nezve I/O redirection nemapaipi.

▍I/O kutungamira patsva uye mapaipi

my_command < my_file: inotsiva iyo yakajairwa yekuisa faira descriptor (stdin) pafaira my_file. Izvi zvinogona kubatsira kana murairo wakamirira kumwe kupinza kubva kukhibhodi, uye iyi data yakatochengetwa mufaira.

my_command > my_file: inotungamira mibairo yekuraira, kureva izvo zvaizowanzopinda stdout uye yakabuda kune iyo skrini, kune faira my_file. Kana iyo faira my_file haipo - yakagadzirwa. Kana iyo faira iripo, inonyorwa pamusoro.

Semuenzaniso, mushure mekuita murairo ls > my_folder_contents.txt faira remavara richagadzirwa rine runyoro rwezviri mudhairekitori rekushanda razvino.

Kana panzvimbo yechiratidzo > shandisa chigadzirwa >>, zvino, kunze kwekuti faira iyo iyo yakabuda yemurairo inotungamirwa iripo, iyi faira haizonyorwe. Iyo data ichawedzerwa kumagumo efaira iri.

Zvino ngatitarisei data pipeline processing.

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira
Kubuda kweimwe murairo kunodyiswa mukati mekupinda kweumwe murairo. Zvakafanana nekubatanidza pombi kune imwe

first_command | second_command: chiratidzo chekutakura, |, inoshandiswa kutumira kuburitsa kweimwe murairo kune mumwe murairo. Izvo murairo uri kuruboshwe rwechimiro chakatsanangurwa chinotumira kune stdout, Kuwira mukati stdin raira kurudyi rwechiratidzo chepombi.

PaLinux, data inogona kuiswa pombi uchishandisa chero chero murairo wakagadzirwa zvakanaka. Zvinowanzotaurwa kuti zvese zviri muLinux ipombi.

Unogona kubatanidza mirairo yakawanda uchishandisa pombi chiratidzo. Zvinoita seizvi:

first_command | second_command | third_command

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira
Paipi yemirairo yakawanda inogona kufananidzwa nepombi

Cherechedza kuti kana murayiro kuruboshwe chiratidzo |, inoburitsa chimwe chinhu ku stdout, zvaanoburitsa zvinobva zvangowanikwa se stdin chikwata chechipiri. Ndiko kuti, zvinozoitika kuti, tichishandisa pombi, isu tiri kubata nekuita kwakafanana kwemirairo. Dzimwe nguva izvi zvinogona kutungamirira kumigumisiro isingatarisirwi. Mashoko pamusoro peizvi anogona kuverengwa pano.

Zvino ngatitaure nezve kuverenga data kubva kumafaira uye nekuaratidza pachiratidziri.

▍Kuverenga mafaira

head my_file: inoverenga mitsara kubva pakutanga kwefaira uye inodhinda kune iyo skrini. Iwe haugone kuverenga kwete chete zviri mukati memafaira, asiwo izvo zvinobuda nemirairo mukati stdinuchishandisa murairo uyu sechikamu chepombi.

tail my_file: inoverenga mitsara kubva kumagumo efaira. Uyu murairo unogonawo kushandiswa mupombi.

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira
Musoro (musoro) uri pamberi, uye muswe (muswe) uri kumashure

Kana iwe uri kushanda nedata uchishandisa iyo pandas raibhurari, ipapo iyo mirairo head ΠΈ tail inofanira kunge yakajairika kwauri. Kana zvisina kudaro, tarisa mufananidzo uri pamusoro, uye iwe unovayeuka nyore nyore.

Funga dzimwe nzira dzekuverenga mafaira, ngatitaure pamusoro pemurairo cat.

chikwata cat inogona kudhinda zvirimo mufaira pachiratidziro, kana kubatanidza mafaera akawanda. Izvo zvinoenderana nekuti mangani mafaera anopfuudzwa kune uyu murairo kana adaidzwa.

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira
katsi command

cat my_one_file.txt: kana faira rimwe chete rapfuudzwa kune uyu rairo, rinoburitsa kwariri stdout.

Kana iwe ukapa mafaera maviri kana akawanda mafaera, zvino inozvibata zvakasiyana.

cat my_file1.txt my_file2.txt: wagamuchira akati wandei mafaera sekuisa, uyu murairo unobatanidza zviri mukati mavo uye unoratidza zvakaitika mukati stdout.

Kana mhedzisiro yefaira concatenation ichida kuchengetwa sefaira nyowani, unogona kushandisa opareta >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Zvino ngatitaure nezve nzira yekudzima mafaera uye kumisa maitiro.

▍Kudzima mafaera, kumisa maitiro

rm my_file: bvisa faira my_file.

rm -r my_folder: inodzima folda my_folder uye mafaera ese nemaforodha arimo. Flag -r inoratidza kuti murairo uchamhanya mune recursive mode.

Kuti udzivise sisitimu kukumbira kusimbiswa pese panobviswa faira kana folda, shandisa mureza -f.

kill 012345: Inomisa iyo yakatarwa yekumhanyisa maitiro, ichipa iyo nguva yekuvharika zvine nyasha.

kill -9 012345: Inomisa nechisimba iyo yakatarwa yekumhanyisa maitiro. View mureza -s SIGKILL zvinoreva zvakafanana nemureza -9.

▍Tsvaga

Iwe unogona kushandisa mirairo yakasiyana kutsvaga data. Zvikuru sei - grep, ag ΠΈ ack. Ngatitange kuziva kwedu nemirairo iyi ne grep. Uyu murairo wakaedzwa, wakavimbika, uyo, zvisinei, unononoka kupfuura vamwe uye hausi nyore kushandisa sezvavari.

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira
grep command

grep my_regex my_file: kutsvaga my_regex Π² my_file. Kana machisi awanikwa, tambo yese inodzoswa, pamutambo wega wega. Default my_regex kubatwa sechiratidzo chenguva dzose.

grep -i my_regex my_file: Kutsvaga kunoitwa nenzira isina hanya.

grep -v my_regex my_file: inodzosa mitsara yese isina my_regex. Flag -v zvinoreva inversion, inofanana nemushandisi NOT, inowanikwa mumitauro yakawanda yepurogiramu.

grep -c my_regex my_file: Inodzosa ruzivo rwehuwandu hwemachisi epatani yakatsvaga inowanikwa mufaira.

grep -R my_regex my_folder: inoita tsvakiridzo inodzokororwa mumafaira ese ari mune yakatarwa folda uye mumafolda akaiswa mairi.

Zvino ngatitaure nezvechikwata ag. Akazouya pave paya grep, inokurumidza, zviri nyore kushanda nayo.

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira
ag command

ag my_regex my_file: inodzosera ruzivo nezve nhamba dzemitsara, uye mitsetse pachayo, umo machisi akawanikwa aine my_regex.

ag -i my_regex my_file: Kutsvaga kunoitwa nenzira isina hanya.

chikwata ag otomatiki gadzira iyo faira .gitignore uye isingabatanidzi kubva pane zvakaburitswa izvo zvinowanikwa mumaforodha kana mafaera akanyorwa mufaira iro. Yakanyanya kugadzikana.

ag my_regex my_file -- skip-vcs-ignores: zviri mukati me otomatiki vhezheni kutonga mafaera (se .gitignore) haina kuverengerwa mukutsvaga.

Mukuwedzera, kuitira kuudza boka ag pane nzira dzefaira dzaunoda kusabvisa kubva pakutsvaga, unogona kugadzira faira .agignore.

Pakutanga kwechikamu chino, takataura murairo ack. Zvikwata ack ΠΈ ag zvakafanana zvikuru, tinogona kutaura kuti ivo 99% vanochinjana. Zvisinei, chikwata ag inoshanda nekukurumidza, ndosaka ndakaitsanangura.

Zvino ngatitaure nezvekushanda nearchives.

▍Kuchengeta

tar my_source_directory: concatenates mafaira kubva folda my_source_directory mune imwe tarball faira. Mafaira akadaro anobatsira kuendesa seti huru yemafaira kune mumwe munhu.

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira
tar command

Iwo mafaira etarball anogadzirwa nemurairo uyu mafaera ane kuwedzera .tar (Tepi ARchive). Idi rokuti shoko rokuti "tepi" (tepi) rakavigwa muzita remurairo uye mukuwedzera kwemazita emafaira anogadzirwa kunoratidza kuti murairo uyu wakagara kwenguva yakareba sei.

tar -cf my_file.tar my_source_directory: inogadzira tarball faira rakanzi my_file.tar ine folda zviri mukati my_source_directory. Flag -c inomirira kuti β€œsika” (kusikwa), uye mureza -f se "faira" (faira).

Kutora mafaira kubva .tar-faira, shandisa murairo tar nemireza -x ("kubvisa", kuburitsa) uye -f ("faira", faira).

tar -xf my_file.tar: inobvisa mafaira kubva my_file.tar kune ikozvino kushanda dhairekitori.

Iye zvino ngatitaure nezve nzira yekumanikidza uye decompress .tar-mafaira.

tar -cfz my_file.tar.gz my_source_directory: pano uchishandisa mureza -z ("zip", compression algorithm) inoratidza kuti algorithm inofanira kushandiswa kudzvanya mafaera gzip (GNUzip). Kudzvanywa kwefaira kunochengetedza dhisiki nzvimbo kana uchichengeta mafaera akadaro. Kana mafaira akarongwa, semuenzaniso, kuendeswa kune vamwe vashandisi, izvi zvinobatsira kukurumidza kurodha mafaira akadaro.

Unzip file .tar.gz unogona kuwedzera mureza -z kune dhairekitori yemukati yekuraira .tar-mafaira, atakakurukura pamusoro apa. Zvinoita seizvi:

tar -xfz my_file.tar.gz
Zvinofanira kucherechedzwa kuti chikwata tar Kune mamwe akawanda anobatsira mireza.

Bash aliases

Bash aliases (anonziwo maaliases kana mapfupiso) akagadzirirwa kugadzira mazita akapfupikiswa emirairo kana kutevedzana kwawo, kushandiswa kwaro panzvimbo yemirairo yenguva dzose kunomhanyisa basa. Kana uine alias bu, iyo inovanza murairo python setup.py sdist bdist_wheel, zvino kudaidza murairo uyu, zvakakwana kushandisa irias.

Kuti ugadzire akadaro alias, ingo wedzera murairo unotevera kune faira ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Kana system yako isina faira ~/.bash_profile, ipapo unogona kuzvigadzira iwe pachako uchishandisa murairo touch. Mushure mekugadzira iyo alias, tangazve iyo terminal, mushure meizvozvo iwe unogona kushandisa iri alias. Muchiitiko ichi, kuiswa kwemavara maviri kunotsiva kupinza kweanopfuura matatu gumi nemaviri mavara emurairo, iyo inoitirwa magungano Python mapakeji.

Π’ ~/.bash_profile unogona kuwedzera ariases kune chero mirairo inowanzo shandiswa.

▍ Zvabuda

Mune ino positi, takafukidza makumi maviri nembiri akakurumbira mirairo yeBash uye takataura nezve kugadzira mirairo yekuraira. Kana uchifarira nyaya iyi - tarisai nhevedzano yezvinyorwa zvakatsaurirwa kuna Bash. zviri Unogona kuwana pdf vhezheni yezvinyorwa izvi. Zvakare, kana iwe uchida kudzidza Bash, yeuka kuti, sekunge chero imwe programming system, kudzidzira ndiko kwakakosha.

Vanodiwa vaverengi! Ndeipi mirairo inobatsira kune vanotanga iwe yaungawedzera kune iyo yakurukurwa munyaya ino?

β†’ Uyezve verenga mu blog yedu nhevedzano yezvinyorwa nezve bash scripts

[bookmarked] Bash yevanotanga: 21 mirairo inobatsira

Source: www.habr.com

Voeg