[bookmarked] Bash maka ndị mbido: iwu 21 bara uru

Ihe a, ntụgharị nke anyị na-ebipụta taa, bụ maka ndị chọrọ ịmara ahịrị iwu Linux. Ikike iji ngwá ọrụ a mee ihe nke ọma nwere ike ịzọpụta oge dị ukwuu. Karịsịa, anyị ga-ekwu maka Bash shell na iwu bara uru 21 ebe a. Anyị ga-ekwukwa maka otu esi eji ọkọlọtọ iwu na aliases Bash iji mee ka akara ntuziaka dị ogologo dị ngwa.

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru

Gụkwaa na blọọgụ anyị usoro mbipụta gbasara scripts bash

Okwu

Ka ị na-amụta ịrụ ọrụ na ahịrị iwu Linux, ị ga-ezute ọtụtụ echiche ndị na-enyere aka ịnyagharịa. Ụfọdụ n'ime ha, dị ka "Linux" na "Unix", ma ọ bụ "shell" na "terminal", na-enwe mgbagwoju anya mgbe ụfọdụ. Ka anyị kwuo maka okwu ndị a na okwu ndị ọzọ dị mkpa.

Unix bụ sistemụ arụmọrụ ama ama nke Bell Labs mepụtara na 1970s. E mechiri koodu ya.

Linux bụ sistemụ arụmọrụ dịka Unix kacha ewu ewu. A na-eji ya ugbu a n'ọtụtụ ngwaọrụ, gụnyere kọmputa.

ọnụ (terminal), ma ọ bụ emulator terminal bụ mmemme na-enye ohere ịnweta sistemụ arụmọrụ. Ị nwere ike imeghe ọtụtụ windo ọnụ ọnụ n'otu oge.

Akara (shell) bụ mmemme na-enye gị ohere izipu iwu edere n'asụsụ pụrụ iche na sistemụ arụmọrụ.

kụọ na-anọchi anya Bourne Again Shell. Ọ bụ asụsụ shei a na-ejikarị emekọrịta ihe na sistemụ arụmọrụ. Ọzọkwa, Bash shei bụ ndabara na macOS.

interface ahịrị iwu (Command Line Interface, CLI) bụ usoro mmekọrịta n'etiti mmadụ na kọmputa, mgbe ọ na-eji nke onye ọrụ na-abanye iwu site na keyboard, na kọmputa, na-emezu iwu ndị a, na-egosiputa ozi n'ụdị ederede maka onye ọrụ. A na-ejikarị CLI iji nweta ozi ọhụụ gbasara ụfọdụ ụlọ ọrụ, dịka ọmụmaatụ, gbasara faịlụ, yana iji faịlụ rụọ ọrụ. Ekwesịrị ịpụta ọdịiche ahịrị ahịrị iwu na interface onye ọrụ eserese (GUI), nke na-ejikarị òké. A na-akpọkarị interface ahịrị iwu naanị dị ka ahịrị iwu.

Ederede (script) bụ obere mmemme nwere usoro iwu shei. Edere scripts na faịlụ, enwere ike iji ha mee ihe ugboro ugboro. Mgbe ị na-ede edemede, ị nwere ike iji mgbanwe, ọnọdụ, loops, ọrụ na atụmatụ ndị ọzọ.

Ugbu a anyị kpuchiri okwu ndị dị mkpa, achọrọ m igosi na m ga-eji okwu "Bash", "shell" na "akara iwu" na-agbanwe agbanwe ebe a, yana okwu "akwụkwọ ndekọ" na "folda".

Ụdị iyi, nke anyị ga-eji ebe a bụ ntinye ọkọlọtọ (ntinye ọkọlọtọ, stdin), ọkọlọtọ mmepụta (ọkọlọtọ mmepụta, stdout) na mmepụta njehie ọkọlọtọ (njehie ọkọlọtọ, stderr).

Ọ bụrụ na iwu ihe atụ nke a ga-enye n'okpuru, ị ga-ahụ ihe dị ka my_whatever - nke a pụtara na ekwesịrị iji ihe nke gị dochie iberibe a. Dịka ọmụmaatụ, aha faịlụ.

Ugbu a, tupu ịga n'ihu na nyocha nke iwu ndị a raara nye ihe a, ka anyị leba anya na ndepụta ha na nkọwa dị nkenke ha.

21 Bash nyere iwu

