[navdêr] Bash ji bo destpêk: 21 fermanên bikêr

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.

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr

Di heman demê de di bloga me de rêzek weşanên li ser nivîsarên bash bixwînin

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.

Unix Pergalek xebitandinê ya populer e ku di salên 1970-an de ji hêla Bell Labs ve hatî pêşve xistin. Koda wê hate girtin.

Linux pergala xebatê ya herî populer a Unix-ê ye. Niha li ser gelek cîhazan, di nav de komputeran de, tê bikar anîn.

termînalê de (termînalê), an emulatora termînalê bernameyek e ku bigihîje pergala xebitandinê. Hûn dikarin gelek pencereyên termînalê di heman demê de vekirî bin.

Shell (şêl) bernameyek e ku dihêle hûn fermanên ku bi zimanekî taybetî hatine nivîsandin ji pergala xebitandinê re bişînin.

Bash ji bo Bourne Again Shell radiweste. Ew zimanê şêlê herî gelemperî ye ku ji bo têkiliya bi pergala xebitandinê re tê bikar anîn. Di heman demê de, şêlê Bash li macOS-ê xwerû ye.

Navrûya rêza fermanê (Command Line Interface, CLI) rêbazek danûstendina di navbera kesek û kompîturê de ye, ku bikarhêner fermanan ji klavyeyê digire, û kompîtur bi pêkanîna van fermanan, peyaman di forma nivîsê de ji bikarhêner re nîşan dide. Bikaranîna sereke ya CLI-ê ew e ku agahdariya nûjen li ser hin saziyan, wek pelan, û bi pelan re bixebite. Navbera rêza fermanê divê ji navrûya bikarhênerê ya grafîkî (GUI), ku di serî de mişk bikar tîne, were cûda kirin. Navbera rêza fermanê bi gelemperî wekî rêzika fermanê tê binav kirin.

Nivîs (skrîpt) bernameyek piçûk e ku rêzek fermanên şêlê vedihewîne. Skrîpt li ser pelan têne nivîsandin, ew dikarin çend caran werin bikar anîn. Dema ku nivîsan dinivîsin, hûn dikarin guhêrbar, şert, loop, fonksiyon û taybetmendiyên din bikar bînin.

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 rûbar, ya ku em ê li vir bikar bînin têketina standard e (ketina 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îkirin stdin.
  • >: beralîkirin stdout.
  • |: 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î ../.

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr
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 mvdikare 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
cp my_source_file target_directory
: kopiyek pelê çêbike my_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.

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr
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

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr
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 vir.

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 stdinbikaranî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.

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr
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.

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr
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.

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr
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.

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr
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.

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr
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 civîn Pakêtên Python.

В ~/.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 - Va ye rêze weşanên ku ji Bash re hatine veqetandin. Ev e Hûn dikarin guhertoyek pdf ya van weşanan bibînin. Di heman demê de, heke hûn dixwazin Bash fêr bibin, ji bîr mekin ku, wekî her pergalek bernamesaziyê ya din, pratîk girîng e.

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?

Di heman demê de di bloga me de rêzek weşanên li ser nivîsarên bash bixwînin

[navdêr] Bash ji bo destpêk: 21 fermanên bikêr

Source: www.habr.com

Add a comment