[faailoga] Bash mo tagata amata: 21 tulafono aoga

O mea, o le faaliliuga o loʻo matou lolomiina i aso nei, ua faʻamoemoe mo i latou e manaʻo e faʻatautaia le laina o le Linux. O le iloa lelei o le fa'aogaina o lenei meafaigaluega e fa'asaoina ai le tele o le taimi. Aemaise lava, o le a tatou talanoa e uiga i le Bash shell ma 21 tulafono aoga. O le a matou talanoa foʻi pe faʻapefea ona faʻaogaina fuʻa ma igoa ole Bash e faʻavave ai le taina o faʻamatalaga uumi.

[faailoga] Bash mo tagata amata: 21 tulafono aoga

Faitau foʻi la matou faʻasologa o faʻasalalauga e uiga i tusitusiga bash

Faʻamatalaga

A'o e a'oa'o e fa'aoga le laina fa'atonu Linux, e mafai ona e mauaina le tele o manatu e aoga e fa'atautaia ai. O nisi o latou, e pei o le "Linux" ma le "Unix", poʻo le "shell" ma le "terminal", o nisi taimi e le mautonu. Sei o tatou talanoa e uiga i nei ma isi faaupuga taua.

Unix o se faiga fa'aoga ta'uta'ua na fausia e Bell Labs i le 1970s. Na tapunia lona code.

Linux o le faiga fa'aoga e pei o Unix e sili ona ta'uta'ua. O nei aso ua faʻaaogaina i le tele o masini, e aofia ai komepiuta.

taunuʻuga (terminal), po'o le emulator terminal, o se polokalame e maua ai le avanoa i le faiga fa'aoga. E mafai ona e tatalaina le tele o fa'amalama fa'amalama i le taimi e tasi.

atigi ( atigi ) o se polokalame e mafai ai ona e auina atu poloaiga tusia i se gagana faapitoa i le faiga faagaoioia.

Bash e tu mo Bourne Again Shell. O le gagana e masani ona fa'aaogaina e fegalegaleai ai ma le faiga fa'aoga. E le gata i lea, o le Bash o le atigi faaletonu ile macOS.

Fa'atonu laina laina (Command Line Interface, CLI) o se auala o fegalegaleaiga i le va o se tagata ma se komepiuta, lea e ulufale ai le tagata faʻaoga poloaiga mai le piano, ma le komepiuta, faʻatinoina nei poloaiga, faʻaalia feʻau i tusitusiga mo le tagata faʻaoga. O le mea moni, o le CLI e faʻaaogaina e maua mai ai faʻamatalaga lata mai e uiga i nisi faʻalapotopotoga, mo se faʻataʻitaʻiga, e uiga i faila, ma galue ma faila. O le fa'atonuga laina laina e tatau ona va'aia mai le Graphical User Interface (GUI), lea e fa'aaoga muamua i se isumu. O le fa'atonuga laina laina e masani ona ta'ua na o le laina fa'atonu.

Tusitala (script) ose polokalame la'ititi e iai se fa'asologa o fa'atonuga o atigi. O faʻamaumauga e tusia i faila ma e mafai ona faʻaaoga i le tele o taimi. Pe a tusia ni tusitusiga, e mafai ona e faʻaogaina fesuiaiga, tuutuuga, matasele, galuega, ma isi mea.

I le taimi nei ua uma ona matou ufiufi ia faaupuga taua, ou te fia faailoa atu o iinei o le a ou faaaogaina ai faaupuga "Bash", "shell" ma le "line command line", faapea foi ma faaupuga "directory" ma le "folder". ".

Tagavai vaitafe, lea o le a matou faʻaogaina iinei - o le faʻaoga masani lea (faʻaoga masani, stdin), galuega faatino masani, stdout) ma fa'asologa fa'aletonu tulaga (standard error, stderr).

Afai i le faʻatonuga faʻataʻitaʻiga o loʻo i lalo e te vaʻai i se mea e pei o my_whatever - o lona uiga e tatau ona sui lenei vaega i se mea a oe. Mo se faʻataʻitaʻiga, le igoa faila.

Ia, ae tatou te leʻi amata suʻesuʻeina poloaiga o loʻo tuʻuina atu i ai lenei mea, seʻi o tatou tilotilo i la latou lisi ma a latou faʻamatalaga pupuu.

21 Poloaiga a Bash