▍ Inweta ozi

  • man: Na-egosiputa ntuziaka onye ọrụ (enyemaka) maka iwu ahụ.
  • pwd: na-egosiputa ozi gbasara ndekọ ọrụ.
  • ls: na-egosiputa ọdịnaya nke ndekọ.
  • ps: Na-enye gị ohere ịlele ozi gbasara usoro ịgba ọsọ.

▍ Usoro nhazi faịlụ

  • cd: gbanwee akwụkwọ ndekọ aha.
  • touch: mepụta faịlụ.
  • mkdir: mepụta ndekọ.
  • cp: Detuo faịlụ.
  • mv: Bugharịa ma ọ bụ hichapụ faịlụ.
  • ln: mepụta njikọ.

▍ I/O redirection na pipeline

  • <: redirect stdin.
  • >: redirect stdout.
  • |: piped mmepụta nke otu iwu na ntinye nke iwu ọzọ.

▍ Ịgụ faịlụ

  • head: gụọ mmalite nke faịlụ.
  • tail: gụọ njedebe faịlụ.
  • cat: Gụọ faịlụ wee bipụta ọdịnaya ya na ihuenyo, ma ọ bụ jikọta faịlụ.

▍Ihichapụ faịlụ, ịkwụsị usoro

  • rm: Hichapụ faịlụ.
  • kill: kwụsị usoro.

▍Chọọ

  • grep: chọọ ozi.
  • ag: elu iwu maka ịchọ.

▍ Ịdebe akwụkwọ

  • tar: ịmepụta ebe nchekwa ma soro ha rụọ ọrụ.

Ka anyị kwuo maka iwu ndị a n'ụzọ zuru ezu karị.

Nkọwa otu

Iji malite, ka anyị leba anya na iwu, nke a na-enye nsonaazụ ya n'ụdị stdout. Ọtụtụ mgbe, nsonaazụ ndị a na-apụta na windo ọnụ.

▍ Inweta ozi

man command_name: gosi ntuziaka ntuziaka, ya bụ ozi enyemaka.

pwd: gosi ụzọ na ndekọ na-arụ ọrụ ugbu a. N'ịrụ ọrụ na ahịrị iwu, onye ọrụ na-achọkarị ịchọpụta kpọmkwem ebe ọ nọ na sistemụ ahụ.

ls: gosi ọdịnaya nke ndekọ. A na-ejikwa iwu a ọtụtụ oge.

ls -a: gosi faịlụ zoro ezo. etinyere ọkọlọtọ ebe a -a otu ls. Ojiji nke ọkọlọtọ na-enyere aka ịhazi omume nke iwu.

ls -l: Gosipụta ozi zuru ezu gbasara faịlụ.

Rịba ama na enwere ike ijikọ ọkọlọtọ. Dịka ọmụmaatụ - dị ka nke a: ls -al.

ps: Lelee usoro na-agba ọsọ.

ps -e: Gosipụta ozi gbasara usoro niile na-agba ọsọ, ọ bụghị naanị ndị metụtara shei onye ọrụ ugbu a. A na-ejikarị iwu a n'ụdị a.

▍ Usoro nhazi faịlụ

cd my_directory: gbanwee akwụkwọ ndekọ aha ka ọ bụrụ my_directory. Iji bulie otu ọkwa n'ime osisi ndekọ aha, jiri my_directory ikwu ụzọ ../.

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru
iwu cd

touch my_file: imepụta faịlụ my_file n'okporo ụzọ enyere.

mkdir my_directory: mepụta nchekwa my_directory n'okporo ụzọ enyere.

mv my_file target_directory: bugharịa faịlụ my_file na folda target_directory. Mgbe ị na-akọwapụta akwụkwọ ndekọ aha, ịkwesịrị iji ụzọ zuru oke na ya (ọ bụghị ihe owuwu dịka ../).

otu mvnwekwara ike iji nyegharịa faịlụ ma ọ bụ nchekwa aha. Dịka ọmụmaatụ, ọ nwere ike ịdị ka nke a:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: mepụta otu faịlụ my_source_file ma tinye ya na nchekwa target_directory.

ln -s my_source_file my_target_file: mepụta njikọ ihe atụ my_target_file kwa faịlụ my_source_file. Ọ bụrụ na ị gbanwee njikọ ahụ, faịlụ mbụ ga-agbanwekwa.

Ọ bụrụ na faịlụ my_source_file ga-ehichapụ, mgbe ahụ my_target_file ga-anọgide. Ọkọlọtọ -s otu ln na-enye gị ohere ịmepụta njikọ maka akwụkwọ ndekọ aha.

Ugbu a, ka anyị kwuo maka ntụgharị I/O na pipeline.

