Materyal, wergera ku em îro diweşînin, ji bo kesên ku dixwazin rêza fermana Linux-ê serdest bibin tê armanc kirin. Kapasîteya karanîna vê amûrê bi bandor dikare gelek dem xilas bike. Bi taybetî, em ê li vir li ser şêlê Bash û 21 fermanên bikêr biaxivin. Em ê her weha biaxivin ka meriv çawa alayên fermanê û navên Bash bikar tîne da ku nivîsandina rêwerzên dirêj bileztir bike.
→
Mercên
Gava ku hûn fêr dibin ku bi rêzika fermana Linux re bixebitin, hûn ê bi gelek têgînên ku ji bo navîgasyonê alîkar in re rû bi rû bibin. Hin ji wan, mîna "Linux" û "Unix", an "shell" û "terminal", carinan têne tevlihev kirin. Werin em li ser van û têgehên din ên girîng bipeyivin.
Naha ku me şertên girîng vegirtiye, ez dixwazim destnîşan bikim ku ez ê li vir têgînên "Bash", "shell" û "xêza fermanê" û hem jî têgînên "rêveber" û "peldank" bi hev re bi kar bînim.
Standard stdin
), hilberîna standard (hilberîna standard, stdout
) û derketina xeletiya standard (çewtiya standard, stderr
).
Ger di emrên nimûneyên ku dê li jêr werin dayîn de, hûn ê tiştek mîna bibînin my_whatever
- ev tê vê wateyê ku pêdivî ye ku ev perçe bi tiştek we were guheztin. Ji bo nimûne, navê pelê.
Naha, berî ku em bi analîzkirina fermanên ku ev materyal ji wan re hatî veqetandin, em li navnîşa wan û raveyên kurt ên wan mêze bikin.
21 fermanên Bash
▍Agahdariyê girtin
man
: Ji bo fermanê rêbernameya bikarhêner (alîkarî) nîşan dide.pwd
: agahdariya li ser pelrêça xebatê nîşan dide.ls
: naveroka pelrêçekê nîşan dide.ps
: Destûrê dide we ku hûn agahdariya li ser pêvajoyên xebitandinê bibînin.
▍ Manîpulasyona pergala pelê
cd
: pelrêça xebatê biguherîne.touch
: pelek çêbikin.mkdir
: pelrêçek çêbikin.cp
: Pelek kopî bikin.mv
: Pelek biguhezînin an jêbikin.ln
: girêdanek çêbikin.
▍I/O beralîkirin û boriyên
<
: beralîkirinstdin
.>
: beralîkirinstdout
.|
: derana fermanekê bi boriyan ber bi têketina fermanek din ve kir.
▍Reading files
head
: destpêka pelê bixwînin.tail
: dawiya pelê bixwînin.cat
: Pelê bixwîne û naveroka wê li ser ekranê çap bike, an pelan bigihîne hev.
▍Jêbirina pelan, rawestandina pêvajoyan
rm
: Pelek jêbirin.kill
: pêvajoyê rawestîne.
▍Search
grep
: lêgerîna agahiyê.ag
: fermana pêşkeftî ya lêgerînê.
▍Arşîvkirin
tar
: çêkirina arşîvan û xebata bi wan.
Ka em bi hûrgulî li ser van fermanan bipeyivin.
Details Tîma
Ji bo destpêkê, em bi fermanan re mijûl bibin, encamên ku di formê de têne derxistin stdout
. Bi gelemperî ev encam di pencereyek termînalê de xuya dibin.
▍Agahdariyê girtin
man command_name
: rêbernameya fermanê nîşan bide, ango agahdariya alîkariyê.
pwd
: rêça pelrêça xebatê ya heyî nîşan bide. Di dema xebata bi rêzika fermanê re, bikarhêner bi gelemperî hewce dike ku bi rastî bizanibe ku ew li ku derê pergalê ye.
ls
: naveroka pelrêçekê nîşan bide. Ev ferman jî pir caran tê bikar anîn.
ls -a
: pelên veşartî nîşan bide. ala li vir hatiye sepandin -a
ferman dike ls
. Bikaranîna alayan ji bo xweşkirina tevgera fermanan dibe alîkar.
ls -l
: Li ser pelan agahdariya berfireh nîşan bide.
Bala xwe bidinê ku al dikarin werin hev kirin. Mînakî - bi vî rengî: ls -al
.
ps
: Pêvajoyên xebitandinê bibînin.
ps -e
: Agahdariyê li ser hemî pêvajoyên xebitandinê nîşan bidin, ne tenê yên ku bi şêlê bikarhênerê heyî ve girêdayî ne. Ev ferman gelek caran di vê formê de tê bikaranîn.
▍ Manîpulasyona pergala pelê
cd my_directory
: pelrêça xebatê biguherîne my_directory
. Ji bo ku di dara pelrêçê de yek astek hilkişin, bikar bînin my_directory
riya nisbî ../
.
fermana cd
touch my_file
: çêkirina pelan my_file
li ser riya diyarkirî.
mkdir my_directory
: peldankek çêbike my_directory
li ser riya diyarkirî.
mv my_file target_directory
: pelê bar bike my_file
ji bo peldankê target_directory
. Dema ku pelrêça armancê destnîşan dike, hûn hewce ne ku riya bêkêmasî ya wê bikar bînin (û ne avahiyek mîna ../
).
kom mv
dikare ji bo guherandina navên pelan an peldankan jî were bikar anîn. Mînakî, dibe ku bi vî rengî xuya bike:
mv my_old_file_name.jpg my_new_file_name.jpg
: kopiyek pelê çêbike
cp my_source_file target_directorymy_source_file
û têxin peldankekê target_directory
.
ln -s my_source_file my_target_file
: girêdaneke sembolîk çêbike my_target_file
per pelê my_source_file
. Heke hûn girêdanê biguherînin, pelê orîjînal jî dê biguhere.
Heke pelê my_source_file
wê were jêbirin, wê demê my_target_file
dê bimîne. Al -s
ferman dike ln
destûrê dide te ku hûn ji bo pelrêçan girêdanan biafirînin.
Naha em li ser beralîkirina I/O û boriyan biaxivin.
▍I/O beralîkirin û boriyên
my_command < my_file
: li şûna ravekera pelê têketina standard (stdin
) li ser pelê my_file
. Heke ferman li benda hin têketinê ji klavyeyê be, ev dikare kêrhatî be, û ev dane jixwe di pelek de hatî tomar kirin.
my_command > my_file
: encamên fermanê beralî dike, ango tiştê ku dê bi gelemperî têkeve hundurê stdout
û li ser ekranê, li pelek derxe my_file
. Ger pelê my_file
tune - tê afirandin. Heke pel hebe, ew tê nivîsandin.
Mînakî, piştî pêkanîna fermanê ls > my_folder_contents.txt
pelek nivîsê dê were afirandin ku tê de navnîşek tiştê ku di pelrêça xebatê ya heyî de heye heye.
Ger li şûna sembolê >
avakirinê bikar bînin >>
, wê demê, bi şertê ku pela ku derketina fermanê jê re tê verastkirin hebe, ev pel dê neyê nivîsandin. Daneyên wê li dawiya vê pelê werin zêdekirin.
Naha em nihêrînek li pêvajoyek lûleya daneyê binihêrin.
Derketina fermanekê di têketina fermanek din de tê xwarin. Mîna girêdana lûleyekê bi yekî din re ye
first_command | second_command
: sembola veguhestinê, |
, ji bo şandina encamek fermanek ji fermanek din re tê bikar anîn. Fermana li milê çepê yê avahiya diyarkirî ji çi re dişîne stdout
, Ketin nav stdin
fermana rastê sembola boriyê.
Li Linux-ê, dane dikarin hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hema hebe. Pir caran tê gotin ku her tişt di Linux de boriyek e.
Hûn dikarin bi karanîna sembola lûleyê gelek fermanan zencîre bikin. Ev wisa xuya dike:
first_command | second_command | third_command
Xetek ji çend fermanan dikare bi boriyek re were berhev kirin
Bala xwe bidinê ku dema ku emrê çepê sembolê |
, tiştek derdixe stdout
, tiştê ku ew derdixe tavilê wekî peyda dibe stdin
tîma duyemîn. Ango, derdikeve holê ku, bi karanîna boriyê, em bi pêkanîna paralel a fermanan re mijûl dibin. Carinan ev dibe sedema encamên nediyar. Agahiyên li ser vê yekê dikarin bixwînin
Naha em li ser xwendina daneya pelan û nîşandana wan li ser ekranê biaxivin.
▍Reading files
head my_file
: rêzikên ji destpêka dosyayê dixwîne û li ser ekranê çap dike. Hûn dikarin ne tenê naveroka pelan bixwînin, lê di heman demê de emrên ku tê de derdikevin jî bixwînin stdin
bikaranîna vê fermanê wekî beşek ji boriyê.
tail my_file
: rêzikên ji dawiya pelê dixwîne. Ev ferman dikare di lûleyekê de jî were bikar anîn.
Serê (serê) li pêş, û dûvikê (dûv) li paş e
Heke hûn bi daneyan re bi karanîna pirtûkxaneya pandas re dixebitin, wê hingê emrê head
и tail
divê ji we re nas be. Ger ne wusa be, li jimareya jorîn binêre, û hûn ê bi hêsanî wan bi bîr bînin.
Rêbazên din ên xwendina pelan binihêrin, werin em li ser fermanê biaxivin cat
.
tîma cat
an naveroka pelê li ser ekranê çap dike, an jî gelek pelan li hev dike. Ew bi çend pelan ve girêdayî ye ku dema ku tê gotin ji vê fermanê re derbas dibin.
fermana pisîkê
cat my_one_file.txt
: gava yek pelek ji vê fermanê re derbas dibe, ew jê derdixe stdout
.
Ger hûn du pelan an bêtir pelan bidin wê, wê hingê ew cûda tevdigere.
cat my_file1.txt my_file2.txt
: Piştî çend pelan wekî têketinê wergirtin, vê fermanê naveroka wan bi hev ve girêdide û tiştê ku tê de qewimî nîşan dide stdout
.
Ger hewce bike ku encama pevgirêdana pelan wekî pelek nû were hilanîn, hûn dikarin operatorê bikar bînin >
:
cat my_file1.txt my_file2.txt > my_new_file.txt
Naha em biaxivin ka meriv çawa pelan jêbirin û pêvajoyan rawestîne.
▍Jêbirina pelan, rawestandina pêvajoyan
rm my_file
: pelê jêbirin my_file
.
rm -r my_folder
: peldankekê jê dike my_folder
û hemî pel û peldankên ku tê de hene. Al -r
nîşan dide ku ferman dê di moda vegerê de bixebite.
Ji bo ku pergal her carê ku pel an peldankek tê jêbirin, erêkirinê nepirse, ala bikar bînin -f
.
kill 012345
: Pêvajoya xebitandinê ya diyarkirî disekine, wextê dide ku bi dilovanî were girtin.
kill -9 012345
: Pêvajoya xebitandinê ya diyarkirî bi zorê diqedîne. View Flag -s SIGKILL
wateya heman alê ye -9
.
▍Search
Ji bo lêgerîna daneyan hûn dikarin fermanên cûda bikar bînin. Gelek rindik - grep
, ag
и ack
. Werin em bi van fermanan re dest bi nasîna xwe bikin grep
. Ev fermanek dem-ceribandin, pêbawer e, ku, lêbelê, ji yên din hêdîtir e û ne ew qas hêsan e ku meriv bikar bîne.
fermana grep
grep my_regex my_file
: digere my_regex
в my_file
. Ger maçeke were dîtin, ji bo her maçê tevahiya string tê vegerandin. Destçûnî my_regex
wekî îfadeyek bi rêkûpêk tê hesibandin.
grep -i my_regex my_file
: Lêgerîn bi şêweyekî nehesasiyet tê kirin.
grep -v my_regex my_file
: hemî rêzikên ku tê de ne vedigerîne my_regex
. Al -v
tê wateya berovajîkirinê, dişibe operatorê NOT
, di gelek zimanên bernamesaziyê de tê dîtin.
grep -c my_regex my_file
: Agahdariya li ser hejmara hevberdanê ji bo nimûneya lêgerînkirî ya di pelê de hatî dîtin vedigerîne.
grep -R my_regex my_folder
: di hemî pelên ku di peldanka diyarkirî de û di peldankên ku tê de nehêlandî ne, lêgerînek vegerî dike.
Niha em li ser tîmê biaxivin ag
. Ew paşê hat grep
, ew zûtir e, ew hêsantir e ku meriv pê re bixebite.
fermana ag
ag my_regex my_file
: agahdariya li ser jimareyên rêzan, û xetên bixwe, ku tê de hevhev hatine dîtin vedigerîne my_regex
.
ag -i my_regex my_file
: Lêgerîn bi şêweyekî nehesasiyet tê kirin.
tîma ag
bixweber pelê pêvajoyê bike .gitignore
û tiştên ku di peldank an pelên ku di wê pelê de hatine tomar kirin ji derketinê derdixe. Pir rehet e.
ag my_regex my_file -- skip-vcs-ignores
: naveroka pelên kontrolkirina guhertoya otomatîkî (wek .gitignore
) di lêgerînê de nayê hesibandin.
Ji bilî vê, ji bo ku tîmek re bêjin ag
li ser kîjan rêyên pelê hûn dixwazin ji lêgerînê derxînin, hûn dikarin pelek biafirînin .agignore
.
Di destpêka vê beşê de me behsa fermanê kir ack
. Teams ack
и ag
pir dişibin hev, em dikarin bibêjin ku ew %99 bi hev veguhêzin in. Lêbelê, tîm ag
zûtir dixebite, ji ber vê yekê min diyar kir.
Niha em behsa xebata bi arşîvan re bikin.
▍Arşîvkirin
tar my_source_directory
: pelan ji peldankekê li hev dike my_source_directory
nav pelek yek tarball. Pelên weha ji bo veguheztina pelên mezin ji kesek re bikêr in.
fermana tar
Pelên tarball ên ku ji hêla vê fermanê ve têne çêkirin pelên bi dirêjkirinê ne .tar
(Arşîva kasetê). Rastiya ku peyva "tape" (tape) di navê fermanê de û di dirêjkirina navên pelên ku ew diafirîne de veşartiye, diyar dike ku ev ferman çiqas dirêj e.
tar -cf my_file.tar my_source_directory
: dosyayek tarball bi navê xwe çêdike my_file.tar
bi naveroka peldankê my_source_directory
. Al -c
tê wateya "afirandin" (afirandin), û ala -f
wek "pel" (pel).
Ji bo derxistina pelan ji .tar
-pelê, emrê bikar bînin tar
bi alayan -x
("derxistin", derxistin) û -f
("pel", pel).
tar -xf my_file.tar
: pelan jê derdixe my_file.tar
li pelrêça xebatê ya heyî.
Naha em biaxivin ka meriv çawa çawa biqelînin û jêbirin .tar
-pelên.
tar -cfz my_file.tar.gz my_source_directory
: li vir ala bi kar tînin -z
("zip", algorîtmaya kompresyonê) destnîşan dike ku divê algorîtma ji bo berhevkirina pelan were bikar anîn gzip
(GNUzip). Tevlihevkirina pelan dema ku pelên weha hilîne cîhê dîskê xilas dike. Ger pel hatine plansaz kirin, mînakî, ku ji bikarhênerên din re werin veguheztin, ev yek dibe alîkar ku pelên weha zûtir dakêşin.
Pelê vekin .tar.gz
hûn dikarin alekê lê zêde bikin -z
ji bo fermana naveroka derxistinê .tar
-pelên, ku me li jor behs kir. Ev wisa xuya dike:
tar -xfz my_file.tar.gz
Divê bê zanîn ku tîm tar
Gelek alayên bikêrtir hene.
Navên Bash
Navnavên Bash (ku jê re navnav an kurtkirin jî tê gotin) ji bo afirandina navên kurtkirî yên fermanan an rêzikên wan têne sêwirandin, ku karanîna wan li şûna fermanên birêkûpêk kar lez dike. Ger navekî we hebe bu
, ku emrê veşêre python setup.py sdist bdist_wheel
, wê demê ji bo gazîkirina vê fermanê, bes e ku meriv vê nasnav bikar bîne.
Ji bo afirandina navekî weha, tenê emrê jêrîn li pelê zêde bikin ~/.bash_profile
:
alias bu="python setup.py sdist bdist_wheel"
Heke pelê pergala we tune ~/.bash_profile
, wê hingê hûn dikarin wê bi xwe bi karanîna fermanê biafirînin touch
. Piştî afirandina navnavê, termînalê ji nû ve bidin destpêkirin, piştî ku hûn dikarin vê nasnav bikar bînin. Di vê rewşê de, ketina du tîpan li şûna têketina ji sê dehan zêdetir tîpên fermanê digire, ku ji bo
В ~/.bash_profile
hûn dikarin ji bo her fermanên ku pir caran têne bikar anîn navdêran lê zêde bikin.
▍Encam
Di vê postê de, me 21 fermanên Bash-ê yên populer vegirtiye û li ser afirandina navên fermanan axivîn. Heke hûn bi vê mijarê re eleqedar dibin -
Xwendevanên delal! Ma hûn ê kîjan emrên ku ji bo destpêkan bikêr in li yên ku di vê gotarê de hatine nîqaş kirin zêde bikin?
→
Source: www.habr.com