▍Mauaina faamatalaga

  • man: Fa'aali le ta'iala (fesoasoani) mo le fa'atonuga.
  • pwd: Fa'aalia fa'amatalaga e uiga i le lisi o galuega.
  • ls: Fa'aali mea o lo'o i totonu o se lisi.
  • ps: Fa'atagaina oe e va'ai fa'amatalaga e uiga i faiga fa'agasolo.

▍ Fa'atonu faiga faila

  • cd: Suia le lisi galue.
  • touch: Fausia se faila.
  • mkdir: Fausia se lisi.
  • cp: Kopi se faila.
  • mv: Aveese pe tape se faila.
  • ln: Fausia se so'oga.

▍I/O redirection ma paipa

  • <: toe faasino stdin.
  • >: toe faasino stdout.
  • |: Pipa le galuega faatino o le tasi poloaiga i le tuuina atu o le isi poloaiga.

▍ Faitau faila

  • head: Faitau le amataga o le faila.
  • tail: Faitau pito o le faila.
  • cat: Faitau se faila ma faʻaalia mea o loʻo i luga o le lau pe faʻapipiʻi faila.

▍Tapeina faila, taofi faiga

  • rm: Aveese le faila.
  • kill: Taofi le faagasologa.

▍Su'esu'e

  • grep: saili mo faamatalaga.
  • ag: fa'atonuga su'esu'e.

▍Fa'amaumauga

  • tar: fatuina o faamaumauga ma galulue faatasi ma i latou.

Sei o tatou talanoa atili e uiga i nei poloaiga.

Auiliiliga a le au

Muamua, se'i o tatou va'ai i fa'atonuga o lo'o fa'aalia i'uga i le fomu stdout. E masani ona aliali mai nei fa'ai'uga ile fa'amalama fa'amalama.

▍Mauaina faamatalaga

man command_name: galuega faatino o le tusi lesona, o lona uiga, faʻamatalaga faʻamatalaga.

pwd: Fa'aali le ala i le lisi galue o lo'o iai nei. Pe a galue ma le laina o le poloaiga, e masani ona manaʻomia e le tagata faʻaoga le mea tonu o loʻo i ai i totonu o le polokalama.

ls: Fa'aali mea o lo'o i totonu o le fa'atonuga. O lenei poloaiga e faʻaaogaina soo.

ls -a: Fa'aali faila natia. O lo'o fa'aaogaina le fu'a iinei -a poloaʻiga ls. O le fa'aogaina o fu'a e fesoasoani e fa'avasega le amio o fa'atonuga.

ls -l: Fa'aali fa'amatalaga auiliili e uiga i faila.

Faamolemole ia matau e mafai ona tuufaatasia fu'a. Mo se faʻataʻitaʻiga, pei o lenei: ls -al.

ps: Va'ai faiga fa'agasolo.

ps -e: Fa'aalia fa'amatalaga e uiga i faiga fa'agasolo uma, ae le na'o mea e feso'ota'i ma le atigi o lo'o iai nei. O lenei poloaiga e masani ona faʻaaogaina i lenei fomu.

▍ Fa'atonu faiga faila

cd my_directory: sui le lisi galue i my_directory. Ina ia siitia le tasi tulaga maualuga i le la'au fa'atonu, fa'aoga my_directory ala fa'atatau ../.

[faailoga] Bash mo tagata amata: 21 tulafono aoga
cd poloaiga

touch my_file: fai faila my_file i luga o se ala ua tuuina atu.

mkdir my_directory: Fausia se faila my_directory i luga o se ala ua tuuina atu.

mv my_file target_directory: siitia faila my_file i faila target_directory. Pe a faʻamaoti le lisi autu, e tatau ona e faʻaogaina le auala atoatoa i ai (ae le o se fausiaina pei ../).

'au mv, e le gata i lea, e mafai ona faʻaaoga e toe faʻaigoaina faila poʻo faila. Mo se faʻataʻitaʻiga, atonu e pei o lenei:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: Fausia se kopi o le faila my_source_file ma tuu i totonu o se faila target_directory.

ln -s my_source_file my_target_file: Fausia se so'oga fa'atusa my_target_file i faila my_source_file. Afai e te suia le sootaga, o le a suia foi le faila faila.

Afai o le faila my_source_file o le a tapeina, ona my_target_file o le a tumau. Fu'a -s poloaʻiga ln fa'atagaina oe e fai so'oga mo fa'atonuga.

Sei o tatou talanoa e uiga i le I/O redirection ma pipelines.

▍I/O redirection ma paipa

