[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu

Nyenzo, tafsiri ambayo tunachapisha leo, imekusudiwa wale wanaotaka kujua mstari wa amri ya Linux. Uwezo wa kutumia chombo hiki kwa ufanisi unaweza kuokoa muda mwingi. Hasa, tutazungumza juu ya ganda la Bash na amri 21 muhimu hapa. Pia tutazungumza juu ya jinsi ya kutumia bendera za amri na lakabu za Bash ili kuharakisha uchapaji wa maagizo marefu.

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu

Pia soma kwenye blogi yetu safu ya machapisho kuhusu maandishi ya bash

Masharti

Unapojifunza kufanya kazi na mstari wa amri wa Linux, utakutana na dhana nyingi ambazo zinafaa kuzunguka. Baadhi yao, kama "Linux" na "Unix", au "ganda" na "terminal", wakati mwingine huchanganyikiwa. Hebu tuzungumze kuhusu maneno haya na mengine muhimu.

Unix ni mfumo wa uendeshaji maarufu ambao ulitengenezwa na Bell Labs katika miaka ya 1970. Msimbo wake ulifungwa.

Linux ndio mfumo endeshi maarufu zaidi wa Unix. Sasa inatumika kwenye vifaa vingi, ikiwa ni pamoja na kompyuta.

Terminal (terminal), au emulator terminal ni programu ambayo inatoa upatikanaji wa mfumo wa uendeshaji. Unaweza kuwa na madirisha mengi ya terminal kufunguliwa kwa wakati mmoja.

Shell (shell) ni programu inayokuwezesha kutuma amri zilizoandikwa kwa lugha maalum kwa mfumo wa uendeshaji.

Bash inasimama kwa Bourne Again Shell. Ni lugha ya kawaida ya shell inayotumiwa kuingiliana na mfumo wa uendeshaji. Pia, ganda la Bash ndio chaguo msingi kwenye macOS.

Kiolesura cha mstari wa amri (Command Line Interface, CLI) ni njia ya mwingiliano kati ya mtu na kompyuta, kwa kutumia ambayo mtumiaji huingiza amri kutoka kwa kibodi, na kompyuta, kutekeleza amri hizi, inaonyesha ujumbe kwa fomu ya maandishi kwa mtumiaji. Matumizi kuu ya CLI ni kupata taarifa za kisasa kuhusu vyombo fulani, kama vile faili, na kufanya kazi na faili. Kiolesura cha mstari wa amri kinapaswa kutofautishwa na kiolesura cha picha cha mtumiaji (GUI), ambacho kimsingi hutumia kipanya. Kiolesura cha mstari wa amri mara nyingi hujulikana kama mstari wa amri.

Hati (script) ni programu ndogo ambayo ina mlolongo wa amri za shell. Maandishi yameandikwa kwa faili, zinaweza kutumika mara kwa mara. Wakati wa kuandika maandishi, unaweza kutumia vigezo, masharti, vitanzi, vitendaji, na vipengele vingine.

Sasa kwa kuwa tumeshughulikia masharti muhimu, nataka kuashiria kwamba nitatumia maneno "Bash", "ganda" na "mstari wa amri" kwa kubadilishana hapa, na vile vile maneno "saraka" na "folda".

Kiwango vijito, ambayo tutatumia hapa ni pembejeo ya kawaida (ingizo la kawaida, stdin), pato la kawaida (matokeo ya kawaida, stdout) na pato la kawaida la makosa (kosa la kawaida, stderr).

Ikiwa katika amri za mfano ambazo zitatolewa hapa chini, utapata kitu kama my_whatever - hii ina maana kwamba kipande hiki kinahitaji kubadilishwa na kitu chako. Kwa mfano, jina la faili.

Sasa, kabla ya kuendelea na uchambuzi wa amri ambazo nyenzo hii imejitolea, hebu tuangalie orodha yao na maelezo yao mafupi.

21 Amri za Bash

▍Kupata taarifa

  • man: Inaonyesha mwongozo wa mtumiaji (msaada) kwa amri.
  • pwd: inaonyesha habari kuhusu saraka ya kufanya kazi.
  • ls: huonyesha yaliyomo kwenye saraka.
  • ps: Hukuruhusu kuona taarifa kuhusu kuendesha michakato.

▍Udanganyifu wa mfumo wa faili

  • cd: badilisha saraka ya kufanya kazi.
  • touch: tengeneza faili.
  • mkdir: tengeneza saraka.
  • cp: Nakili faili.
  • mv: Hamisha au futa faili.
  • ln: tengeneza kiungo.

▍ Uelekezaji kwingine wa I/O na mabomba

  • <:elekeza kwingine stdin.
  • >:elekeza kwingine stdout.
  • |: bomba matokeo ya amri moja kwa ingizo la amri nyingine.

▍Kusoma faili

  • head: soma mwanzo wa faili.
  • tail: soma mwisho wa faili.
  • cat: Soma faili na uchapishe yaliyomo kwenye skrini, au unganisha faili.

▍Kufuta faili, kusimamisha michakato

  • rm: Futa faili.
  • kill: kusimamisha mchakato.

▍Tafuta

  • grep: tafuta habari.
  • ag: amri ya juu ya kutafuta.

▍Kuhifadhi kwenye kumbukumbu

  • tar: kuunda kumbukumbu na kufanya kazi nazo.

Hebu tuzungumze kuhusu amri hizi kwa undani zaidi.

Maelezo ya Timu

Kuanza, hebu tushughulike na amri, matokeo ambayo hutolewa kwa fomu stdout. Kawaida matokeo haya huonekana kwenye dirisha la terminal.

▍Kupata taarifa

man command_name: onyesha mwongozo wa amri, i.e. habari ya usaidizi.

pwd: onyesha njia ya saraka ya sasa ya kufanya kazi. Wakati wa kufanya kazi na mstari wa amri, mtumiaji mara nyingi anahitaji kujua ni wapi hasa katika mfumo.

ls: onyesha yaliyomo kwenye saraka. Amri hii pia hutumiwa mara nyingi.

ls -a: onyesha faili zilizofichwa. bendera inatumika hapa -a timu ls. Matumizi ya bendera husaidia kubinafsisha tabia ya amri.

ls -l: Onyesha maelezo ya kina kuhusu faili.

Kumbuka kuwa bendera zinaweza kuunganishwa. Kwa mfano - kama hii: ls -al.

ps: Tazama michakato inayoendesha.

ps -e: Onyesha habari kuhusu michakato yote inayoendeshwa, sio tu ile inayohusishwa na ganda la sasa la mtumiaji. Amri hii mara nyingi hutumiwa katika fomu hii.

▍Udanganyifu wa mfumo wa faili

cd my_directory: badilisha saraka ya kufanya kazi kuwa my_directory. Ili kusonga ngazi moja kwenye mti wa saraka, tumia my_directory njia ya jamaa ../.

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu
amri ya cd

touch my_file: kuunda faili my_file kando ya njia uliyopewa.

mkdir my_directory: tengeneza folda my_directory kando ya njia uliyopewa.

mv my_file target_directory:hamisha faili my_file kwa folda target_directory. Wakati wa kutaja saraka inayolengwa, unahitaji kutumia njia kamili kwake (na sio ujenzi kama ../).

timu mvpia inaweza kutumika kubadili jina la faili au folda. Kwa mfano, inaweza kuonekana kama hii:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: unda nakala ya faili my_source_file na kuiweka kwenye folda target_directory.

ln -s my_source_file my_target_file: tengeneza kiungo cha mfano my_target_file kwa faili my_source_file. Ukibadilisha kiungo, faili asili pia itabadilika.

Ikiwa faili my_source_file itafutwa, basi my_target_file itabaki. Bendera -s timu ln hukuruhusu kuunda viungo vya saraka.

Sasa hebu tuzungumze kuhusu uelekezaji upya wa I/O na mabomba.

▍ Uelekezaji kwingine wa I/O na mabomba

my_command < my_file: inachukua nafasi ya maelezo ya faili ya pembejeo ya kawaida (stdin) kwa faili my_file. Hii inaweza kuwa na manufaa ikiwa amri inasubiri pembejeo fulani kutoka kwa kibodi, na data hii tayari imehifadhiwa kwenye faili.

my_command > my_file: inaelekeza matokeo ya amri, i.e. ni nini kawaida huingia stdout na pato kwa skrini, kwa faili my_file. Ikiwa faili my_file haipo - imeundwa. Ikiwa faili iko, imeandikwa tena.

Kwa mfano, baada ya kutekeleza amri ls > my_folder_contents.txt faili ya maandishi itaundwa iliyo na orodha ya kile kilicho kwenye saraka ya sasa ya kufanya kazi.

Ikiwa badala ya ishara > tumia ujenzi >>, basi, mradi faili ambayo matokeo ya amri yanaelekezwa upya ipo, faili hii haitaandikwa tena. Data itaongezwa hadi mwisho wa faili hii.

Sasa hebu tuangalie usindikaji wa bomba la data.

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu
Matokeo ya amri moja yanalishwa kwenye pembejeo ya amri nyingine. Ni kama kuunganisha bomba moja hadi lingine

first_command | second_command: ishara ya conveyor, |, hutumiwa kutuma matokeo ya amri moja kwa amri nyingine. Amri ya upande wa kushoto wa muundo ulioelezewa hutuma nini stdout, Kuanguka ndani stdin amri upande wa kulia wa ishara ya bomba.

Kwenye Linux, data inaweza kuwekwa bomba kwa kutumia takriban amri yoyote iliyoundwa vizuri. Inasemekana mara nyingi kuwa kila kitu kwenye Linux ni bomba.

Unaweza kufunga amri nyingi kwa kutumia ishara ya bomba. Inaonekana kama hii:

first_command | second_command | third_command

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu
Bomba la amri kadhaa linaweza kulinganishwa na bomba

Kumbuka kwamba wakati amri ya kushoto ya ishara |, hutoa kitu kwa stdout, kile anachotoa kinapatikana mara moja kama stdin timu ya pili. Hiyo ni, zinageuka kuwa, kwa kutumia bomba, tunashughulika na utekelezaji sambamba wa amri. Wakati mwingine hii inaweza kusababisha matokeo yasiyotarajiwa. Maelezo kuhusu hili yanaweza kusomwa hapa.

Sasa hebu tuzungumze juu ya kusoma data kutoka kwa faili na kuzionyesha kwenye skrini.

▍Kusoma faili

head my_file: husoma mistari kutoka mwanzo wa faili na kuichapisha kwenye skrini. Unaweza kusoma sio tu yaliyomo kwenye faili, lakini pia ni nini amri zinazotolewa stdinkutumia amri hii kama sehemu ya bomba.

tail my_file: inasoma mistari kutoka mwisho wa faili. Amri hii pia inaweza kutumika katika bomba.

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu
Kichwa (kichwa) ni mbele, na mkia (mkia) ni nyuma

Ikiwa unafanya kazi na data kwa kutumia maktaba ya pandas, basi amri head и tail inapaswa kufahamika kwako. Ikiwa sio hivyo, angalia takwimu hapo juu, na utawakumbuka kwa urahisi.

Fikiria njia zingine za kusoma faili, hebu tuzungumze juu ya amri cat.

Timu cat ama huchapisha yaliyomo kwenye faili kwenye skrini, au kuunganisha faili nyingi. Inategemea ni faili ngapi hupitishwa kwa amri hii inapoitwa.

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu
amri ya paka

cat my_one_file.txt: faili moja inapopitishwa kwa amri hii, inaitoa stdout.

Ikiwa utaipa faili mbili au faili zaidi, basi inafanya kazi tofauti.

cat my_file1.txt my_file2.txt: baada ya kupokea faili kadhaa kama ingizo, amri hii inaambatanisha yaliyomo na kuonyesha kile kilichotokea stdout.

Ikiwa matokeo ya muunganisho wa faili yanahitaji kuhifadhiwa kama faili mpya, unaweza kutumia opereta >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Sasa hebu tuzungumze kuhusu jinsi ya kufuta faili na kuacha taratibu.

▍Kufuta faili, kusimamisha michakato

rm my_file: futa faili my_file.

rm -r my_folder: hufuta folda my_folder na faili na folda zote zilizomo. Bendera -r inaonyesha kuwa amri itaendesha katika hali ya kujirudia.

Ili kuzuia mfumo kuomba uthibitisho kila wakati faili au folda inapofutwa, tumia bendera -f.

kill 012345: Husimamisha mchakato uliobainishwa wa uendeshaji, na kuupa muda wa kuzima kwa uzuri.

kill -9 012345: Husitisha kwa lazima mchakato uliobainishwa wa uendeshaji. Tazama Bendera -s SIGKILL maana yake ni sawa na bendera -9.

▍Tafuta

Unaweza kutumia amri tofauti kutafuta data. Hasa - grep, ag и ack. Wacha tuanze kufahamiana na amri hizi na grep. Hii ni amri iliyojaribiwa kwa wakati, ya kuaminika, ambayo, hata hivyo, ni polepole kuliko wengine na sio rahisi kutumia kama ilivyo.

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu
amri ya grep

grep my_regex my_file: utafutaji my_regex в my_file. Ikiwa mechi itapatikana, kamba nzima inarudishwa, kwa kila mechi. Chaguomsingi my_regex kutibiwa kama usemi wa kawaida.

grep -i my_regex my_file: Utafutaji unafanywa kwa njia isiyojali kesi.

grep -v my_regex my_file: hurejesha safu mlalo zote ambazo hazina my_regex. Bendera -v inamaanisha inversion, inafanana na operator NOT, hupatikana katika lugha nyingi za programu.

grep -c my_regex my_file: Hurejesha maelezo kuhusu idadi ya zinazolingana zinazopatikana katika faili kwa muundo wa utafutaji.

grep -R my_regex my_folder: hufanya utafutaji wa kujirudia katika faili zote zilizo kwenye folda maalum na kwenye folda zilizowekwa ndani yake.

Sasa hebu tuzungumze kuhusu timu ag. Alikuja baadaye grep, ni haraka, ni rahisi zaidi kufanya kazi nayo.

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu
amri ya ag

ag my_regex my_file: inarudi habari kuhusu nambari za mstari, na mistari yenyewe, ambayo mechi zilipatikana my_regex.

ag -i my_regex my_file: Utafutaji unafanywa kwa njia isiyojali kesi.

Timu ag kusindika faili kiotomatiki .gitignore na haijumuishi kutoka kwa matokeo kile kinachopatikana kwenye folda au faili zilizoorodheshwa kwenye faili hiyo. Ni vizuri sana.

ag my_regex my_file -- skip-vcs-ignores: yaliyomo kwenye faili za udhibiti wa toleo la kiotomatiki (kama .gitignore) haijazingatiwa katika utafutaji.

Kwa kuongeza, ili kuwaambia timu ag kwenye njia za faili ambazo unataka kuwatenga kutoka kwa utaftaji, unaweza kuunda faili .agignore.

Mwanzoni mwa sehemu hii, tulitaja amri ack. Timu ack и ag zinafanana sana, tunaweza kusema kwamba zinaweza kubadilishana kwa 99%. Hata hivyo, timu ag inafanya kazi haraka, ndio maana niliielezea.

Sasa hebu tuzungumze juu ya kufanya kazi na kumbukumbu.

▍Kuhifadhi kwenye kumbukumbu

tar my_source_directory: huunganisha faili kutoka kwa folda my_source_directory kwenye faili moja ya tarball. Faili kama hizo ni muhimu kwa kuhamisha seti kubwa za faili kwa mtu.

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu
amri ya lami

Faili za tarball zinazozalishwa na amri hii ni faili zilizo na kiendelezi .tar (Tape ARchive). Ukweli kwamba neno "mkanda" (mkanda) limefichwa kwa jina la amri na katika upanuzi wa majina ya faili zinazojenga zinaonyesha muda gani amri hii imekuwepo.

tar -cf my_file.tar my_source_directory: huunda faili ya tarball iliyopewa jina my_file.tar na yaliyomo kwenye folda my_source_directory. Bendera -c inasimama kwa "kuunda" (uumbaji), na bendera -f kama "faili" (faili).

Ili kutoa faili kutoka .tar-file, tumia amri tar na bendera -x ("dondoo", uchimbaji) na -f ("faili", faili).

tar -xf my_file.tar: hutoa faili kutoka my_file.tar kwa saraka ya sasa ya kufanya kazi.

Sasa hebu tuzungumze kuhusu jinsi ya compress na decompress .tar-mafaili.

tar -cfz my_file.tar.gz my_source_directory: hapa kwa kutumia bendera -z ("zip", compression algorithm) inaonyesha kwamba algorithm inapaswa kutumika kubana faili gzip (GNUzip). Ukandamizaji wa faili huokoa nafasi ya diski wakati wa kuhifadhi faili kama hizo. Ikiwa faili zimepangwa, kwa mfano, kuhamishiwa kwa watumiaji wengine, hii inachangia upakuaji wa haraka wa faili kama hizo.

Fungua faili .tar.gz unaweza kuongeza bendera -z kwa amri ya maudhui ya dondoo .tar-faili, ambazo tulijadili hapo juu. Inaonekana kama hii:

tar -xfz my_file.tar.gz
Ikumbukwe kwamba timu tar Kuna bendera nyingi muhimu zaidi.

Majina ya utani ya Bash

Lakabu za Bash (pia huitwa pak au vifupisho) zimeundwa ili kuunda majina mafupi ya amri au mlolongo wao, matumizi ambayo badala ya amri za kawaida huharakisha kazi. Ikiwa una alias bu, ambayo inaficha amri python setup.py sdist bdist_wheel, kisha kuita amri hii, inatosha kutumia lakabu hii.

Ili kuunda lakabu kama hiyo, ongeza tu amri ifuatayo kwenye faili ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Ikiwa mfumo wako hauna faili ~/.bash_profile, basi unaweza kuunda mwenyewe kwa kutumia amri touch. Baada ya kuunda alias, fungua upya terminal, baada ya hapo unaweza kutumia jina hili. Katika kesi hii, pembejeo ya herufi mbili inachukua nafasi ya ingizo la herufi zaidi ya dazeni tatu za amri, ambayo imekusudiwa makanisa Vifurushi vya Python.

В ~/.bash_profile unaweza kuongeza lakabu kwa amri zozote zinazotumiwa mara kwa mara.

▍Matokeo

Katika chapisho hili, tumeshughulikia amri 21 maarufu za Bash na tukazungumza juu ya kuunda lakabu za amri. Ikiwa una nia ya mada hii - tazama mfululizo wa machapisho yaliyotolewa kwa Bash. Hapa Unaweza kupata toleo la pdf la machapisho haya. Pia, ikiwa unataka kujifunza Bash, kumbuka kuwa, kama ilivyo kwa mfumo mwingine wowote wa programu, mazoezi ni muhimu.

Ndugu wasomaji! Je, ni amri gani ambazo ni muhimu kwa wanaoanza unaweza kuongeza kwa zile ambazo zilijadiliwa katika makala hii?

Pia soma kwenye blogi yetu safu ya machapisho kuhusu maandishi ya bash

[imewekwa alama] Bash kwa wanaoanza: amri 21 muhimu

Chanzo: mapenzi.com

Kuongeza maoni