[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo

Izinto eziphathekayo, inguqulelo esiyipapashayo namhlanje, yenzelwe abo bafuna ukuqonda umgca womyalelo weLinux. Ukukwazi ukusebenzisa esi sixhobo ngokufanelekileyo kunokonga ixesha elininzi. Ngokukodwa, siza kuthetha ngeqokobhe le-Bash kunye nemiyalelo eyi-21 eluncedo apha. Siza kuthetha malunga nendlela yokusebenzisa iiflegi zomyalelo kunye ne-Bash aliases ukukhawulezisa ukuchwetheza imiyalelo emide.

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo

β†’ Kwakhona funda kwibhlog yethu uluhlu lweempapasho malunga nemibhalo ye-bash

Imigaqo

Njengoko ufunda ukusebenza ngomgca womyalelo weLinux, uya kudibana neekhonsepthi ezininzi eziluncedo ukuhamba. Abanye babo, njenge "Linux" kunye ne "Unix", okanye "iqokobhe" kunye ne "terminal", ngamanye amaxesha babhidekile. Makhe sithethe ngala magama kunye namanye abalulekileyo.

Unix yinkqubo yokusebenza edumileyo eyaphuhliswa yiBell Labs ngeminyaka yoo-1970. Ikhowudi yayo yavalwa.

Linux yeyona ndlela idumileyo efana ne-Unix. Ngoku isetyenziswa kwizixhobo ezininzi, kuquka iikhompyutha.

Isiphelo sendlela (iterminal), okanye iterminal emulator yinkqubo enika ufikelelo kwindlela yokusebenza. Unokuba neeterminal ezininzi iifestile ezivulekileyo ngexesha elinye.

I-Shell (iqokobhe) yinkqubo ekuvumela ukuba uthumele imiyalelo ebhalwe ngolwimi olukhethekileyo kwindlela yokusebenza.

Bash imele iBourne Again Shell. Lolona lwimi luxhaphakileyo lweqokobhe olusetyenziswayo ukusebenzisana nenkqubo yokusebenza. Ukongeza, iBash liqokobhe elingagqibekanga kwi-macOS.

Ujongano lomgca womyalelo (I-Command Line Interface, CLI) yindlela yokusebenzisana phakathi komntu kunye nekhompyutheni, esebenzisa apho umsebenzisi afaka imiyalelo esuka kwikhibhodi, kwaye ikhompyutha, iphumeza le miyalelo, ibonisa imiyalezo kwifom yombhalo kumsebenzisi. Ukusetyenziswa okuphambili kwe-CLI kukufumana ulwazi oluhlaziyiweyo malunga namaziko athile, afana neefayile, kunye nokusebenza ngeefayile. Ujongano lwelayini yomyalelo kufuneka yahlulwe kujongano lomsebenzisi womzobo (GUI), esebenzisa imouse. Ujongano lwelayini yomyalelo kaninzi kubhekiswa kulo ngokulula njengomgca womyalelo.

Ushicilelo (iskripthi) yinkqubo encinci equlathe ulandelelwano lwemiyalelo yeqokobhe. Izikripthi zibhalwa kwiifayile, zinokusetyenziswa ngokuphindaphindiweyo. Xa ubhala izikripthi, ungasebenzisa izinto eziguquguqukayo, iimeko, iilophu, imisebenzi, kunye nezinye iimpawu.

Ngoku njengoko sigubungele amagama abalulekileyo, ndifuna ukukhomba ukuba ndiza kusebenzisa amagama athi "Bash", "iqokobhe" kunye "nomgca we-command" ngokutshintshana apha, kunye namagama "uluhlu" kunye "nefolda".

Umgangatho imisinga, esiza kuyisebenzisa apha ligalelo elisezantsi (ungeniso oluqhelekileyo, stdin), imveliso esemgangathweni (imveliso eqhelekileyo, stdout) kunye nesiphumo semposiso eqhelekileyo (impazamo eqhelekileyo, stderr).

Ukuba kwimizekelo yomyalelo ongezantsi ubona into enje my_whatever - oku kuthetha ukuba esi siqwenga kufuneka sitshintshwe ngento yakho. Umzekelo, igama lefayile.

Ngoku, ngaphambi kokuqhubeka nohlalutyo lwemiyalelo esi sixhobo sinikezelwe kuyo, makhe sijonge uluhlu lwabo kunye neenkcazo zabo ezimfutshane.

21 Imiyalelo yeBash

▍Ukufumana ulwazi

  • man: Ibonisa isikhokelo somsebenzisi (uncedo) kumyalelo.
  • pwd: ibonisa ulwazi malunga noluhlu olusebenzayo.
  • ls: Ibonisa imixholo yolawulo.
  • ps: Ikuvumela ukuba ujonge ulwazi malunga neenkqubo ezisebenzayo.

▍Ukusetyenziswa kwenkqubo yeefayili

  • cd: tshintsha ulawulo lokusebenza.
  • touch: Yenza ifayile.
  • mkdir: yenza uvimba weefayili.
  • cp: Khuphela ifayile.
  • mv: Hambisa okanye ucime ifayile.
  • ln: yenza ikhonkco.

▍I/O Ukwalathisa ngokutsha kunye nemibhobho

  • <: uqondise kwakhona stdin.
  • >: uqondise kwakhona stdout.
  • |: umbhobho imveliso yomyalelo omnye kwigalelo lomnye umyalelo.

▍ Ukufunda iifayile

  • head: Funda isiqalo sefayile.
  • tail: funda ukuphela kwefayile.
  • cat: Funda ifayile kwaye uprinte imixholo yayo kwiscreen, okanye udibanise iifayile.

▍ Ukucima iifayile, ukumisa iinkqubo

  • rm: Cima ifayile.
  • kill: yeka inkqubo.

▍Khangela

  • grep: khangela ulwazi.
  • ag: umyalelo ophezulu wokukhangela.

▍Ukugcinwa koovimba

  • tar: ukwenza oovimba kunye nokusebenza nabo.

Makhe sithethe ngale miyalelo ngokweenkcukacha.

Iinkcukacha zeqela

Ukuqala, makhe sijongane nemiyalelo, iziphumo zazo zikhutshwe kwifom stdout. Ngesiqhelo ezi ziphumo zivela kwi-terminal window.

▍Ukufumana ulwazi

man command_name: imveliso yencwadi yomyalelo, oko kukuthi, ulwazi lwereferensi.

pwd: bonisa umendo kulawulo lwangoku olusebenzayo. Ngexesha lokusebenza ngomgca womyalelo, umsebenzisi uhlala efuna ukufumana kanye apho akhoyo kwinkqubo.

ls: bonisa imixholo yolawulo. Lo myalelo ukwasetyenziswa rhoqo.

ls -a: bonisa iifayile ezifihliweyo. iflegi ifakwe apha -a imiyalelo ls. Ukusetyenziswa kweeflegi kunceda ukulungelelanisa ukuziphatha kwemiyalelo.

ls -l: Bonisa ulwazi oluneenkcukacha malunga neefayile.

Nceda uqaphele ukuba iiflegi zinokudibaniswa. Umzekelo - njengale: ls -al.

ps: Jonga iinkqubo ezisebenzayo.

ps -e: Ibonisa ulwazi malunga nazo zonke iinkqubo ezisebenzayo, hayi nje ezo ezinxulumene neqokobhe langoku lomsebenzisi. Lo myalelo udla ngokusetyenziswa kolu hlobo.

▍Ukusetyenziswa kwenkqubo yeefayili

cd my_directory: tshintsha uvimba weefayili osebenzayo ukuba my_directory. Ukunyusa umgangatho omnye kumthi wolawulo, sebenzisa my_directory indlela ehambelanayo ../.

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo
cd umyalelo

touch my_file: ukudalwa kwefayile my_file ecaleni kwendlela oyinikiweyo.

mkdir my_directory: yenza ifolda my_directory ecaleni kwendlela oyinikiweyo.

mv my_file target_directory: susa ifayile my_file kwifolda target_directory. Xa ukhankanya uvimba weefayili ekujoliswe kuwo, kufuneka usebenzise indlela epheleleyo kuyo (kwaye hayi ulwakhiwo olufana nolwakhiwo ../).

iqela mvingasetyenziselwa ukuthiya ngokutsha iifayile okanye iincwadi. Umzekelo, inokujongeka ngolu hlobo:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: Yenza ikopi yefayile my_source_file kwaye uyibeke kwifolda target_directory.

ln -s my_source_file my_target_file: yenza ikhonkco lokomfuziselo my_target_file ngefayile nganye my_source_file. Ukuba utshintsha ikhonkco, ifayile yoqobo nayo iya kutshintsha.

Ukuba ifayile my_source_file iya kucinywa, ngoko my_target_file iya kuhlala. Iflegi -s imiyalelo ln ikuvumela ukuba wenze amakhonkco kubalawuli.

Ngoku makhe sithethe malunga ne-I/O yokwalathisa ngokutsha kunye nemibhobho.

▍I/O Ukwalathisa ngokutsha kunye nemibhobho

my_command < my_file: ithatha indawo yenkcazelo yefayile yegalelo esemgangathweni (stdin) ngefayile nganye my_file. Oku kunokuba luncedo ukuba umyalelo ulinde igalelo elithile kwibhodi yezitshixo, kwaye le datha sele igcinwe kwifayile.

my_command > my_file: iqondisa ngokutsha iziphumo zomyalelo, o.k.t. yintoni eqhele ukungena kuyo stdout kunye nemveliso kwikhusi, kwifayile my_file. Ukuba ifayile my_file ayikho - iyadalwa. Ukuba ifayile ikhona, ibhalwe ngaphezulu.

Umzekelo, emva kokuphumeza umyalelo ls > my_folder_contents.txt ifayile yokubhaliweyo iyakwenziwa equlathe uluhlu lwento ekuluhlu olusebenzayo lwangoku.

Ukuba endaweni yesimboli > sebenzisa ulwakhiwo >>, ngoko, ngaphandle kokuba ifayile apho imveliso yomyalelo iqondiswe kwakhona ikhona, le fayile ayisayi kubhalwa ngaphezulu. Idatha iya kongezwa ekupheleni kwale fayile.

Ngoku makhe sijonge ukusetyenzwa kwemibhobho yedatha.

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo
Imveliso yomyalelo omnye ifakwe kwigalelo lomnye umyalelo. Kufana nokudibanisa umbhobho omnye komnye

first_command | second_command: isimboli yokuhambisa, |, isetyenziselwa ukuthumela iziphumo zomyalelo omnye komnye umyalelo. Uthumela ntoni umyalelo obekwe kwicala lasekhohlo lolwakhiwo oluchaziweyo stdout, Yiwa kwi stdin umyalelo, obekwe ekunene kwesimboli yokuhambisa.

Kwi-Linux, umbhobho wedatha unokwenziwa kusetyenziswa phantse nawuphi na umyalelo owenziwe kakuhle. Kuhlala kuthiwa yonke into ekwiLinux ngumbhobho.

Ungasebenzisa isimboli sokuhambisa ukudibanisa imiyalelo emininzi. Ijongeka ngolu hlobo:

first_command | second_command | third_command

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo
Umbhobho wemiyalelo emininzi unokuthelekiswa nombhobho

Nceda uqaphele ukuba xa umyalelo ekhohlo isimboli |, ikhupha into kwi stdout, oko akukhuphayo kufumaneka ngoko nangoko njenge stdin iqela lesibini. Oko kukuthi, kuvela ukuba, ngokusebenzisa umbhobho, sijongene nokuphunyezwa okufanayo kwemiyalelo. Ngamanye amaxesha oku kunokukhokelela kwiziphumo ezingalindelekanga. Iinkcukacha malunga noku zinokufundwa apha.

Ngoku makhe sithethe ngokufunda idatha kwiifayile kwaye siyibonise kwiscreen.

▍ Ukufunda iifayile

head my_file: ufunda imigca ukusuka ekuqaleni kwefayile kwaye uyiprinte kwikhusi. Awukwazi ukufunda kuphela imixholo yeefayile, kodwa kwanemiyalelo ephuma kuyo stdinusebenzisa lo myalelo njengesiqalelo sombhobho.

tail my_file: Ufunda imigca ukusuka ekupheleni kwefayile. Lo myalelo unokusetyenziswa kwakhona kumbhobho.

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo
Intloko (intloko) ingaphambili, kwaye umsila (umsila) usemva

Ukuba usebenza ngedatha usebenzisa ilayibrari yepandas, ngoko imiyalelo head ΠΈ tail kufuneka uqhelene nawe. Ukuba oku akunjalo, jonga lo mfanekiso ungasentla, kwaye uya kubakhumbula ngokulula.

Cinga ngezinye iindlela zokufunda iifayile, makhe sithethe ngomyalelo cat.

Iqela cat nokuba ishicilela imixholo yefayile kwikhusi, okanye idibanisa iifayile ezininzi. Kuxhomekeke ekubeni zingaphi iifayile ezigqithiselwe kulo myalelo xa ubizwa.

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo
ikati umyalelo

cat my_one_file.txt: xa ifayile enye igqithiselwa kulo myalelo, iyikhuphela kuyo stdout.

Ukuba unika iifayile ezimbini okanye iifayile ezininzi, ngoko iziphatha ngendlela eyahlukileyo.

cat my_file1.txt my_file2.txt: emva kokufumana iifayile ezininzi njengegalelo, lo myalelo uzakudibanisa imixholo yazo kwaye ikhuphe okuphumileyo stdout.

Ukuba isiphumo sokudityaniswa kwefayile sifuna ukugcinwa njengefayile entsha, ungasebenzisa umsebenzisi >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Ngoku makhe sithethe malunga nendlela yokucima iifayile kunye nokuyeka iinkqubo.

▍ Ukucima iifayile, ukumisa iinkqubo

rm my_file: cima ifayile my_file.

rm -r my_folder: icima isiqulathi seefayili my_folder kwaye zonke iifayile kunye neefolda eziziquletheyo. Iflegi -r ibonisa ukuba umyalelo uzakuqhuba kwimo yokubuyisela.

Ukuthintela inkqubo ekufuneni isiqinisekiso ngalo lonke ixesha ifayile okanye ifolda icinyiwe, sebenzisa iflegi -f.

kill 012345: Imisa inkqubo ekhankanyiweyo, inika ixesha lokuvala ngobubele.

kill -9 012345: Icima ngenkani inkqubo echaziweyo yokusebenza. Jonga iflegi -s SIGKILL ithetha into enye neflegi -9.

▍Khangela

Ungasebenzisa imiyalelo eyahlukeneyo ukukhangela idatha. Ukuthi ngqo - grep, ag ΠΈ ack. Masiqale ukuqhelana nale miyalelo nge grep. Lo ngumyalelo ovavanyiweyo, othembekileyo, othi, nangona kunjalo, ucotha kunabanye kwaye akulula ukuwusebenzisa njengoko kunjalo.

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo
grep umyalelo

grep my_regex my_file: uphendlo my_regex Π² my_file. Ukuba umdlalo ufunyenwe, umtya wonke uyabuyiswa, kumdlalo ngamnye. Ukuhlala kukho my_regex iphathwe njengento eqhelekileyo.

grep -i my_regex my_file: Uphendlo lwenziwa ngendlela engenamvakalelo.

grep -v my_regex my_file: ibuyisela yonke imiqolo engaqulathanga my_regex. Iflegi -v kuthetha ukuguqulwa, kufana nomsebenzi NOT, efumaneka ngeelwimi ezininzi zokucwangcisa.

grep -c my_regex my_file: Ibuyisela ulwazi malunga nenani leematshisi kwipateni ekhangelweyo efunyenwe kwifayile.

grep -R my_regex my_folder: yenza uphendlo oluphinda-phindayo kuzo zonke iifayile ezibekwe kulawulo olukhankanyiweyo nakwiincwadi ezineenkcukacha ezibekwe kuyo.

Ngoku makhe sithethe ngeqela ag. Weza emva kwexesha grep, iyakhawuleza, ikulungele ngakumbi ukusebenza nayo.

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo
umyalelo we-ag

ag my_regex my_file: ibuyisela ulwazi malunga neenombolo zomgca, kunye nemigca ngokwazo, apho imilinganiselo ifunyenwe khona my_regex.

ag -i my_regex my_file: Uphendlo lwenziwa ngendlela engenamvakalelo.

Iqela ag qhubekeka ngokuzenzekelayo ifayile .gitignore kwaye ayibandakanyi kwimveliso okufunyenweyo kwiincwadi okanye iifayile ezidweliswe kuloo fayile. Ikhululekile kakhulu.

ag my_regex my_file -- skip-vcs-ignores: imixholo yeefayile zenkqubo yoguqulelo oluzenzekelayo (njenge .gitignore) ayithathelwa ngqalelo kukhangelo.

Ukongeza, ukuze uxelele iqela ag ukumisela ukuba yeyiphi na indlela yefayile efuna ukukhutshelwa ngaphandle kuphendlo, ungenza ifayile .agignore.

Ekuqaleni kweli candelo, sikhankanye umyalelo ack. Amaqela ack ΠΈ ag ziyafana kakhulu, sinokuthi zingama-99%. Nangona kunjalo, iqela ag isebenza ngokukhawuleza, yiyo loo nto ndiyichazile.

Ngoku makhe sithethe ngokusebenza noovimba.

▍Ukugcinwa koovimba

tar my_source_directory: idibanisa iifayile kwifolda my_source_directory kwifayile yetarball enye. Iifayile ezinjalo ziluncedo ekugqithiseleni iiseti ezinkulu zeefayile kumntu othile.

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo
tar umyalelo

Iifayile zetarball ezenziwe ngulo myalelo ziifayile ezinolwandiso .tar (Tape i-ARchive). Inyaniso yokuba igama elithi "tape" (tape) lifihliwe egameni lomyalelo kwaye ekwandisweni kwamagama eefayile ezidala kubonisa ukuba lo myalelo sele ukhona ixesha elingakanani.

tar -cf my_file.tar my_source_directory: yenza ifayile yetarball enegama my_file.tar ngemixholo yefolda my_source_directory. Iflegi -c imele "ukudala" (indalo), kunye neflegi -f njenge "fayile" (ifayile).

Ukukhupha iifayile kwi .tar-ifayile, sebenzisa umyalelo tar ngeeflegi -x ("isicatshulwa", ukutsalwa) kunye -f ("ifayile", ifayile).

tar -xf my_file.tar: ikhupha iifayile kwi my_file.tar kulawulo lwangoku olusebenzayo.

Ngoku makhe sithethe malunga nendlela yokucinezela kunye ne-decompress .tar-iifayile.

tar -cfz my_file.tar.gz my_source_directory: apha usebenzisa iflegi -z ("zip", i-algorithm yoxinzelelo) ibonisa ukuba i-algorithm kufuneka isetyenziswe ukucinezela iifayile gzip (GNUzip). Uxinzelelo lwefayile lukuvumela ukuba ugcine indawo yedisk xa ugcina ezo fayile. Ukuba iifayile zicetywayo, umzekelo, ukuba zidluliselwe kwabanye abasebenzisi, oku kunceda ukukhuphela iifayile ezinjalo ngokukhawuleza.

Unzip ifayile .tar.gz unokongeza iflegi -z kumyalelo wokukhupha umxholo .tar-iifayile, esixoxe ngazo ngasentla. Ijongeka ngolu hlobo:

tar -xfz my_file.tar.gz
Kufuneka kuqatshelwe ukuba iqela tar Zininzi iiflegi eziluncedo.

Iziteketiso zeBash

Iziteketiso zeBash (ezikwabizwa ngokuba zii-aliases okanye izifinyezo) ziyilelwe ukwenza amagama ashunqulelweyo emiyalelo okanye ulandelelwano lwazo, ukusetyenziswa apho endaweni yemiyalelo eqhelekileyo kukhawulezisa umsebenzi. Ukuba une-alias bu, efihla umyalelo python setup.py sdist bdist_wheel, ke ukubiza lo myalelo kwanele ukusebenzisa esi sifaniso.

Ukwenza igama elinjalo, yongeza nje lo myalelo ulandelayo kwifayile ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Ukuba inkqubo yakho ayinayo ifayile ~/.bash_profile, emva koko ungayidala ngokwakho usebenzisa umyalelo touch. Emva kokudala i-alias, qalisa kwakhona i-terminal, emva koko ungasebenzisa eli gama. Kulo mzekelo, igalelo labalinganiswa ababini lithatha indawo yegalelo labasebenzi abangaphezulu kweshumi elinesibini lomyalelo, elenzelwe Iindibano Iiphakheji zePython.

Π’ ~/.bash_profile unokongeza iziteketiso zayo nayiphi na imiyalelo esetyenziswa rhoqo.

▍Iziphumo

Kule post, sigubungele imiyalelo edumileyo ye-Bash engama-21 kwaye sathetha ngokwenza iziteketiso zomyalelo. Ukuba unomdla kwesi sihloko - bonani uthotho lweempapasho ezinikezelwe kuBash. kuyinto Unokufumana inguqulelo ye-pdf yezi mpapasho. Kwakhona, ukuba ufuna ukufunda iBash, khumbula ukuba, njengayo nayiphi na enye inkqubo yenkqubo, ukuziqhelanisa ngundoqo.

Bafundi abathandekayo! Yeyiphi imiyalelo eluncedo kwabaqalayo onokuyongeza kule ixutyushwa kweli nqaku?

β†’ Kwakhona funda kwibhlog yethu uluhlu lweempapasho malunga nemibhalo ye-bash

[bookmarked] I-Bash yabaqalayo: 21 imiyalelo eluncedo

umthombo: www.habr.com

Yongeza izimvo