Ang materyal, ang pagsasalin kung saan nai-publish namin ngayon, ay inilaan para sa mga nais na makabisado ang Linux command line. Ang kakayahang gamitin ang tool na ito nang epektibo ay maaaring makatipid ng maraming oras. Sa partikular, pag-uusapan natin ang tungkol sa Bash shell at 21 kapaki-pakinabang na utos dito. Pag-uusapan din natin kung paano gumamit ng mga command flag at Bash alias para mapabilis ang pag-type ng mahabang tagubilin.
→
mga tuntunin
Habang natututo kang gumamit ng command line ng Linux, makakatagpo ka ng maraming konsepto na makakatulong sa pag-navigate. Ang ilan sa mga ito, tulad ng "Linux" at "Unix", o "shell" at "terminal", ay minsan nalilito. Pag-usapan natin ang mga ito at iba pang mahahalagang termino.
Ngayong nasaklaw na natin ang mahahalagang termino, gusto kong ipahiwatig na gagamitin ko ang mga terminong "Bash", "shell" at "command line" na magkapalit dito, pati na rin ang mga terminong "directory" at "folder".
Standard stdin
), karaniwang output (karaniwang output, stdout
) at karaniwang error na output (karaniwang error, stderr
).
Kung sa mga halimbawang utos na ibibigay sa ibaba, makikita mo ang isang bagay tulad ng my_whatever
- nangangahulugan ito na ang fragment na ito ay kailangang palitan ng isang bagay sa iyo. Halimbawa, ang pangalan ng isang file.
Ngayon, bago magpatuloy sa pagsusuri ng mga utos kung saan nakatuon ang materyal na ito, tingnan natin ang kanilang listahan at ang kanilang maikling paglalarawan.
21 Mga utos ng Bash
▍Pagkuha ng impormasyon
man
: Ipinapakita ang gabay sa gumagamit (tulong) para sa utos.pwd
: nagpapakita ng impormasyon tungkol sa gumaganang direktoryo.ls
: ipinapakita ang mga nilalaman ng isang direktoryo.ps
: Binibigyang-daan kang tingnan ang impormasyon tungkol sa mga prosesong tumatakbo.
▍Pagmamanipula ng system ng file
cd
: baguhin ang gumaganang direktoryo.touch
: gumawa ng file.mkdir
: lumikha ng isang direktoryo.cp
: Kumopya ng file.mv
: Maglipat o magtanggal ng file.ln
: gumawa ng link.
▍I/O redirection at pipelines
<
: pag-redirectstdin
.>
: pag-redirectstdout
.|
: piped ang output ng isang command sa input ng isa pang command.
▍Pagbabasa ng mga file
head
: basahin ang simula ng file.tail
: basahin ang dulo ng file.cat
: Basahin ang isang file at i-print ang mga nilalaman nito sa screen, o pagsamahin ang mga file.
▍Pagtanggal ng mga file, paghinto ng mga proseso
rm
: Magtanggal ng file.kill
: itigil ang proseso.
▍Maghanap
grep
: maghanap ng impormasyon.ag
: advanced na utos para sa paghahanap.
▍Pag-archive
tar
: paglikha ng mga archive at pakikipagtulungan sa kanila.
Pag-usapan natin ang mga utos na ito nang mas detalyado.
Mga Detalye ng Koponan
Upang magsimula, harapin natin ang mga utos, ang mga resulta nito ay ibinibigay sa form stdout
. Karaniwang lumilitaw ang mga resultang ito sa isang terminal window.
▍Pagkuha ng impormasyon
man command_name
: ipakita ang command guide, ibig sabihin, impormasyon ng tulong.
pwd
: ipakita ang landas sa kasalukuyang gumaganang direktoryo. Sa kurso ng pagtatrabaho sa command line, madalas na kailangang malaman ng user kung nasaan siya sa system.
ls
: ipakita ang mga nilalaman ng isang direktoryo. Ang utos na ito ay madalas ding ginagamit.
ls -a
: Ipakita ang nakatagong dokumento. watawat na inilapat dito -a
mga koponan ls
. Ang paggamit ng mga flag ay nakakatulong upang i-customize ang pag-uugali ng mga utos.
ls -l
: Ipakita ang detalyadong impormasyon tungkol sa mga file.
Tandaan na ang mga flag ay maaaring pagsamahin. Halimbawa - tulad nito: ls -al
.
ps
: Tingnan ang mga tumatakbong proseso.
ps -e
: Ipakita ang impormasyon tungkol sa lahat ng tumatakbong proseso, hindi lamang ang mga nauugnay sa kasalukuyang shell ng gumagamit. Ang utos na ito ay kadalasang ginagamit sa form na ito.
▍Pagmamanipula ng system ng file
cd my_directory
: baguhin ang gumaganang direktoryo sa my_directory
. Upang umakyat sa isang antas sa puno ng direktoryo, gamitin my_directory
kamag-anak na landas ../
.
cd na utos
touch my_file
: paglikha ng file my_file
kasama ang ibinigay na landas.
mkdir my_directory
: gumawa ng folder my_directory
kasama ang ibinigay na landas.
mv my_file target_directory
: ilipat ang file my_file
sa folder target_directory
. Kapag tinukoy ang target na direktoryo, kailangan mong gamitin ang ganap na landas dito (at hindi tulad ng isang konstruksyon ../
).
pangkat mv
maaari ding gamitin upang palitan ang pangalan ng mga file o folder. Halimbawa, maaaring ganito ang hitsura nito:
mv my_old_file_name.jpg my_new_file_name.jpg
: gumawa ng kopya ng isang file
cp my_source_file target_directorymy_source_file
at ilagay ito sa isang folder target_directory
.
ln -s my_source_file my_target_file
: lumikha ng simbolikong link my_target_file
bawat file my_source_file
. Kung babaguhin mo ang link, magbabago rin ang orihinal na file.
Kung ang file my_source_file
ay tatanggalin, pagkatapos my_target_file
mananatili. Bandila -s
mga koponan ln
nagpapahintulot sa iyo na lumikha ng mga link para sa mga direktoryo.
Ngayon pag-usapan natin ang tungkol sa pag-redirect ng I/O at mga pipeline.
▍I/O redirection at pipelines
my_command < my_file
: pinapalitan ang karaniwang input file descriptor (stdin
) bawat file my_file
. Maaari itong maging kapaki-pakinabang kung ang command ay naghihintay ng ilang input mula sa keyboard, at ang data na ito ay nai-save na sa isang file.
my_command > my_file
: nire-redirect ang mga resulta ng command, ibig sabihin, kung ano ang karaniwang papasok stdout
at output sa screen, sa isang file my_file
. Kung ang file my_file
ay hindi umiiral - ito ay nilikha. Kung ang file ay umiiral, ito ay mapapatungan.
Halimbawa, pagkatapos isagawa ang utos ls > my_folder_contents.txt
lilikha ng isang text file na naglalaman ng isang listahan ng kung ano ang nasa kasalukuyang gumaganang direktoryo.
Kung sa halip na simbolo >
gamitin ang konstruksiyon >>
, kung gayon, sa kondisyon na ang file kung saan ang output ng command ay na-redirect ay umiiral, ang file na ito ay hindi ma-overwrite. Ang data ay idaragdag sa dulo ng file na ito.
Ngayon tingnan natin ang pagproseso ng pipeline ng data.
Ang output ng isang command ay ipinapasok sa input ng isa pang command. Ito ay tulad ng pagkonekta ng isang tubo sa isa pa
first_command | second_command
: simbolo ng conveyor, |
, ay ginagamit upang ipadala ang output ng isang command sa isa pang command. Kung ano ang ipinapadala ng command sa kaliwang bahagi ng inilarawang istraktura stdout
, Nahulog sa stdin
utos sa kanan ng simbolo ng pipeline.
Sa Linux, maaaring i-pipeline ang data gamit ang halos anumang maayos na command. Madalas sinasabi na ang lahat ng bagay sa Linux ay pipeline.
Maaari mong i-chain ang maraming command gamit ang simbolo ng pipeline. Mukhang ganito:
first_command | second_command | third_command
Ang isang pipeline ng ilang mga command ay maihahambing sa isang pipeline
Tandaan na kapag ang utos sa kaliwa ng simbolo |
, naglalabas ng isang bagay sa stdout
, kung ano ang kanyang output ay magagamit kaagad bilang stdin
pangalawang pangkat. Iyon ay, lumalabas na, gamit ang pipeline, nakikitungo tayo sa parallel na pagpapatupad ng mga utos. Minsan ito ay maaaring humantong sa hindi inaasahang resulta. Mababasa ang mga detalye tungkol dito
Ngayon ay pag-usapan natin ang tungkol sa pagbabasa ng data mula sa mga file at pagpapakita ng mga ito sa screen.
▍Pagbabasa ng mga file
head my_file
: nagbabasa ng mga linya mula sa simula ng isang file at ini-print ang mga ito sa screen. Mababasa mo hindi lamang ang mga nilalaman ng mga file, kundi pati na rin kung ano ang output ng mga utos stdin
gamit ang command na ito bilang bahagi ng pipeline.
tail my_file
: nagbabasa ng mga linya mula sa dulo ng file. Ang command na ito ay maaari ding gamitin sa isang pipeline.
Ang ulo (ulo) ay nasa harap, at ang buntot (buntot) ay nasa likod
Kung nagtatrabaho ka sa data gamit ang pandas library, pagkatapos ay ang mga command head
и tail
dapat pamilyar sa iyo. Kung hindi ito ang kaso, tingnan ang figure sa itaas, at madali mong maaalala ang mga ito.
Isaalang-alang ang iba pang mga paraan upang basahin ang mga file, pag-usapan natin ang utos cat
.
Koponan cat
alinman sa pagpi-print ng mga nilalaman ng isang file sa screen, o pagsasama-sama ng maramihang mga file. Depende ito sa kung gaano karaming mga file ang ipinasa sa command na ito kapag tinawag.
utos ng pusa
cat my_one_file.txt
: kapag ang isang file ay ipinasa sa command na ito, ito ay naglalabas nito sa stdout
.
Kung bibigyan mo ito ng dalawang file o higit pang mga file, iba ang kilos nito.
cat my_file1.txt my_file2.txt
: na nakatanggap ng ilang mga file bilang input, ang utos na ito ay pinagsama ang kanilang mga nilalaman at ipinapakita kung ano ang nangyari sa stdout
.
Kung ang resulta ng pagsasama-sama ng file ay kailangang i-save bilang isang bagong file, maaari mong gamitin ang operator >
:
cat my_file1.txt my_file2.txt > my_new_file.txt
Ngayon ay pag-usapan natin kung paano magtanggal ng mga file at huminto sa mga proseso.
▍Pagtanggal ng mga file, paghinto ng mga proseso
rm my_file
: burahin ang file my_file
.
rm -r my_folder
: nagtatanggal ng folder my_folder
at lahat ng mga file at folder na nilalaman nito. Bandila -r
ay nagpapahiwatig na ang command ay tatakbo sa recursive mode.
Upang pigilan ang system sa paghingi ng kumpirmasyon sa tuwing tatanggalin ang isang file o folder, gamitin ang bandila -f
.
kill 012345
: Pinipigilan ang tinukoy na proseso ng pagpapatakbo, na nagbibigay ng oras upang maayos na isara.
kill -9 012345
: Sapilitang tinatapos ang tinukoy na proseso ng pagpapatakbo. Tingnan ang Bandila -s SIGKILL
pareho ang ibig sabihin ng watawat -9
.
▍Maghanap
Maaari kang gumamit ng iba't ibang mga command upang maghanap ng data. Sa partikular - grep
, ag
и ack
. Simulan natin ang ating pagkilala sa mga utos na ito sa grep
. Ito ay isang nasubok sa oras, maaasahang utos, na, gayunpaman, ay mas mabagal kaysa sa iba at hindi maginhawang gamitin gaya ng mga ito.
utos ng grep
grep my_regex my_file
: paghahanap my_regex
в my_file
. Kung may nakitang tugma, ibabalik ang buong string, para sa bawat tugma. Default my_regex
itinuturing bilang isang regular na expression.
grep -i my_regex my_file
: Ang paghahanap ay isinasagawa sa isang case-insensitive na paraan.
grep -v my_regex my_file
: ibinabalik ang lahat ng row na hindi naglalaman my_regex
. Bandila -v
ibig sabihin inversion, ito ay kahawig ng operator NOT
, na matatagpuan sa maraming programming language.
grep -c my_regex my_file
: Nagbabalik ng impormasyon tungkol sa bilang ng mga tugma na natagpuan sa file para sa pattern ng paghahanap.
grep -R my_regex my_folder
: nagsasagawa ng recursive na paghahanap sa lahat ng mga file na matatagpuan sa tinukoy na folder at sa mga folder na naka-nest dito.
Ngayon pag-usapan natin ang koponan ag
. Dumating siya mamaya grep
, ito ay mas mabilis, ito ay mas maginhawa upang gumana dito.
ag utos
ag my_regex my_file
: nagbabalik ng impormasyon tungkol sa mga numero ng linya, at ang mga linya mismo, kung saan natagpuan ang mga tugma my_regex
.
ag -i my_regex my_file
: Ang paghahanap ay isinasagawa sa isang case-insensitive na paraan.
Koponan ag
awtomatikong iproseso ang file .gitignore
at hindi kasama sa output ang makikita sa mga folder o file na nakalista sa file na iyon. Ito ay napaka komportable.
ag my_regex my_file -- skip-vcs-ignores
: mga nilalaman ng awtomatikong bersyon ng control file (tulad ng .gitignore
) ay hindi isinasaalang-alang sa paghahanap.
Bilang karagdagan, upang sabihin sa koponan ag
sa kung aling mga path ng file ang gusto mong ibukod mula sa paghahanap, maaari kang lumikha ng isang file .agignore
.
Sa simula ng seksyong ito, binanggit namin ang utos ack
. Mga koponan ack
и ag
halos magkatulad, maaari nating sabihin na sila ay 99% mapagpapalit. Gayunpaman, ang koponan ag
gumagana nang mas mabilis, kaya't inilarawan ko ito.
Ngayon ay pag-usapan natin ang tungkol sa pagtatrabaho sa mga archive.
▍Pag-archive
tar my_source_directory
: pinagsasama-sama ang mga file mula sa isang folder my_source_directory
sa isang solong tarball file. Ang ganitong mga file ay kapaki-pakinabang para sa paglilipat ng malalaking hanay ng mga file sa isang tao.
utos ng tar
Ang mga tarball file na nabuo ng command na ito ay mga file na may extension .tar
(Tape ARchive). Ang katotohanan na ang salitang "tape" (tape) ay nakatago sa pangalan ng command at sa extension ng mga pangalan ng mga file na nilikha nito ay nagpapahiwatig kung gaano katagal umiral ang command na ito.
tar -cf my_file.tar my_source_directory
: lumilikha ng tarball file na pinangalanan my_file.tar
na may mga nilalaman ng folder my_source_directory
. Bandila -c
ay nangangahulugang "lumikha" (paglikha), at ang watawat -f
bilang "file" (file).
Upang kunin ang mga file mula sa .tar
-file, gamitin ang command tar
may mga watawat -x
("extract", bunutan) at -f
("file", file).
tar -xf my_file.tar
: kinukuha ang mga file mula sa my_file.tar
sa kasalukuyang gumaganang direktoryo.
Ngayon ay pag-usapan natin kung paano mag-compress at mag-decompress .tar
-mga file.
tar -cfz my_file.tar.gz my_source_directory
: dito gamit ang watawat -z
("zip", compression algorithm) ay nagpapahiwatig na ang algorithm ay dapat gamitin upang i-compress ang mga file gzip
(GNUzip). Ang file compression ay nakakatipid ng puwang sa disk kapag nag-iimbak ng mga naturang file. Kung ang mga file ay binalak, halimbawa, na ilipat sa ibang mga user, ito ay nag-aambag sa mas mabilis na pag-download ng mga naturang file.
I-unzip ang file .tar.gz
maaari kang magdagdag ng bandila -z
sa utos ng nilalaman ng extract .tar
-files, na tinalakay namin sa itaas. Mukhang ganito:
tar -xfz my_file.tar.gz
Dapat tandaan na ang koponan tar
Marami pang kapaki-pakinabang na mga flag.
Bash alias
Ang mga Bash alias (tinatawag ding mga alias o abbreviation) ay idinisenyo upang lumikha ng mga pinaikling pangalan ng mga utos o mga pagkakasunud-sunod ng mga ito, ang paggamit nito sa halip na mga regular na utos ay nagpapabilis sa trabaho. Kung may alyas ka bu
, na nagtatago ng utos python setup.py sdist bdist_wheel
, pagkatapos ay upang tawagan ang utos na ito, sapat na upang gamitin ang alyas na ito.
Upang lumikha ng naturang alias, idagdag lamang ang sumusunod na command sa file ~/.bash_profile
:
alias bu="python setup.py sdist bdist_wheel"
Kung ang iyong system ay walang file ~/.bash_profile
, pagkatapos ay maaari mo itong likhain gamit ang utos touch
. Pagkatapos gumawa ng alias, i-restart ang terminal, pagkatapos nito ay magagamit mo ang alias na ito. Sa kasong ito, pinapalitan ng input ng dalawang character ang input ng higit sa tatlong dosenang character ng command, na nilayon para sa
В ~/.bash_profile
maaari kang magdagdag ng mga alias para sa anumang madalas na ginagamit na mga utos.
▍Mga resulta
Sa post na ito, sinaklaw namin ang 21 sikat na Bash command at pinag-usapan ang paggawa ng mga command alias. Kung interesado ka sa paksang ito -
Minamahal na mambabasa! Anong mga utos na kapaki-pakinabang para sa mga nagsisimula ang idaragdag mo sa mga tinalakay sa artikulong ito?
→
Pinagmulan: www.habr.com