[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo

Litaba, phetolelo eo re e phatlalatsang kajeno, e etselitsoe ba batlang ho tseba mola oa taelo oa Linux. Bokhoni ba ho sebelisa sesebelisoa sena ka katleho bo ka boloka nako e ngata. Haholo-holo, re tla bua ka khetla ea Bash le litaelo tse 21 tse sebetsang mona. Re tla boela re bue ka mokhoa oa ho sebelisa lifolakha tsa litaelo le li-aliases tsa Bash ho potlakisa ho thaepa ha litaelo tse telele.

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo

Hape bala ho blog ea rona letoto la lingoliloeng tse mabapi le bash scripts

Lipehelo

Ha u ntse u ithuta ho sebetsa le mola oa taelo oa Linux, u tla kopana le likhopolo tse ngata tse thusang ho tsamaea. Tse ling tsa tsona, joalo ka "Linux" le "Unix", kapa "shell" le "terminal", ka linako tse ling lia ferekana. Ha re bue ka mantsoe ana le a mang a bohlokoa.

Unix ke sistimi e tsebahalang ea ts'ebetso e ntlafalitsoeng ke Bell Labs ka bo-1970. Khoutu ea hae e ne e koetsoe.

Linux ke sistimi e tsebahalang haholo ea Unix. Hona joale e sebelisoa lisebelisoa tse ngata, ho akarelletsa le lik'homphieutha.

seemelong (terminal), kapa terminal emulator ke lenaneo le fanang ka phihlello ea sistimi e sebetsang. U ka bula li-terminal lifensetere tse ngata ka nako e le 'ngoe.

Shell (shell) ke lenaneo le u lumellang hore u romele litaelo tse ngotsoeng ka puo e khethehileng ho sistimi e sebetsang.

Bash e emetse Bourne Again Shell. Ke puo e tloaelehileng haholo ea likhetla e sebelisoang ho sebelisana le sistimi e sebetsang. Hape, khetla ea Bash ke ea kamehla ho macOS.

Taelo mola interface (Command Line Interface, CLI) ke mokhoa oa ho sebelisana pakeng tsa motho le k'homphieutha, ha a sebelisa seo mosebedisi a kenyang litaelo ho tswa ho keyboard, 'me k'homphieutha, ho phethahatsa litaelo tsena, e bontša melaetsa ka mokhoa oa mongolo bakeng sa mosebedisi. CLI e sebelisoa haholo ho fumana lintlha tsa morao-rao mabapi le mekhatlo e itseng, mohlala, ka lifaele, le ho sebetsa ka lifaele. Sebopeho sa mola oa taelo se lokela ho khetholloa ho graphical user interface (GUI), eo haholo-holo e sebelisang mouse. Sehokelo sa mola oa taelo hangata se bitsoa mola oa taelo.

Script (script) ke lenaneo le lenyenyane le nang le tatellano ea litaelo tsa likhetla. Lingoliloeng li ngotsoe ho lifaele, li ka sebelisoa khafetsa. Ha u ngola mangolo, u ka sebelisa mefuta-futa, maemo, liluu, mesebetsi, le likarolo tse ling.

Kaha joale re se re koahetse mantsoe a bohlokoa, ke batla ho supa hore ke tla sebelisa mantsoe "Bash", "shell" le "command line" ka ho fapanyetsana mona, hammoho le mantsoe "directory" le "foldara".

E tloaelehileng melapo, eo re tla e sebelisa mona ke mokhoa o tloaelehileng (ho kenya ka mokhoa o tloaelehileng, stdin), tlhahiso e tloaelehileng (sephetho se tloaelehileng, stdout) le tlhahiso e tloaelehileng ea phoso (phoso e tloaelehileng, stderr).

Haeba ho mohlala litaelo tse tla fanoa ka tlase, u tla fumana ntho e kang my_whatever - sena se bolela hore sekhechana sena se hloka ho nkeloa sebaka ke ntho ea hau. Ka mohlala, lebitso la faele.

Joale, pele re tsoela pele ka tlhahlobo ea litaelo tseo boitsebiso bona bo nehetsoeng ho tsona, a re shebeng lethathamo la bona le litlhaloso tsa bona tse khutšoane.

21 Litaelo tsa Bash

▍ Ho fumana boitsebiso

  • man: E bonts'a tataiso ea mosebelisi (thuso) bakeng sa taelo.
  • pwd: e bonts'a tlhahisoleseling mabapi le bukana e sebetsang.
  • ls: e bonts'a litaba tsa bukana.
  • ps: E u lumella ho sheba tlhahisoleseling mabapi le lits'ebetso tse sebetsang.

▍ Ho qhekella tsamaiso ea lifaele

  • cd: fetola bukana ea ho sebetsa.
  • touch: theha faele.
  • mkdir: theha directory.
  • cp: Kopitsa faele.
  • mv: Tsamaisa kapa hlakola faele.
  • ln: theha sehokelo.

▍ Litsela tsa ho tsamaisa sebaka sa I/O le lipeipi

  • <: tsamaisa hape stdin.
  • >: tsamaisa hape stdout.
  • |: o kentse tlhahiso ea taelo e le 'ngoe ho kenya taelo e' ngoe.

▍ Ho bala lifaele

  • head: bala qalo ea faele.
  • tail: bala qetellong ea faele.
  • cat: Bala faele 'me u hatise likahare tsa eona skrineng, kapa u kopanye lifaele.

▍ Ho hlakola lifaele, ho emisa lits'ebetso

  • rm: Hlakola faele.
  • kill: emisa mokhoa.

▍Batla

  • grep: batla tlhahisoleseding.
  • ag: taelo e tsoetseng pele ea ho batla.

▍Ho boloka lintho tsa khale

  • tar: ho theha li-archives le ho sebetsa le tsona.

Ha re bue ka litaelo tsena ka botlalo.

Lintlha tsa Sehlopha

Ho qala, a re sebetsanang le litaelo, tseo liphello tsa tsona li fanoang ka foromo stdout. Hangata liphetho tsena li hlaha fensetereng ea ho qetela.

▍ Ho fumana boitsebiso

man command_name: bonts'a tataiso ea litaelo, ke hore, lintlha tsa thuso.

pwd: bonts'a tsela e eang bukeng ea hona joale ea ho sebetsa. Nakong ea ho sebetsa le mola oa taelo, hangata mosebelisi o hloka ho fumana hantle hore na o hokae tsamaisong.

ls: bonts'a litaba tsa bukana. Taelo ena e boetse e sebelisoa hangata.

ls -a: bontša lifaele tse patiloeng. folakha e sebelisoa mona -a litaelo ls. Tšebeliso ea lifolakha e thusa ho fetola boitšoaro ba litaelo.

ls -l: Bontša lintlha tse qaqileng mabapi le lifaele.

Hlokomela hore lifolakha li ka kopanngoa. Ka mohlala - joalo ka: ls -al.

ps: Sheba mekhoa e sebetsang.

ps -e: Bontša tlhahisoleseling mabapi le lits'ebetso tsohle tse sebetsang, eseng feela tse amanang le khetla ea mosebelisi ea hajoale. Hangata taelo ena e sebelisoa ka mokhoa ona.

▍ Ho qhekella tsamaiso ea lifaele

cd my_directory: fetola directory ea ho sebetsa ho my_directory. Ho nyolla mohato o le mong sefateng sa directory, sebelisa my_directory tsela e amanang ../.

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo
taelo ea cd

touch my_file: tlhahiso ea lifaele my_file ka tsela e fanoeng.

mkdir my_directory: theha foldara my_directory ka tsela e fanoeng.

mv my_file target_directory: tsamaisa faele my_file ho tsamaisetsa foldareng target_directory. Ha o hlakisa bukana ea sepheo, o hloka ho sebelisa tsela e felletseng ea ho ea ho eona (eseng kaho joalo ka ../).

sehlopha mve ka boela ea sebelisoa ho reha lifaele kapa lifoldara. Ka mohlala, e ka shebahala tjena:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: etsa kopi ea faele my_source_file ebe o e kenya foldareng target_directory.

ln -s my_source_file my_target_file: theha sehokelo sa tšoantšetso my_target_file ka faele my_source_file. Haeba u fetola sehokelo, faele ea mantlha le eona e tla fetoha.

Haeba file my_source_file e tla hlakoloa, ka nako eo my_target_file e tla sala. Folakha -s litaelo ln e u lumella ho etsa lihokelo tsa li-directory.

Joale ha re bue ka I/O redirection le lipeipi.

▍ Litsela tsa ho tsamaisa sebaka sa I/O le lipeipi

my_command < my_file: e nkela sebaka sa tlhaloso e tloaelehileng ea faele ea ho kenya (stdin) ka faele my_file. Sena se ka ba molemo haeba taelo e emetse ho kenya letsoho ho tsoa ho keyboard, mme data ena e se e bolokiloe faeleng.

my_command > my_file: e tsamaisa liphetho tsa taelo, ke hore, seo hangata se ka kenang ho sona stdout le tlhahiso ho skrine, ho faele my_file. Haeba file my_file ha e yo - e bopilwe. Haeba faele e le teng, e tla ngoloa.

Ka mohlala, ka mor'a ho phethahatsa taelo ls > my_folder_contents.txt faele ea mongolo e tla etsoa e nang le lethathamo la se leng bukeng ea hona joale e sebetsang.

Haeba sebakeng sa letšoao > sebelisa kaho >>, joale, ha feela faele eo tlhahiso ea taelo e lebisoang ho eona e le teng, faele ena e ke ke ea ngoloa. Lintlha li tla eketsoa qetellong ea faele ena.

Joale ha re shebeng ts'ebetso ea lipeipi tsa data.

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo
Sephetho sa taelo e le 'ngoe se fepeloa ho kenyelletsong ea taelo e' ngoe. Ho tšoana le ho hokahanya phala e 'ngoe ho e 'ngoe

first_command | second_command: letšoao la conveyor, |, e sebelisetsoa ho romela tlhahiso ea taelo e le 'ngoe ho taelo e' ngoe. Seo taelo e ka lehlakoreng le letšehali la sebopeho se hlalositsoeng e se romelang stdout, Oele ho stdin taelo ka ho le letona la letshwao la phaephe.

Ho Linux, data e ka tsamaisoa ho sebelisoa taelo efe kapa efe e entsoeng hantle. Hangata ho boleloa hore ntho e 'ngoe le e' ngoe e Linux ke pipeline.

O ka kenya litaelo tse ngata ho sebelisa letšoao la pipeline. E shebahala tjena:

first_command | second_command | third_command

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo
Phaephe ea litaelo tse 'maloa e ka bapisoa le pipeline

Hlokomela hore ha taelo ka ho le letšehali la letšoao |, e hlahisa ntho ho stdout, seo a se hlahisang se fumaneha hang-hang joalo ka stdin sehlopha sa bobeli. Ke hore, hoa etsahala hore, ka ho sebelisa pipeline, re sebetsana le ts'ebetso e tšoanang ea litaelo. Ka linako tse ling sena se ka lebisa liphellong tse sa lebelloang. Lintlha tse mabapi le sena li ka baloa mona.

Joale ha re bue ka ho bala data ho tsoa lifaeleng le ho li hlahisa skrineng.

▍ Ho bala lifaele

head my_file: o bala mela ho tloha qalong ea faele ebe o e hatisa ho ea skrineng. U ka bala eseng feela likahare tsa lifaele, empa hape le seo litaelo li se hlahisang stdinho sebelisa taelo ena e le karolo ea lipeipi.

tail my_file: bala mela ho tloha qetellong ea faele. Taelo ena e ka boela ea sebelisoa liphaepheng.

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo
Hlooho (hlooho) e ka pele, mme mohatla (mohatla) o ka morao

Haeba o sebetsa le data o sebelisa laeborari ea pandas, joale litaelo head и tail e lokela ho tloaeleha ho uena. Haeba ho se joalo, sheba setšoantšo se ka holimo, 'me u tla ba hopola habonolo.

Nahana ka litsela tse ling tsa ho bala lifaele, ha re bue ka taelo cat.

sehlopha cat e ka ba e hatisa litaba tsa faele skrineng, kapa e kopanya lifaele tse ngata. Ho itšetlehile ka hore na ke lifaele tse kae tse fetisetsoang taelong ena ha li bitsoa.

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo
taelo ea katse

cat my_one_file.txt: ha faele e le 'ngoe e fetisetsoa taelong ena, e e hlahisa ho stdout.

Haeba u e fa lifaele tse peli kapa lifaele tse ngata, joale e itšoara ka tsela e fapaneng.

cat my_file1.txt my_file2.txt: ka mor'a ho amohela lifaele tse 'maloa e le kenyelletso, taelo ena e kopanya likahare tsa eona le ho bontša se etsahetseng ho stdout.

Haeba sephetho sa khokahano ea faele se hloka ho bolokoa joalo ka faele e ncha, u ka sebelisa opareitara >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Joale a re ke re bue ka mokhoa oa ho hlakola lifaele le ho emisa lits'ebetso.

▍ Ho hlakola lifaele, ho emisa lits'ebetso

rm my_file: hlakola faele my_file.

rm -r my_folder: e hlakola foldara my_folder le lifaele le lifoldara tsohle tseo e nang le tsona. Folakha -r e bontša hore taelo e tla sebetsa ka mokhoa oa ho pheta-pheta.

Ho thibela sistimi ho kopa netefatso nako le nako ha faele kapa foldara e hlakoloa, sebelisa folakha -f.

kill 012345: E emisa ts'ebetso e boletsoeng, e e fa nako ea ho koala ka bokhabane.

kill -9 012345: E felisa ka likhoka mokhoa o boletsoeng oa ho sebetsa. Sheba folakha -s SIGKILL e bolela ho tšoana le folakha -9.

▍Batla

U ka sebelisa litaelo tse fapaneng ho batla data. Ka ho khetheha - grep, ag и ack. Ha re qale ho tloaelana le litaelo tsena ka grep. Ena ke taelo e lekiloeng ka nako, e ka tšeptjoang, eo, leha ho le joalo, e liehang ho feta e meng 'me ha e bonolo ho e sebelisa kamoo e leng kateng.

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo
taelo ea grep

grep my_regex my_file: lipatlisiso my_regex в my_file. Haeba papali e fumanoa, khoele eohle e khutlisetsoa bakeng sa papali ka 'ngoe. Ea kamehla my_regex tshoaroa joalo ka polelo e tloaelehileng.

grep -i my_regex my_file: Patlo e etsoa ka mokhoa o sa tsotelleng.

grep -v my_regex my_file: e khutlisa mela eohle e se nang my_regex. Folakha -v e bolela ho inversion, e tšoana le opareitara NOT, e fumanoang lipuong tse ngata tsa lenaneo.

grep -c my_regex my_file: E khutlisa lintlha tse mabapi le palo ea lintho tse tšoanang bakeng sa paterone e batliloeng e fumanoang faeleng.

grep -R my_regex my_folder: e etsa patlo e iphetang lifaeleng tsohle tse foldareng e boletsoeng le lifoldareng tse ho eona.

Joale ha re bue ka sehlopha ag. O ile a tla hamorao grep, e potlakile, e bonolo haholoanyane ho sebetsa le eona.

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo
taelo ea ag

ag my_regex my_file: e khutlisa tlhahisoleseding e mabapi le linomoro tsa line, le mela ka boeona, eo ho eona ho fumanoeng lipapali le tsona my_regex.

ag -i my_regex my_file: Patlo e etsoa ka mokhoa o sa tsotelleng.

sehlopha ag sebetsa faele ka bohona .gitignore 'me ha e kenyeletse se hlahisoang se fumanoang lifoldareng kapa lifaeleng tse thathamisitsoeng faeleng eo. E phutholohile haholo.

ag my_regex my_file -- skip-vcs-ignores: likahare tsa lifaele tsa taolo ea mofuta oa othomathike (joalo ka .gitignore) ha e nkeloe hloohong ha ho batloa.

Ho phaella moo, e le hore u bolelle sehlopha ag hore na ke litsela life tseo u batlang ho li qhelela ka thoko ho patlo, u ka etsa faele .agignore.

Qalong ea karolo ena, re boletse taelo ack. Lihlopha ack и ag li tšoana haholo, re ka re li 99% li ka fapanyetsana. Leha ho le joalo, sehlopha ag e sebetsa kapele, ke ka hona ke e hlalositseng.

Joale ha re bue ka ho sebetsa le li-archives.

▍Ho boloka lintho tsa khale

tar my_source_directory: e kopanya lifaele ho tsoa foldareng my_source_directory ho faele e le 'ngoe ea tarball. Lifaele tse joalo li na le thuso bakeng sa ho fetisetsa lihlopha tse kholo tsa lifaele ho motho e mong.

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo
taelo ea tar

Lifaele tsa tarball tse hlahisoang ke taelo ena ke lifaele tse nang le katoloso .tar (Tape ARchive). Taba ea hore lentsoe "tape" (tape) le patiloe ka lebitso la taelo le katoloso ea mabitso a lifaele tseo e li bōpang e bontša hore na taelo ena e bile teng nako e kae.

tar -cf my_file.tar my_source_directory: e theha faele ea tarball e bitsoang my_file.tar ka dikahare tsa foldara my_source_directory. Folakha -c e emetse “bopa” (pōpo), le folakha -f joalo ka "file" (file).

Ho ntša lifaele ho .tar-file, sebelisa taelo tar ka lifolakha -x ("ho ntša", motsu) le -f ("faele", faele).

tar -xf my_file.tar: e ntša lifaele ho tsoa ho my_file.tar ho directory ea hona joale e sebetsang.

Joale a re ke re bue ka mokhoa oa ho compress le decompress .tar- lifaele.

tar -cfz my_file.tar.gz my_source_directory: mona ho sebelisa folakha -z ("zip", compression algorithm) e bontša hore algorithm e lokela ho sebelisoa ho hatella lifaele gzip (GNUzip). Khatello ea faele e boloka sebaka sa disk ha u boloka lifaele tse joalo. Haeba lifaele li reriloe, mohlala, hore li fetisetsoe ho basebelisi ba bang, sena se kenya letsoho ho khoasolloa ka potlako ha lifaele tse joalo.

Unzip file .tar.gz o ka eketsa folakha -z ho taelo ea dikahare tsa extract .tar-file, tseo re buileng ka tsona ka holimo. E shebahala tjena:

tar -xfz my_file.tar.gz
Ho lokela ho hlokomeloa hore sehlopha tar Ho na le lifolakha tse ling tse ngata tse sebetsang.

Li-aliases tsa Bash

Li-aliases tsa Bash (tseo hape li bitsoang li-aliases kapa likhutsufatso) li etselitsoe ho etsa mabitso a khutsufalitsoeng a litaelo kapa tatellano ea tsona, eo tšebeliso ea eona sebakeng sa litaelo tse tloaelehileng e potlakisang mosebetsi. Haeba u na le alias bu, e patang taelo python setup.py sdist bdist_wheel, ebe ho bitsa taelo ena, ho lekane ho sebelisa alias ena.

Ho theha lebitso le joalo, eketsa feela taelo e latelang faeleng ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Haeba sistimi ea hau e se na file ~/.bash_profile, joale u ka iketsetsa eona u sebelisa taelo touch. Kamora ho theha li-alias, qala setsi bocha, ka mor'a moo o ka sebelisa alias ena. Tabeng ena, tlhahiso ea litlhaku tse peli e nkela sebaka sa litlhaku tse fetang tse tharo tsa taelo, tse reretsoeng likopano Liphutheloana tsa Python.

В ~/.bash_profile o ka eketsa li-alias bakeng sa litaelo tse sebelisoang khafetsa.

▍Liphetho

Ka poso ena, re koahetse litaelo tse 21 tse tsebahalang tsa Bash mme re buile ka ho theha li-aliases tsa litaelo. Haeba u thahasella sehlooho sena - bonang letoto la likhatiso tse nehetsoeng ho Bash. ke U ka fumana mofuta oa pdf oa lingoliloeng tsena. Hape, haeba u batla ho ithuta Bash, hopola hore, joalo ka sistimi efe kapa efe ea mananeo, boikoetliso ke senotlolo.

Babali ba ratehang! Ke litaelo life tse molemo ho ba qalang tseo u ka li eketsang ho tseo ho builoeng ka tsona sehloohong see?

Hape bala ho blog ea rona letoto la lingoliloeng tse mabapi le bash scripts

[bookmarked] Bash bakeng sa ba qalang: 21 litaelo tse molemo

Source: www.habr.com

Eketsa ka tlhaloso