[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono

ʻO ka mea, ka unuhi a mākou e paʻi nei i kēia lā, ua manaʻo ʻia no ka poʻe makemake e haku i ka laina kauoha Linux. ʻO ka hiki ke hoʻohana pono i kēia mea hana hiki ke mālama i ka manawa nui. Ma ke ʻano, e kamaʻilio mākou e pili ana i ka shell Bash a me 21 mau kauoha pono ma aneʻi. E kamaʻilio pū mākou e pili ana i ka hoʻohana ʻana i nā hae kauoha a me nā inoa Bash e wikiwiki i ka paʻi ʻana i nā kuhikuhi lōʻihi.

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono

E heluhelu pū i kā mākou moʻomanaʻo i kahi ʻano o nā paʻi e pili ana i nā palapala bash

Nā Kūlana

Ke aʻo nei ʻoe e hana me ka laina kauoha Linux, e hālāwai ʻoe i nā manaʻo he nui e kōkua i ka hoʻokele. ʻO kekahi o lākou, e like me "Linux" a me "Unix", a i ʻole "shell" a me "terminal", i kekahi manawa huikau. E kamaʻilio kākou e pili ana i kēia mau huaʻōlelo koʻikoʻi.

Unix he ʻōnaehana hana kaulana i hoʻomohala ʻia e Bell Labs i nā makahiki 1970. Ua pani ʻia kāna code.

Linux ʻo ia ka ʻōnaehana hana like Unix kaulana loa. Hoʻohana ʻia ia i kēia manawa ma nā polokalamu he nui, me nā kamepiula.

maʻi (terminal), a i ʻole terminal emulator he polokalamu e hāʻawi i ke komo i ka ʻōnaehana hana. Hiki iā ʻoe ke wehe i nā puka makani he nui i ka manawa like.

Shell (shell) he polokalamu ia e hiki ai iā ʻoe ke hoʻouna i nā kauoha i kākau ʻia ma kahi ʻōlelo kūikawā i ka ʻōnaehana hana.

Bash kū no Bourne Again Shell. ʻO ia ka ʻōlelo maʻamau i hoʻohana ʻia e launa pū me ka ʻōnaehana hana. Eia kekahi, ʻo ka Bash shell ka paʻamau ma macOS.

Ke kuhi laina kauoha (Command Line Interface, CLI) ʻo ia ke ʻano o ka launa pū ʻana ma waena o ke kanaka a me ke kamepiula, me ka hoʻohana ʻana i ka mea hoʻohana e hoʻokomo i nā kauoha mai ka papa keyboard, a me ke kamepiula, e hoʻokō ana i kēia mau kauoha, hōʻike i nā memo ma ke ʻano kikokikona no ka mea hoʻohana. ʻO ka hoʻohana nui o ka CLI ka loaʻa ʻana o ka ʻike hou e pili ana i kekahi mau hui, e like me nā faila, a me ka hana pū me nā faila. Pono e ho'oka'awale 'ia ka laina kauoha mai ka graphical user interface (GUI), i ho'ohana mua i ka iole. Hoʻohana pinepine ʻia ka laina kauoha ma ke ʻano he laina kauoha.

Palapala (script) he polokalamu liʻiliʻi i loaʻa i ke kaʻina o nā kauoha shell. Kākau ʻia nā palapala i nā faila, hiki ke hoʻohana pinepine ʻia. Ke kākau ʻana i nā palapala, hiki iā ʻoe ke hoʻohana i nā mea hoʻololi, nā kūlana, nā puka lou, nā hana, a me nā hiʻohiʻona ʻē aʻe.

I kēia manawa ua uhi mākou i nā huaʻōlelo koʻikoʻi, makemake wau e kuhikuhi e hoʻohana wau i nā huaʻōlelo "Bash", "shell" a me "line command" i hoʻololi ʻia ma aneʻi, a me nā huaʻōlelo "directory" a me "folder".

Kūlana nā kahawai, a mākou e hoʻohana ai ma ʻaneʻi ʻo ia ka hoʻokomo maʻamau (ka hoʻokomo maʻamau, stdin), puka maʻamau (huahelu maʻamau, stdout) a me ka hoʻopuka hewa maʻamau (hewa maʻamau, stderr).

Inā ma nā kauoha laʻana e hāʻawi ʻia ma lalo nei, e ʻike ʻoe i kahi mea like my_whatever - ʻo ia hoʻi, pono e hoʻololi ʻia kēia ʻāpana me kāu. No ka laʻana, ka inoa o kahi faila.

I kēia manawa, ma mua o ka hoʻomaka ʻana me ka nānā ʻana i nā kauoha i hoʻolaʻa ʻia kēia mea, e nānā i kā lākou papa inoa a me kā lākou wehewehe pōkole.

21 Nā kauoha Bash

▍Loaʻa ʻana i ka ʻike

  • man: Hōʻike i ke alakaʻi hoʻohana (kōkua) no ke kauoha.
  • pwd: hōʻike i ka ʻike e pili ana i ka papa kuhikuhi hana.
  • ls: hōʻike i nā mea i loko o kahi papa kuhikuhi.
  • ps: Hāʻawi iā ʻoe e nānā i ka ʻike e pili ana i nā kaʻina holo.

▍ Hoʻoponopono ʻōnaehana waihona

  • cd: hoʻololi i ka papa kuhikuhi hana.
  • touch: hana i faila.
  • mkdir: hana i papa kuhikuhi.
  • cp: E kope i kahi faila.
  • mv: Hoʻoneʻe a holoi paha i kahi faila.
  • ln: hana i loulou.

▍ I/O redirection and pipelines

  • <: kuhikuhi hou stdin.
  • >: kuhikuhi hou stdout.
  • |: paipu i ka puka o kekahi kauoha i ka hookomo o kekahi kauoha.

▍ Heluhelu i nā faila

  • head: heluhelu i ka hoomaka ana o ka waihona.
  • tail: heluhelu hope o ka waihona.
  • cat: Heluhelu i kahi faila a paʻi i kona mau mea i ka pale, a i ʻole e hoʻohui i nā faila.

▍ Holoi i nā faila, hoʻopau i nā kaʻina hana

  • rm: Holoi i kahi faila.
  • kill: hooki i ka hana.

▍ Huli

  • grep: huli i ka ike.
  • ag: kauoha mua no ka huli ana.

▍Ka waihona

  • tar: ka hana ʻana i nā waihona a hana pū me lākou.

E kamaʻilio hou kākou e pili ana i kēia mau kauoha.

Nā kikoʻī hui

I ka hoʻomaka ʻana, e hana mākou i nā kauoha, nā hopena i hoʻopuka ʻia ma ke ʻano stdout. Hōʻike pinepine ʻia kēia mau hopena ma kahi puka makani.

▍Loaʻa ʻana i ka ʻike

man command_name: hōʻike i ke alakaʻi kauoha, ʻo ia hoʻi ka ʻike kōkua.

pwd: hōʻike i ke ala i ka papa kuhikuhi hana o kēia manawa. I ka hana ʻana me ka laina kauoha, pono pinepine ka mea hoʻohana e ʻike pololei i kahi o ka ʻōnaehana.

ls: hōʻike i nā mea o kahi papa kuhikuhi. Hoʻohana pinepine ʻia kēia kauoha.

ls -a: hōʻike i nā faila huna. hoʻopili ʻia ka hae ma ʻaneʻi -a kauoha ls. ʻO ka hoʻohana ʻana i nā hae e kōkua i ka hoʻoponopono ʻana i ke ʻano o nā kauoha.

ls -l: Hōʻike i ka ʻike kikoʻī e pili ana i nā faila.

E hoʻomaopopo he hiki ke hoʻohui ʻia nā hae. No ka laʻana - penei: ls -al.

ps: Nānā i nā kaʻina hana.

ps -e: Hōʻike i ka ʻike e pili ana i nā kaʻina hana holoʻokoʻa, ʻaʻole wale nā ​​mea pili i ka shell mea hoʻohana o kēia manawa. Hoʻohana pinepine ʻia kēia kauoha ma kēia ʻano.

▍ Hoʻoponopono ʻōnaehana waihona

cd my_directory: hoʻololi i ka papa kuhikuhi hana i my_directory. No ka piʻi ʻana i kahi pae ma ka lāʻau papa kuhikuhi, e hoʻohana my_directory ala pili ../.

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono
kauoha cd

touch my_file: hana waihona my_file ma ke ala i haawiia.

mkdir my_directory: hana i ka waihona my_directory ma ke ala i haawiia.

mv my_file target_directory: hoʻoneʻe faila my_file i ka waihona target_directory. Ke kuhikuhi nei i ka papa kuhikuhi kuhikuhi, pono ʻoe e hoʻohana i ke ala pololei i ia (a ʻaʻole kahi kūkulu like ../).

hui mvHiki ke hoʻohana ʻia e hoʻololi i nā faila a i ʻole nā ​​waihona. No ka laʻana, penei paha ia:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: hana i kope o ka waihona my_source_file a waiho i loko o kahi waihona target_directory.

ln -s my_source_file my_target_file: hana i kahi loulou hōʻailona my_target_file no ka waihona my_source_file. Inā hoʻololi ʻoe i ka loulou, e hoʻololi pū ʻia ka faila kumu.

Inā ʻo ka faila my_source_file e holoi ʻia, a laila my_target_file e noho. Hae -s kauoha ln hiki iā ʻoe ke hana i nā loulou no nā papa kuhikuhi.

I kēia manawa e kamaʻilio e pili ana i ka hoʻihoʻi ʻana o I/O a me nā pipeline.

▍ I/O redirection and pipelines

my_command < my_file: hoʻololi i ka wehewehe waihona waihona maʻamau (stdin) no ka waihona my_file. Hiki ke hoʻohana ʻia kēia inā e kali ana ke kauoha i kahi hoʻokomo mai ka papa keyboard, a ua mālama ʻia kēia ʻikepili i kahi faila.

my_command > my_file: hoʻihoʻi hou i nā hopena o ke kauoha, ʻo ia hoʻi ka mea maʻamau e komo i loko stdout a puka i ka pale, i kahi faila my_file. Inā ʻo ka faila my_file ʻaʻole i loaʻa - ua hana ʻia. Inā loaʻa ka faila, ua kākau ʻia.

No ka laʻana, ma hope o ka hoʻokō ʻana i ke kauoha ls > my_folder_contents.txt e hana ʻia kahi waihona kikokikona me kahi papa inoa o nā mea i loko o ka papa kuhikuhi hana o kēia manawa.

Inā ma kahi o ka hōʻailona > hoʻohana i ke kūkulu ʻana >>, a laila, inā loaʻa ka faila kahi i hoʻihoʻi ʻia ai ke kauoha, ʻaʻole e kākau ʻia kēia faila. E hoʻohui ʻia ka ʻikepili i ka hopena o kēia faila.

I kēia manawa, e nānā kākou i ka hoʻoili ʻana i ka pipeline data.

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono
Hāʻawi ʻia ka hoʻopuka o kekahi kauoha i ka hoʻokomo o kekahi kauoha. Ua like ia me ka hoʻokuʻi ʻana i kekahi paipu i kekahi

first_command | second_command: hōʻailona lawe, |, hoʻohana ʻia e hoʻouna i ka hopena o kekahi kauoha i kekahi kauoha. He aha ke kauoha ma ka ʻaoʻao hema o ka hale i wehewehe ʻia stdout, Hāʻule i loko stdin kauoha ma ka ʻākau o ka hōʻailona pipeline.

Ma Linux, hiki ke hoʻopili ʻia ka ʻikepili me ka hoʻohana ʻana i nā kauoha i hana maikaʻi ʻia. Ua ʻōlelo pinepine ʻia ʻo nā mea āpau ma Linux he pipeline.

Hiki iā ʻoe ke kaulahao i nā kauoha he nui me ka hoʻohana ʻana i ka hōʻailona pipeline. Penei kona ano:

first_command | second_command | third_command

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono
Hiki ke hoʻohālikelike ʻia kahi pipeline o kekahi mau kauoha me kahi pipeline

E hoʻomaopopo i ka wā o ke kauoha i ka hema o ka hōʻailona |, hoopuka i kekahi mea i stdout, loaʻa koke kāna mea i hoʻopuka ai stdin hui lua. ʻO ia hoʻi, ʻike ʻia, me ka hoʻohana ʻana i ka pipeline, ke hana nei mākou i ka hoʻokō like ʻana o nā kauoha. I kekahi manawa hiki i kēia ke alakaʻi i nā hopena i manaʻo ʻole ʻia. Hiki ke heluhelu ʻia nā kikoʻī e pili ana i kēia maanei.

I kēia manawa e kamaʻilio e pili ana i ka heluhelu ʻana i ka ʻikepili mai nā faila a hōʻike iā lākou ma ka pale.

▍ Heluhelu i nā faila

head my_file: heluhelu i nā laina mai ka hoʻomaka ʻana o kahi faila a paʻi iā lākou i ka pale. ʻAʻole hiki iā ʻoe ke heluhelu wale i nā mea o nā faila, akā i nā mea i hoʻopuka ʻia e nā kauoha stdine hoʻohana ana i kēia kauoha ma ke ʻano o ka pipeline.

tail my_file: heluhelu laina mai ka hope o ka waihona. Hiki ke hoʻohana ʻia kēia kauoha i kahi paipu.

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono
Aia ke poʻo ma mua, a ma hope ka huelo

Inā ʻoe e hana nei me ka ʻikepili me ka hoʻohana ʻana i ka waihona pandas, a laila nā kauoha head и tail pono e kamaaina ia oe. Inā ʻaʻole kēia ka hihia, e nānā i ke kiʻi ma luna, a e hoʻomanaʻo maʻalahi ʻoe iā lākou.

E noʻonoʻo i nā ala ʻē aʻe e heluhelu ai i nā faila, e kamaʻilio e pili ana i ke kauoha cat.

hui cat paʻi i nā mea o kahi faila i ka pale, a i ʻole hoʻohui i nā faila he nui. Aia ia i ka nui o nā faila i hāʻawi ʻia i kēia kauoha ke kāhea ʻia.

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono
kauoha popoki

cat my_one_file.txt: ke hāʻawi ʻia kahi faila i kēia kauoha, hoʻopuka ia i stdout.

Inā hāʻawi ʻoe iā ia i ʻelua faila a ʻoi aku paha nā faila, a laila ʻokoʻa ke ʻano.

cat my_file1.txt my_file2.txt: i ka loaʻa ʻana o kekahi mau faila ma ke ʻano he hoʻokomo, hoʻohui kēia kauoha i kā lākou ʻike a hōʻike i ka mea i hana ʻia stdout.

Inā pono e mālama ʻia ka hopena o ka hui ʻana o ka faila ma ke ʻano he faila hou, hiki iā ʻoe ke hoʻohana i ka mea hoʻohana >:

cat my_file1.txt my_file2.txt > my_new_file.txt

I kēia manawa e kamaʻilio e pili ana i ka holoi ʻana i nā faila a hoʻopau i nā kaʻina hana.

▍ Holoi i nā faila, hoʻopau i nā kaʻina hana

rm my_file: holoi i ka waihona my_file.

rm -r my_folder: holoi i kahi waihona my_folder a me nā faila a me nā waihona i loko. Hae -r hōʻike e holo ke kauoha ma ke ʻano recursive.

No ka pale ʻana i ka ʻōnaehana mai ka noi ʻana i ka hōʻoia i kēlā me kēia manawa i holoi ʻia kahi faila a i ʻole ka waihona, e hoʻohana i ka hae -f.

kill 012345: Hoʻopau i ke kaʻina hana i ʻōlelo ʻia, e hāʻawi ana i ka manawa e pani maikaʻi ʻia.

kill -9 012345: Hoʻopau ikaika i ke kaʻina hana i ʻōlelo ʻia. Nānā hae -s SIGKILL ʻo ke ʻano like me ka hae -9.

▍ Huli

Hiki iā ʻoe ke hoʻohana i nā kauoha like ʻole e ʻimi i ka ʻikepili. I ke ʻano wae - grep, ag и ack. E hoʻomaka kākou e launa pū me kēia mau kauoha me grep. He kauoha kēia i hoʻāʻo ʻia i ka manawa, akā, ʻoi aku ka lohi ma mua o nā mea ʻē aʻe a ʻaʻole maʻalahi e hoʻohana e like me lākou.

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono
kauoha grep

grep my_regex my_file: huli ana my_regex в my_file. Inā loaʻa kahi pāʻani, hoʻihoʻi ʻia ke kaula holoʻokoʻa, no kēlā me kēia pāʻani. Default my_regex mālama ʻia ma ke ʻano he ʻōlelo maʻamau.

grep -i my_regex my_file: Hana ʻia ka ʻimi ʻana ma ke ʻano hihia ʻole.

grep -v my_regex my_file: hoʻihoʻi i nā lālani a pau ʻaʻole i loaʻa my_regex. Hae -v ʻo ia hoʻi ka hoʻohuli ʻana, ua like ia me ka mea hoʻohana NOT, loaʻa ma nā ʻōlelo papahana he nui.

grep -c my_regex my_file: Hoʻihoʻi i ka ʻike e pili ana i ka helu o nā pāʻani i loaʻa ma ka faila no ke kumu huli.

grep -R my_regex my_folder: hana i ka huli recursive i nā faila a pau i loko o ka waihona i kuhikuhi ʻia a ma nā waihona i hoʻopaʻa ʻia i loko.

I kēia manawa e kamaʻilio kākou e pili ana i ka hui ag. Hele mai ʻo ia ma hope grep, ʻoi aku ka wikiwiki, ʻoi aku ka maʻalahi o ka hana pū me ia.

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono
ag kauoha

ag my_regex my_file: hoʻihoʻi i ka ʻike e pili ana i nā helu laina, a me nā laina ponoʻī, kahi i loaʻa ai nā pāʻani me my_regex.

ag -i my_regex my_file: Hana ʻia ka ʻimi ʻana ma ke ʻano hihia ʻole.

hui ag kaʻina 'akomi i ka faila .gitignore a kāpae i ka mea i loaʻa i loko o nā waihona a i ʻole nā ​​faila i helu ʻia ma ia faila. He oluolu loa.

ag my_regex my_file -- skip-vcs-ignores: nā mea i loko o nā faila mana mana (like .gitignore) ʻaʻole i manaʻo ʻia i ka ʻimi.

Eia hou, i mea e hai aku i ka hui ag ma nā ala waihona āu e makemake ai e haʻalele mai ka huli ʻana, hiki iā ʻoe ke hana i kahi faila .agignore.

I ka hoʻomaka ʻana o kēia ʻāpana, ua haʻi mākou i ke kauoha ack. Nā hui ack и ag like loa, hiki iā mākou ke ʻōlelo he 99% hiki ke hoʻololi. Eia naʻe, ʻo ka hui ag ʻoi aku ka wikiwiki, ʻo ia ke kumu aʻu i wehewehe ai.

I kēia manawa e kamaʻilio e pili ana i ka hana ʻana me nā waihona.

▍Ka waihona

tar my_source_directory: hoʻohui i nā faila mai kahi waihona my_source_directory i hoʻokahi faila tarball. Pono ia mau faila no ka hoʻoili ʻana i nā pūʻulu nui o nā faila i kekahi.

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono
kauoha tar

ʻO nā faila tarball i hana ʻia e kēia kauoha he mau faila me ka hoʻonui .tar (Līpe ARchive). ʻO ka ʻoiaʻiʻo o ka huaʻōlelo "tape" (tape) i hūnā ʻia ma ka inoa o ke kauoha a me ka hoʻonui ʻana i nā inoa o nā faila āna i hana ai e hōʻike ana i ka lōʻihi o ka noho ʻana o kēia kauoha.

tar -cf my_file.tar my_source_directory: hana i kahi faila tarball i kapa ʻia my_file.tar me ka waihona waihona my_source_directory. Hae -c ʻo ia ka "hoʻokumu" (creation), a me ka hae -f ma ke ʻano he "file" (file).

E wehe i nā faila mai .tar-file, hoʻohana i ke kauoha tar me na hae -x ("extract", extraction) a -f ("faila", waihona).

tar -xf my_file.tar: wehe i nā faila mai my_file.tar i ka papa kuhikuhi hana o kēia manawa.

I kēia manawa e kamaʻilio mākou e pili ana i ka hoʻopaʻa ʻana a me ka decompress .tar- nā waihona.

tar -cfz my_file.tar.gz my_source_directory: maanei e hoohana ana i ka hae -z ("zip", compression algorithm) e hōʻike ana e hoʻohana ʻia ka algorithm e kaomi i nā faila gzip (GNUzip). Mālama ka hoʻoemi ʻana i nā faila i ka wā e mālama ai i ia mau faila. Inā hoʻolālā ʻia nā faila, no ka laʻana, e hoʻoili ʻia i nā mea hoʻohana ʻē aʻe, kōkua kēia i ka hoʻoiho wikiwiki ʻana o ia mau faila.

Wehe i ka waihona .tar.gz hiki iā ʻoe ke hoʻohui i ka hae -z i ke kauoha maʻiʻo unuhi .tar-files, a mākou i kūkākūkā ai ma luna. Ua like me keia:

tar -xfz my_file.tar.gz
Pono e hoʻomaopopo i ka hui tar Nui nā hae pono.

Nā inoa inoa Bash

Hoʻolālā ʻia nā aliases Bash (i kapa ʻia ʻo aliases a i ʻole nā ​​pōkole) e hana i nā inoa pōkole o nā kauoha a i kā lākou mau kaʻina, ʻo ka hoʻohana ʻana ia mea ma kahi o nā kauoha maʻamau e wikiwiki i ka hana. Inā he inoa kāu bu, ka mea huna i ke kauoha python setup.py sdist bdist_wheel, a laila e kāhea i kēia kauoha, ua lawa ia e hoʻohana i kēia alias.

No ka hana ʻana i kahi alias, hoʻohui wale i kēia kauoha i ka faila ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Inā ʻaʻohe faila i kāu ʻōnaehana ~/.bash_profile, a laila hiki iā ʻoe ke hana iā ʻoe iho me ke kauoha touch. Ma hope o ka hana ʻana i ka inoa inoa, e hoʻomaka hou i ka terminal, a laila hiki iā ʻoe ke hoʻohana i kēia alias. I kēia hihia, hoʻololi ka hoʻokomo ʻana o nā huaʻōlelo ʻelua i ka hoʻokomo ʻana i ʻoi aku ma mua o ʻekolu mau kakini o ke kauoha, i manaʻo ʻia no na anaina Nā pūʻolo Python.

В ~/.bash_profile hiki iā ʻoe ke hoʻohui i nā inoa inoa no nā kauoha i hoʻohana pinepine ʻia.

▍ Nā hopena

Ma kēia pou, ua uhi mākou i nā kauoha Bash kaulana 21 a kamaʻilio e pili ana i ka hana ʻana i nā inoa inoa kauoha. Inā makemake ʻoe i kēia kumuhana - aia hoʻi he pūʻulu puke i hoʻolaʻa ʻia no Bash. he mea Hiki iā ʻoe ke loaʻa kahi mana pdf o kēia mau puke. Eia kekahi, inā makemake ʻoe e aʻo iā Bash, e hoʻomanaʻo, e like me nā ʻōnaehana polokalamu ʻē aʻe, ʻo ka hoʻomaʻamaʻa ke kī.

E nā mea heluhelu aloha! He aha nā kauoha e pono ai ka poʻe hoʻomaka e hoʻohui i nā mea i kūkākūkā ʻia ma kēia ʻatikala?

E heluhelu pū i kā mākou moʻomanaʻo i kahi ʻano o nā paʻi e pili ana i nā palapala bash

[bookmarked] Bash no ka poʻe hoʻomaka: 21 mau kauoha pono

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka