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.
β
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.
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 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 kwakhonastdin
.>
: uqondise kwakhonastdout
.|
: 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 ../
.
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 mv
ingasetyenziselwa ukuthiya ngokutsha iifayile okanye iincwadi. Umzekelo, inokujongeka ngolu hlobo:
mv my_old_file_name.jpg my_new_file_name.jpg
: Yenza ikopi yefayile
cp my_source_file target_directorymy_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.
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
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
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 stdin
usebenzisa lo myalelo njengesiqalelo sombhobho.
tail my_file
: Ufunda imigca ukusuka ekupheleni kwefayile. Lo myalelo unokusetyenziswa kwakhona kumbhobho.
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.
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.
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.
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.
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
Π ~/.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 -
Bafundi abathandekayo! Yeyiphi imiyalelo eluncedo kwabaqalayo onokuyongeza kule ixutyushwa kweli nqaku?
β
umthombo: www.habr.com