▍ I/O redirection na pipeline

my_command < my_file: dochie ọkọlọtọ ndenye faịlụ nkọwa (stdin) kwa faịlụ my_file. Nke a nwere ike ịba uru ma ọ bụrụ na iwu ahụ na-echere ntinye ụfọdụ site na ahụigodo, echekwara data a na faịlụ.

my_command > my_file: redirects nsonaazụ nke iwu ahụ, ya bụ ihe ga-abanyekarị stdout na mmepụta na ihuenyo, na faịlụ my_file. Ọ bụrụ na faịlụ my_file adịghị adị - e kere ya. Ọ bụrụ na faịlụ ahụ dị, a ga-edegharị ya.

Dịka ọmụmaatụ, mgbe ịmechara iwu ahụ ls > my_folder_contents.txt A ga-emepụta faịlụ ederede nwere ndepụta nke ihe dị na ndekọ ọrụ ugbu a.

Ọ bụrụ na kama akara > jiri ihe owuwu ahụ mee ihe >>, mgbe ahụ, ọ bụrụhaala na faịlụ a na-ebugharị mmepụta nke iwu ahụ dị, agaghị edegharị faịlụ a. A ga-agbakwunye data ahụ na njedebe nke faịlụ a.

Ugbu a, ka anyị leba anya na nhazi pipeline data.

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru
A na-etinye mmepụta nke otu iwu n'ime ntinye nke iwu ọzọ. Ọ dị ka ijikọ otu ọkpọkọ na nke ọzọ

first_command | second_command: akara ebuga, |, a na-eji izipu mmepụta nke otu iwu na iwu ọzọ. Ihe iwu dị n'akụkụ aka ekpe nke usoro a kọwara na-ezigara stdout, Daba n'ime stdin iwu n'aka nri nke akara pipeline.

Na Linux, enwere ike itinye data site na iji naanị iwu ọ bụla edoziri nke ọma. A na-ekwukarị na ihe niile dị na Linux bụ pipeline.

Ị nwere ike yinye ọtụtụ iwu site na iji akara pipeline. Ọ dị ka nke a:

first_command | second_command | third_command

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru
Enwere ike iji pipeline nke ọtụtụ iwu tụnyere pipeline

Mara na mgbe iwu n'aka ekpe nke akara |, na-ewepụta ihe na stdout, ihe ọ na-ewepụta bụ ozugbo dị ka stdin nke abụọ otu. Nke ahụ bụ, ọ na-apụta na, na-eji pipeline, anyị na-eme ihe na-eme ihe n'usoro iwu. Mgbe ụfọdụ nke a nwere ike ibute nsonaazụ a na-atụghị anya ya. Enwere ike ịgụ nkọwa gbasara nke a ebe a.

Ugbu a, ka anyị kwuo maka ịgụ data sitere na faịlụ ma gosipụta ha na ihuenyo.

▍ Ịgụ faịlụ

head my_file: na-agụ ahịrị site na mmalite nke faịlụ wee bipụta ha na ihuenyo. Ị nwere ike ịgụ ọ bụghị naanị ọdịnaya nke faịlụ, kamakwa ihe iwu na-arụpụta stdiniji iwu a dị ka akụkụ nke pipeline.

tail my_file: na-agụ ahịrị site na njedebe nke faịlụ ahụ. Enwere ike iji iwu a na pipeline.

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru
Isi (isi) dị n'ihu, na ọdụ (ọdụ) dị n'azụ

Ọ bụrụ na ị na-arụ ọrụ na data site na iji pandas ọba akwụkwọ, mgbe ahụ iwu head и tail kwesịrị ịma gị. Ọ bụrụ na nke a abụghị ikpe, lelee ọnụ ọgụgụ dị n'elu, ị ga-echetakwa ha ngwa ngwa.

Tụlee ụzọ ndị ọzọ iji gụọ faịlụ, ka anyị kwuo banyere iwu ahụ cat.

otu cat ma na-ebipụta ọdịnaya nke faịlụ na ihuenyo, ma ọ bụ na-ejikọta ọtụtụ faịlụ. Ọ dabere na faịlụ ole agafere na iwu a mgbe akpọrọ ya.

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru
iwu nwamba

cat my_one_file.txt: mgbe otu faịlụ gafere na iwu a, ọ na-ewepụta ya stdout.

Ọ bụrụ na ị nye ya faịlụ abụọ ma ọ bụ karịa faịlụ, mgbe ahụ ọ na-akpa àgwà dị iche iche.