my_command < my_file: sui le au faila faila (stdin) i le faila my_file. E mafai ona aoga lenei mea pe a manaʻomia e le faʻatonuga se faʻaoga mai le piano, ma o nei faʻamatalaga o loʻo teuina muamua i se faila.

my_command > my_file: toe faʻafeiloaʻi iʻuga o le poloaiga, o lona uiga, o le a le mea e masani ona iʻu i totonu stdout ma faʻaalia i luga o le lau, i se faila my_file. Afai o le faila my_file e le o iai - ua faia. Afai e iai le faila, ua toe tusi.

Mo se faʻataʻitaʻiga, pe a uma ona faʻatinoina le faʻatonuga ls > my_folder_contents.txt o le a faia se faila faila o loʻo i ai se lisi o mea o loʻo i totonu o le lisi galue o loʻo iai nei.

Afai nai lo le faailoga > faaaoga lelei le mamanu >>, o lea, pe a fai o le faila lea e toe faʻafeiloaʻi ai le faʻatonuga o loʻo i ai, o lenei faila o le a le toe tusiina. O faʻamatalaga o le a faʻapipiʻiina i le pito o lenei faila.

Se'i o tatou va'ai i le fa'agaioiina o laina paipa.

[faailoga] Bash mo tagata amata: 21 tulafono aoga
O le a le mea o lo'o faia e le tasi poloaiga e fafaga i le isi fa'atonuga. E pei o le sosooina o le tasi paipa i le isi

first_command | second_command: fa'ailoga avefe'au, |, e faʻaaogaina e lafo ai faʻaiʻuga o le tasi poloaiga i le isi poloaiga. O le a le fa'atonuga o lo'o tu i le itu agavale o le fausaga fa'amatalaina e lafo i stdout, Pau i totonu stdin poloaiga, lea e tu i le itu taumatau o le faailoga conveyor.

I Linux, e mafai ona faia faʻamatalaga pipelining e toetoe lava o soʻo se faʻatonuga lelei. E masani ona fai mai o mea uma i Linux o se paipa.

E mafai ona e fa'aogaina le fa'ailoga o le conveyor e filifili fa'atasi ai le tele o fa'atonuga. E pei o lenei:

first_command | second_command | third_command

[faailoga] Bash mo tagata amata: 21 tulafono aoga
O se paipa o le tele o poloaiga e mafai ona faʻatusatusa i se paipa

Faamolemole ia matau o le taimi o le poloaiga i le agavale o le faailoga |, e maua ai se mea e stdout, o mea na te faia e maua vave e pei o stdin 'au lona lua. O lona uiga, e foliga mai pe a faʻaaogaina se paipa, o loʻo tatou feagai ma le faʻatinoina tutusa o poloaiga. O nisi taimi e mafai ona oo atu ai i ni taunuuga e lei faamoemoeina. E mafai ona e faitau atili e uiga i lenei mea iinei.

Sei o tatou talanoa e uiga i le faitauina o faʻamatalaga mai faila ma faʻaalia i luga o le lau.

▍ Faitau faila

head my_file: Faitau laina mai le amataga o le faila ma faʻaalia i luga o le lau. E mafai ona e faitau e le gata i mea o loʻo i totonu o faila, ae faʻapea foʻi ma mea e tuʻuina atu i ai poloaiga stdinfa'aogaina lenei fa'atonuga o se elemene paipa.

tail my_file: Faitau laina mai le pito o le faila. O lenei poloaiga e mafai foi ona faʻaaogaina i se paipa.

[faailoga] Bash mo tagata amata: 21 tulafono aoga
O le ulu (ulu) o loʻo i luma, ma le siʻusiʻu (siʻusiʻu) i tua

Afai o loʻo e galue ma faʻamatalaga e faʻaaoga ai le faletusi pandas, ona faʻatonuina lea head и tail e tatau ona e masani ai. Afai e le o le tulaga lea, vaʻai i le ata o loʻo i luga ma o le a faigofie ona e manatuaina.

Sei o tatou tilotilo i isi auala e faitau ai faila, talanoa e uiga i le poloaiga cat.

au cat pe fa'aalia mea o lo'o i totonu o se faila i luga o le lau, pe fa'apipi'i faila e tele. E fa'alagolago i le tele o faila e tu'uina atu i lenei fa'atonuga pe a vala'au.

[faailoga] Bash mo tagata amata: 21 tulafono aoga
fa'atonuga pusi

cat my_one_file.txt: A tuʻuina atu lenei faʻatonuga se faila se tasi, e faʻaalia i totonu stdout.

Afai e te tu'uina atu i ai faila e lua pe sili atu fo'i faila, ona ese lea o le amio.

cat my_file1.txt my_file2.txt: i le mauaina o le tele o faila e fai ma faʻaoga, o lenei poloaiga o le a tuʻufaʻatasia a latou mea ma mea e maua mai i totonu stdout.

Afai e manaʻomia le faʻasaoina o le faʻasologa o le faila o se faila fou, e mafai ona e faʻaogaina le faʻaoga >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Se'i o tatou talanoa nei pe fa'afefea ona tape faila ma taofi faiga.

▍Tapeina faila, taofi faiga

rm my_file: tapeina se faila my_file.

rm -r my_folder: tapeina se faila my_folder ma faila uma ma faila o loo i ai. Fu'a -r o lo'o ta'u mai ai o le fa'atonuga o le a galue i le faiga toe fa'afo'i.

Ina ia taofia le faiga mai le fesili mo se faʻamaoniga i taimi uma e te tapeina ai se faila poʻo se faila, faʻaaoga le fuʻa -f.

kill 012345: Taofi le faagasologa o le tamo'e ma'oti, tu'u le taimi e tapuni ma le alofa.

kill -9 012345: Fa'amuta fa'amalosi le fa'agasolo fa'atonu. Fu'a o ituaiga -s SIGKILL o lona uiga e tutusa ma le fu’a -9.

▍Su'esu'e

E mafai ona e fa'aogaina tulafono eseese e su'e ai fa'amaumauga. Ae faapito tonu lava - grep, ag и ack. Se'i amata la tatou masani i 'au nei ma grep. O se faʻatonuga faʻataʻitaʻi taimi, faʻatuatuaina, lea, e ui i lea, e sili atu lemu nai lo isi ma e le faigofie ona faʻaoga e pei ona i ai.

[faailoga] Bash mo tagata amata: 21 tulafono aoga
grep poloaiga

grep my_regex my_file: faia se sailiga my_regex в my_file. Afai e maua se fa'atusa, e toe fa'afo'i le manoa atoa mo ta'aloga ta'itasi. Fa'atonu my_regex e fa'atatauina o se fa'aaliga masani.

grep -i my_regex my_file: O le su'esu'ega o lo'o fa'atinoina i se tulaga fa'aletonu.

grep -v my_regex my_file: toe faafoi atu laina uma e le o iai my_regex. Fu'a -v o lona uiga feliuliua'i, e pei o le tagata fa'afoe NOT, e maua i le tele o gagana polokalame.

grep -c my_regex my_file: Fa'afo'i fa'amatalaga e uiga i le numera o fa'atusa i le mamanu su'esu'e o lo'o maua i le faila.

grep -R my_regex my_folder: Fa'atino se su'esu'ega fa'asolosolo i faila uma o lo'o i totonu o se pusa tu'ufa'atasi ma i totonu o faila faila i totonu.

Se'i o tatou talanoa nei e uiga i le 'au ag. Na sau o ia mulimuli ane grep, e televave ma sili atu ona faigofie e galue ai.

[faailoga] Bash mo tagata amata: 21 tulafono aoga
ag poloaiga

ag my_regex my_file: toe faafoi faʻamatalaga e uiga i numera laina, ma laina lava ia, lea na maua ai faʻatusatusaga my_regex.

ag -i my_regex my_file: O le su'esu'ega o lo'o fa'atinoina i se tulaga fa'aletonu.

au ag fa'agasolo otometi le faila .gitignore ma e le aofia ai mai le gaioiga mea o loʻo maua i totonu o faila poʻo faila o loʻo lisiina i lena faila. E matua mafanafana lava.

ag my_regex my_file -- skip-vcs-ignores: mea o lo'o i totonu o faila otometi fa'atonu faiga fa'atonu (pei .gitignore) e le amanaia pe a su'e.

E le gata i lea, ina ia taʻu atu le poloaiga ag e fuafua po o fea ala faila e manaʻomia ona faʻateʻaina mai le sailiga, e mafai ona e fatuina se faila .agignore.

I le amataga o lenei vaega sa matou taʻua le poloaiga ack. 'Au ack и ag e talitutusa lava, e mafai ona tatou fai atu e 99% e mafai ona fesuiaʻi. Peitai, o le au ag galue vave, o le mea lea na ou faamatalaina ai.

Se'i o tatou talanoa nei e uiga i le galue i fa'amaumauga.

▍Fa'amaumauga

