ʻ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.
→
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.
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 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 houstdin
.>
: kuhikuhi houstdout
.|
: 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 ../
.
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 mv
Hiki 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
: hana i kope o ka waihona
cp my_source_file target_directorymy_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.
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
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
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 stdin
e 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.
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.
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.
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.
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.
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
В ~/.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 -
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?
→
Source: www.habr.com