cat my_file1.txt my_file2.txt: ebe anatala ọtụtụ faịlụ dị ka ntinye, iwu a na-ejikọta ọdịnaya ha ma gosipụta ihe mere na ya stdout.

Ọ bụrụ na a ga-echekwa nsonaazụ nke njikọta faịlụ dị ka faịlụ ọhụrụ, ịnwere ike iji onye ọrụ >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Ugbu a, ka anyị kwuo maka otu esi ehichapụ faịlụ ma kwụsị usoro.

▍Ihichapụ faịlụ, ịkwụsị usoro

rm my_file: hichapụ faịlụ my_file.

rm -r my_folder: na-ehichapụ folda my_folder yana faịlụ na nchekwa niile o nwere. Ọkọlọtọ -r na-egosi na iwu ga-agba ọsọ na recursive mode.

Iji gbochie usoro a ịrịọ maka nkwenye oge ọ bụla ehichapụ faịlụ ma ọ bụ nchekwa, jiri ọkọlọtọ -f.

kill 012345: Kwụsị usoro ịgba ọsọ a kapịrị ọnụ, na-enye oge iji mechie ya nke ọma.

kill -9 012345: Na-amanye kwụsị usoro ịgba ọsọ akọwapụtara. Lelee ọkọlọtọ -s SIGKILL pụtara otu ọkọlọtọ -9.

▍Chọọ

Ị nwere ike iji iwu dị iche iche chọọ data. Ọ kachasị - grep, ag и ack. Ka anyị jiri iwu ndị a malite ịmara anyị grep. Nke a bụ iwu a nwalere oge, nke a pụrụ ịdabere na ya, nke, Otú ọ dị, dị nwayọọ karịa ndị ọzọ na ọ bụghị dị mfe iji dị ka ha dị.

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru
iwu grep

grep my_regex my_file: nyocha my_regex в my_file. Ọ bụrụ na achọtara egwuregwu, a ga-eweghachi eriri ahụ dum, maka egwuregwu ọ bụla. Ọdabara my_regex emeso dị ka okwu mgbe niile.

grep -i my_regex my_file: A na-eme ọchụchọ ahụ n'ụzọ na-enweghị isi.

grep -v my_regex my_file: na-eweghachi ahịrị niile na-enweghị my_regex. Ọkọlọtọ -v pụtara ntụgharị, ọ dị ka onye ọrụ NOT, dị n'ọtụtụ asụsụ mmemme.

grep -c my_regex my_file: weghachite ozi gbasara ọnụọgụ egwuregwu maka ụkpụrụ achọtara na faịlụ ahụ.

grep -R my_regex my_folder: na-eme nyocha ugboro ugboro n'ime faịlụ niile dị na folda akọwapụtara yana na nchekwa ndị etinyere na ya.

Ugbu a, ka anyị kwuo banyere otu ag. O mechara bia grep, ọ na-adị ngwa ngwa, ọ dị mfe ịrụ ọrụ na ya.

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru
iwu ag

ag my_regex my_file: laghachi ozi banyere akara nọmba, na ahịrị onwe ha, nke ọkụ hụrụ na my_regex.

ag -i my_regex my_file: A na-eme ọchụchọ ahụ n'ụzọ na-enweghị isi.

otu ag hazie faịlụ na-akpaghị aka .gitignore ma wepụ na mmepụta ihe dị na nchekwa ma ọ bụ faịlụ ndị edepụtara na faịlụ ahụ. Ọ dị mma nke ukwuu.

ag my_regex my_file -- skip-vcs-ignores: ọdịnaya nke faịlụ njikwa ụdị akpaka (dịka .gitignore) adịghị etinye n'uche na nchọ.

Na mgbakwunye, iji gwa ndị otu ag n'ụzọ faịlụ nke ịchọrọ iwepụ na ọchụchọ ahụ, ị ​​nwere ike ịmepụta faịlụ .agignore.

Ná mmalite nke ngalaba a, anyị kwuru iwu ahụ ack. Otu egwuregwu ack и ag yiri nnọọ, anyị nwere ike ikwu na ha bụ 99% mgbanwe. Agbanyeghị, otu ahụ ag na-arụ ọrụ ngwa ngwa, ya mere m ji kọwaa ya.

Ugbu a, ka anyị kwuo maka ịrụ ọrụ na ebe nchekwa.

▍ Ịdebe akwụkwọ

tar my_source_directory: na-ejikọta faịlụ site na nchekwa my_source_directory n'ime otu faịlụ tarball. Faịlụ dị otú ahụ bara uru maka ibufe nnukwu faịlụ na mmadụ.

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru
iwu tar

Faịlụ tarball ewepụtara site na iwu a bụ faịlụ nwere ndọtị .tar (Ihe ndekọ teepu). Eziokwu ahụ bụ na a na-ezobe okwu "tepu" (teepu) n'aha iwu na n'ịgbatị aha faịlụ ndị ọ na-emepụta na-egosi ogologo oge nke iwu a dị.

tar -cf my_file.tar my_source_directory: na-emepụta faịlụ tarball aha ya my_file.tar na nchekwa ọdịnaya my_source_directory. Ọkọlọtọ -c na-anọchi anya "ike" (okike), na ọkọlọtọ -f dị ka "faịlụ" (faịlụ).

Iji wepụ faịlụ na .tar-faịlụ, jiri iwu tar na ọkọlọtọ -x ("wepụ", mmịpụta) na -f ("faịlụ", faịlụ).

tar -xf my_file.tar: na-ewepụ faịlụ site na my_file.tar gaa na ndekọ ọrụ ugbu a.

Ugbu a, ka anyị kwuo maka otu esi mpikota onu na decompress .tar- faịlụ.

tar -cfz my_file.tar.gz my_source_directory: ebe a na-eji ọkọlọtọ -z ("zip", algọridim mkpakọ) na-egosi na a ga-eji algọridim were mpikota onu faịlụ gzip (GNUzip). Mkpakọ faịlụ na-echekwa ohere diski mgbe ị na-echekwa ụdị faịlụ ahụ. Ọ bụrụ na akwadoro faịlụ ndị ahụ, dịka ọmụmaatụ, ibuga ndị ọrụ ndị ọzọ, nke a na-enye aka na nbudata ngwa ngwa nke faịlụ ndị ahụ.

Wepụ faịlụ .tar.gz ị nwere ike itinye ọkọlọtọ -z na wepụta ọdịnaya iwu .tar- faịlụ, nke anyị tụlere n'elu. Ọ dị ka nke a:

tar -xfz my_file.tar.gz
Ekwesiri ighota na otu tar Enwere ọtụtụ ọkọlọtọ bara uru.

Aha aha Bash

Bash aliases (nke a na-akpọkwa aha ma ọ bụ abbreviation) ka emebere iji mepụta aha iwu mkpirisi ma ọ bụ usoro ha, iji ya kama iwu mgbe niile na-eme ka ọrụ dị ngwa. Ọ bụrụ na ị nwere utu aha bu, nke na-ezobe iwu python setup.py sdist bdist_wheel, mgbe ahụ ịkpọ iwu a, ọ ga-ezuru iji utu aha a.

Iji mepụta utu aha dị otú ahụ, tinye naanị iwu a na faịlụ ahụ ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Ọ bụrụ na sistemụ gị enweghị faịlụ ~/.bash_profile, mgbe ahụ ị nwere ike ịmepụta ya n'onwe gị site na iji iwu ahụ touch. Mgbe ịmepụtara utu aha ahụ, malitegharịa ọnụ, mgbe nke ahụ gasịrị ị nwere ike iji utu aha a. N'okwu a, ntinye nke mkpụrụedemede abụọ na-edochi ntinye nke ihe karịrị mkpụrụedemede iri na abụọ nke iwu ahụ, nke ezubere maka ya. mgbakọ Ngwunye Python.

В ~/.bash_profile ị nwere ike ịgbakwunye utu aha maka iwu ọ bụla a na-ejikarị eme ihe.

▍ Nsonaazụ

Na post a, anyị ekpuchirila iwu Bash 21 na-ewu ewu ma kwuo maka ịmepụta aha aha iwu. Ọ bụrụ na ị nwere mmasị na isiokwu a - lee usoro nke akwụkwọ ewepụtara nye Bash. ọ bụ Ị nwere ike ịchọta ụdị pdf nke akwụkwọ ndị a. Ọzọkwa, ọ bụrụ na ịchọrọ ịmụ Bash, cheta na, dịka ọ dị na usoro mmemme ọ bụla, omume bụ isi.

Ezigbo ndị na-agụ akwụkwọ! Kedu iwu ndị bara uru maka ndị mbido ka ị ga-agbakwunye na ndị ahụ a tụlere n'isiokwu a?

Gụkwaa na blọọgụ anyị usoro mbipụta gbasara scripts bash

[bookmarked] Bash maka ndị mbido: iwu 21 bara uru

isi: www.habr.com

Tinye a comment