tar my_source_directory: tu'ufa'atasia faila mai se faila my_source_directory i totonu o le tasi faila tarball. O ia faila e faigofie ona faʻaoga ina ia mafai ai ona faʻafeiloaʻi seti tele o faila i se tasi.

[faailoga] Bash mo tagata amata: 21 tulafono aoga
poloaiga ta

O faila tarball na faia e lenei poloaiga o faila ma le faʻaopoopoga .tar (Tape ARchive). O le mea moni o le upu "tape" o loʻo natia i le igoa o le poloaiga ma le faʻaopoopoga o igoa o faila na te fatuina e faʻaalia ai le umi na i ai lenei poloaiga.

tar -cf my_file.tar my_source_directory: fatuina se faila tarball e igoa my_file.tar ma mea o lo'o i totonu o le faila my_source_directory. Fu'a -c e tu mo le “faia”, ma le fu’a -f pei o le "faila" (faila).

E aveese mai faila o loʻo i totonu .tar-faila, o loʻo faʻaaogaina le poloaiga tar ma fu'a -x (“su'i”, fa'aputuga) ma -f (“faila”, faila).

tar -xf my_file.tar: aveese mai faila mai my_file.tar i le tusi faigaluega o lo'o iai nei.

Se'i o tatou talanoa nei pe fa'afefea ona compress ma decompress .tar- faila.

tar -cfz my_file.tar.gz my_source_directory: iinei, faʻaaogaina se fuʻa -z ("zip", compression algorithm) o loʻo faʻaalia ai e tatau ona faʻaoga le algorithm e faʻapipiʻi faila gzip (GNU zip). Fa'apipi'i faila e mafai ai ona e fa'asaoina le avanoa o le disk pe a teu faila fa'apea. Afai e fuafua faila, mo se faʻataʻitaʻiga, e tuʻuina atu i isi tagata faʻaoga, e fesoasoani lea e sii vave ai ia faila.

Tatala faila .tar.gz e te mafaia i le fa'aopoopoina o se fu'a -z i le fa'atonuga o le fa'aosoina o mea .tar- faila, lea na matou talanoaina i luga. E pei o lenei:

tar -xfz my_file.tar.gz
E tatau ona maitauina o le 'au tar E tele atu fu'a aoga.

Bash aliases

Bash aliases (e taʻua foi o aliases poʻo faʻapuupuuga) ua mamanuina e fatu ai igoa faʻapuupuu o poloaiga poʻo latou faʻasologa, o le faʻaaogaina nai lo tulafono masani e faʻavavevave ai galuega. Afai o oe, fa'apea, e iai sau fa'aigoa bu, i tua o loo natia ai le poloaiga python setup.py sdist bdist_wheel, ona taʻua lea o lenei poloaiga ua lava le faʻaaogaina o lenei igoa.

Ina ia fatuina sea igoa, naʻo le faʻaopoopoina o le poloaiga lenei i le faila ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Afai e leai se faila i lau polokalama ~/.bash_profile, ona mafai lea ona e fatuina oe lava e faʻaaoga le poloaiga touch. A maeʻa ona faia se igoa, toe amata le laina, a maeʻa ona e faʻaogaina lea igoa. I lenei tulaga, o le ulufale i ni mataitusi se lua e suitulaga i le ulufale atu i le sili atu ma le tolu taseni mataitusi o le poloaiga, lea ua faamoemoe mo potopotoga Python afifi.

В ~/.bash_profile E mafai ona e fa'aopoopoina igoa fa'aigoa mo so'o se fa'atonuga e fa'aaoga soo.

▍I'uga

I lenei tusiga, na matou vaʻavaʻai i le 21 lauiloa Bash commands ma talanoa e uiga i le fatuina o igoa igoa. Afai e te fiafia i lenei mataupu - faauta o se faasologa o lomiga e tuuto atu ia Bash. o E mafai ona e mauaina se pdf version o nei lomiga. E le gata i lea, afai e te manaʻo e faʻatautaia Bash, ia manatua, e pei o le aʻoaʻoina o soʻo se isi polokalama polokalama, o le faʻataʻitaʻiga o le ki.

Lau faitau le au faitau! O a faʻatonuga e te faʻaopoopoina i latou o loʻo aofia i lenei tusiga e aoga mo tagata amata e iloa?

Faitau foʻi la matou faʻasologa o faʻasalalauga e uiga i tusitusiga bash

[faailoga] Bash mo tagata amata: 21 tulafono aoga

puna: www.habr.com

Faaopoopo i ai se faamatalaga