[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo

Ang materyal, ang paghubad nga among gipatik karon, gituyo alang sa gusto nga mag-master sa linya sa mando sa Linux. Ang pagkahibalo unsaon paggamit niini nga himan sa epektibong paagi makadaginot ug daghang panahon. Sa partikular, maghisgot kita bahin sa Bash shell ug 21 ka mapuslanong mga sugo. Maghisgot usab kami kung giunsa paggamit ang mga bandera ug alyas sa Bash command aron mapadali ang pag-type sa taas nga mga pahayag.

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo

β†’ Basaha usab ang among serye sa blog sa mga publikasyon bahin sa mga script sa bash

Mga Termino

Samtang nagkat-on ka sa paggamit sa linya sa command sa Linux, mahimo nimong makit-an ang daghang mga konsepto nga magamit sa pag-navigate. Ang uban kanila, sama sa "Linux" ug "Unix", o "shell" ug "terminal", usahay maglibog. Atong hisgotan kini ug uban pang importanteng termino.

Unix maoy usa ka popular nga operating system nga gimugna sa Bell Labs niadtong 1970s. Ang code niini gisirhan.

Linux mao ang pinakasikat nga operating system nga sama sa Unix. Karong mga adlawa kini gigamit sa daghang mga himan, lakip ang mga kompyuter.

terminal (terminal), o terminal emulator, usa ka programa nga naghatag og access sa operating system. Mahimo nimong ablihan ang daghang mga terminal windows sa parehas nga oras.

Shell (shell) usa ka programa nga nagtugot kanimo sa pagpadala mga mando nga gisulat sa usa ka espesyal nga lengguwahe sa operating system.

Bash nagpasabot sa Bourne Again SHell. Kini ang labing komon nga pinulongan sa shell nga gigamit sa pagpakig-uban sa operating system. Dugang pa, ang Bash mao ang default shell sa macOS.

Interface sa command line (Command Line Interface, CLI) usa ka pamaagi sa interaksyon tali sa usa ka tawo ug sa usa ka kompyuter, diin ang user mosulod sa mga sugo gikan sa keyboard, ug ang kompyuter, nga nagpatuman niini nga mga sugo, nagpakita sa mga mensahe sa text form para sa user. Sa panguna, ang CLI gigamit aron makakuha og labing bag-ong kasayuran bahin sa pipila nga mga entidad, pananglitan, bahin sa mga file, ug aron magtrabaho sa mga file. Ang interface sa command line kinahanglan nga mailhan gikan sa Graphical User Interface (GUI), nga panguna nga gigamit sa usa ka mouse. Ang interface sa command line sagad nga gitawag nga command line.

Script (script) usa ka gamay nga programa nga adunay usa ka han-ay sa mga sugo sa shell. Ang mga script gisulat sa mga file ug mahimong magamit sa daghang mga higayon. Sa pagsulat sa mga script, mahimo nimong gamiton ang mga variable, conditional, loops, functions, ug uban pang mga feature.

Karon nga natabonan na nato ang importanteng mga termino, gusto nakong ipunting nga dinhi akong gamiton ang mga termino nga "Bash", "shell" ug "command line" nga baylobaylo, ingon man ang mga termino nga "direktoryo" ug "folder ".

Standard mga sapa, nga atong gamiton dinhi - kini ang standard input (standard input, stdin), standard nga output, stdout) ug standard error output (standard error, stderr).

Kung sa mga pananglitan sa sugo sa ubos makita nimo ang usa ka butang nga sama sa my_whatever - kini nagpasabot nga kini nga tipik kinahanglan nga pulihan sa usa ka butang nga imoha. Pananglitan, ang ngalan sa file.

Karon, sa dili pa kita magsugod sa pag-analisar sa mga sugo nga gipahinungod niini nga materyal, atong tan-awon ang ilang listahan ug ang ilang mubo nga mga paghulagway.

21 Bash nga mga sugo

▍Pagkuha og impormasyon

  • man: Nagpakita sa giya sa gumagamit (tabang) alang sa sugo.
  • pwd: Nagpakita og impormasyon mahitungod sa working directory.
  • ls: Nagpakita sa mga sulod sa usa ka direktoryo.
  • ps: Nagtugot kanimo sa pagtan-aw sa impormasyon bahin sa mga proseso sa pagpadagan.

▍Pagmaniobra sa sistema sa file

  • cd: Usba ang working directory.
  • touch: Paghimo og file.
  • mkdir: Paghimo og direktoryo.
  • cp: Pagkopya og file.
  • mv: Pagbalhin o pagtangtang sa usa ka file.
  • ln: Paghimo og link.

▍I/O redirection ug pipelines

  • <: redirect stdin.
  • >: redirect stdout.
  • |: Pag-pipe sa output sa usa ka command ngadto sa input sa laing command.

▍ Pagbasa sa mga file

  • head: Basaha ang sinugdanan sa file.
  • tail: Basaha ang katapusan sa file.
  • cat: Basaha ang usa ka file ug ipakita ang mga sulod niini sa screen o idugtong ang mga file.

▍Pagtangtang sa mga file, paghunong sa mga proseso

  • rm: Pagtangtang sa file.
  • kill: Hunonga ang proseso.

▍Pagpangita

  • grep: pangitag impormasyon.
  • ag: advanced search command.

▍Pag-archive

  • tar: paghimo og mga archive ug pagtrabaho uban kanila.

Atong hisgotan kini nga mga sugo sa mas detalyado.

Mga detalye sa team

Una, atong tan-awon ang mga sugo kansang mga resulta gipakita sa porma stdout. Kasagaran kini nga mga resulta makita sa usa ka terminal nga bintana.

▍Pagkuha og impormasyon

man command_name: output sa command manual, nga mao, impormasyon sa pakisayran.

pwd: Nagpakita sa agianan sa kasamtangan nga direktoryo sa pagtrabaho. Kung nagtrabaho kauban ang command line, ang tiggamit kanunay kinahanglan nga mahibal-an kung diin eksakto siya sa sistema.

ls: Nagpakita sa mga sulod sa direktoryo. Kini nga sugo gigamit usab kanunay.

ls -a: Ipakita ang tinago nga mga file. Ang bandera gigamit dinhi -a mga mando ls. Ang paggamit sa mga bandera makatabang sa pagpahiangay sa pamatasan sa mga sugo.

ls -l: Ipakita ang detalyadong impormasyon bahin sa mga file.

Palihug timan-i nga ang mga bandila mahimong ikombinar. Pananglitan, sama niini: ls -al.

ps: Tan-awa ang nagdagan nga mga proseso.

ps -e: Nagpakita og impormasyon mahitungod sa tanang proseso nga nagdagan, dili lang sa mga nalambigit sa kasamtangang shell sa user. Kini nga sugo sagad gigamit niini nga porma.

▍Pagmaniobra sa sistema sa file

cd my_directory: usba ang working directory sa my_directory. Aron mabalhin ang usa ka lebel nga mas taas sa punoan sa direktoryo, gamita my_directory relatibong dalan ../.

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo
cd nga sugo

touch my_file: paghimo sa file my_file subay sa gihatag nga dalan.

mkdir my_directory: Paghimo og folder my_directory subay sa gihatag nga dalan.

mv my_file target_directory: ibalhin ang file my_file sa folder target_directory. Kung gipiho ang target nga direktoryo, kinahanglan nimo gamiton ang hingpit nga agianan niini (ug dili usa ka pagtukod sama sa ../).

Team mv, dugang pa, mahimong gamiton sa pag-usab sa ngalan sa mga file o folder. Pananglitan, kini mahimong sama niini:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: Paghimo og kopya sa file my_source_file ug ibutang kini sa usa ka folder target_directory.

ln -s my_source_file my_target_file: Paghimo og simbolo nga sumpay my_target_file kada file my_source_file. Kung imong usbon ang link, ang gigikanan nga file mausab usab.

Kung ang file my_source_file mapapas, unya my_target_file magpabilin. Bandila -s mga mando ln nagtugot kanimo sa paghimo og mga link alang sa mga direktoryo.

Karon maghisgot kita bahin sa I/O redirection ug pipelines.

▍I/O redirection ug pipelines

my_command < my_file: nagpuli sa standard input file handle (stdin) matag file my_file. Mahimong mapuslanon kini kung ang sugo nagpaabut sa pipila ka input gikan sa keyboard, ug kini nga datos kaniadto gitipigan sa usa ka file.

my_command > my_file: nag-redirect sa mga resulta sa sugo, sa ato pa, unsa ang kasagarang mahuman stdout ug gipakita sa screen, sa usa ka file my_file. Kung ang file my_file wala - kini gibuhat. Kon ang file anaa, kini gisapawan kanag.

Pananglitan, human sa pagpatuman sa sugo ls > my_folder_contents.txt usa ka text file ang pagabuhaton nga adunay lista sa kung unsa ang naa sa karon nga direktoryo sa pagtrabaho.

Kon imbes nga simbolo > pahimusli ang disenyo >>, unya, basta ang file diin ang command output gi-redirect anaa, kini nga file dili ma-overwritten. Ang datos idugang sa katapusan sa kini nga file.

Karon atong tan-awon ang pagproseso sa pipeline sa data.

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo
Unsa ang usa ka command output gipakaon sa laing command's input. Kini sama sa pagkonektar sa usa ka tubo ngadto sa lain

first_command | second_command: simbolo sa conveyor, |, gigamit sa pagpadala sa mga resulta sa usa ka sugo ngadto sa laing sugo. Unsa ang sugo nga nahimutang sa wala nga bahin sa gihulagway nga konstruksyon nga gipadala stdout, Nahulog sa stdin sugo, nga nahimutang sa tuo sa conveyor simbolo.

Sa Linux, ang data pipelining mahimo gamit ang halos bisan unsang maayong pagkaporma nga command. Kanunay giingon nga ang tanan sa Linux usa ka pipeline.

Mahimo nimong gamiton ang simbolo sa conveyor aron magkadena ang daghang mga sugo. Murag mao ni:

first_command | second_command | third_command

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo
Ang usa ka pipeline sa daghang mga sugo mahimong itandi sa usa ka pipeline

Palihug timan-i nga sa diha nga ang sugo sa wala sa simbolo |, nagpagawas sa usa ka butang sa stdout, kung unsa ang iyang mga output magamit dayon ingon stdin ikaduhang team. Kana mao, kini nahimo nga kung mogamit usa ka pipeline, nag-atubang kami sa parehas nga pagpatuman sa mga mando. Usahay kini mahimong mosangpot sa wala damha nga mga resulta. Makabasa ka ug dugang bahin niini dinhi.

Karon maghisgot kita bahin sa pagbasa sa datos gikan sa mga file ug ipakita kini sa screen.

▍ Pagbasa sa mga file

head my_file: Nagbasa sa mga linya gikan sa sinugdanan sa file ug gipakita kini sa screen. Mahimo nimong basahon dili lamang ang mga sulod sa mga file, kondili usab kung unsa ang output sa mga sugo stdingamit kini nga sugo isip elemento sa pipeline.

tail my_file: Nagbasa sa mga linya gikan sa katapusan sa file. Kini nga sugo mahimo usab nga gamiton sa usa ka pipeline.

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo
Ulo (ulo) anaa sa atubangan, ug ikog (ikog) anaa sa luyo

Kung nagtrabaho ka sa datos gamit ang pandas library, unya ang mga sugo head ΠΈ tail dapat pamilyar sa imo. Kung dili kini ang kahimtang, tan-awa ang litrato sa ibabaw ug dali nimo silang mahinumduman.

Atong tan-awon ang ubang mga paagi sa pagbasa sa mga file, paghisgot bahin sa mando cat.

team cat ipakita ang mga sulod sa usa ka file sa screen, o maghiusa sa daghang mga file. Nagdepende kini kung pila ka mga file ang gipasa sa kini nga mando kung gitawag.

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo
iring sugo

cat my_one_file.txt: Sa diha nga kini nga sugo gihatag sa usa ka file, kini output niini sa stdout.

Kung hatagan nimo kini og duha ka mga file o daghan pa nga mga file, nan lahi ang paglihok niini.

cat my_file1.txt my_file2.txt: nga nakadawat og daghang mga file isip input, kini nga sugo maghiusa sa ilang mga sulod ug magpagawas kung unsa ang migawas stdout.

Kung ang resulta sa file concatenation kinahanglan nga ma-save ingon usa ka bag-ong file, mahimo nimong gamiton ang operator >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Karon atong hisgutan kung unsaon pagtangtang sa mga file ug paghunong sa mga proseso.

▍Pagtangtang sa mga file, paghunong sa mga proseso

rm my_file: nagtangtang sa usa ka file my_file.

rm -r my_folder: nagtangtang sa usa ka folder my_folder ug ang tanang mga file ug mga folder nga anaa niini. Bandila -r nagpakita nga ang sugo molihok sa recursive mode.

Aron mapugngan ang sistema sa pagpangayo og kumpirmasyon sa matag higayon nga imong tangtangon ang usa ka file o folder, gamita ang bandila -f.

kill 012345: Gipahunong ang espesipikong proseso sa pagpadagan, nga naghatag niini og panahon sa pagtak-op nga maayo.

kill -9 012345: Kusog nga gitapos ang gitakda nga proseso sa pagpadagan. Bandera sa espisye -s SIGKILL nagpasabot nga parehas sa bandila -9.

▍Pagpangita

Makagamit ka ug lain-laing mga sugo sa pagpangita sa datos. Sa partikular- grep, ag ΠΈ ack. Atong sugdan ang atong kaila niining mga teams uban sa grep. Kini usa ka gisulayan sa oras, kasaligan nga mando, nga, bisan pa, labi ka hinay kaysa sa uban ug dili kadali gamiton sama sa kaniadto.

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo
grep nga sugo

grep my_regex my_file: naghimo sa pagpangita my_regex Π² my_file. Kung makit-an ang usa ka posporo, ang tibuuk nga kuwerdas ibalik alang sa matag duwa. Default my_regex Gitratar isip usa ka regular nga ekspresyon.

grep -i my_regex my_file: Ang pagpangita gihimo sa usa ka case-insensitive nga paagi.

grep -v my_regex my_file: mibalik sa tanang mga laray nga walay sulod my_regex. Bandila -v nagpasabot inversion, kini susama sa operator NOT, anaa sa daghang programming language.

grep -c my_regex my_file: Ibalik ang impormasyon bahin sa gidaghanon sa mga tugma sa gipangita nga pattern nga makita sa file.

grep -R my_regex my_folder: Naghimo ug recursive search sa tanang file nga nahimutang sa gihatag nga folder ug sa mga folder subfolder sulod niini.

Karon maghisgot ta bahin sa team ag. Nagpakita siya sa ulahi grep, kini mao ang mas paspas ug mas sayon ​​sa pagtrabaho uban sa.

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo
ag sugo

ag my_regex my_file: nagbalik sa impormasyon bahin sa mga numero sa linya, ug sa mga linya mismo, diin nakit-an ang mga posporo my_regex.

ag -i my_regex my_file: Ang pagpangita gihimo sa usa ka case-insensitive nga paagi.

team ag awtomatiko nga giproseso ang file .gitignore ug wala iapil gikan sa output kung unsa ang makit-an sa mga folder o mga file nga gilista sa kana nga file. Komportable kaayo kini.

ag my_regex my_file -- skip-vcs-ignores: sulod sa automatic version control system files (sama sa .gitignore) wala gikonsiderar kung nangita.

Dugang pa, aron isulti ang mando ag aron mahibal-an kung unsang mga agianan sa file ang kinahanglan nga dili iapil sa pagpangita, mahimo ka maghimo usa ka file .agignore.

Sa sinugdanan niini nga seksyon among gihisgutan ang sugo ack. Mga team ack ΠΈ ag susama kaayo, makaingon kita nga sila 99% mabaylo. Apan, ang team ag mas paspas ang pagtrabaho, mao nga akong gihulagway kini.

Karon maghisgot kita bahin sa pagtrabaho sa mga archive.

▍Pag-archive

tar my_source_directory: naghiusa sa mga file gikan sa usa ka folder my_source_directory sa usa ka tarball file. Ang ingon nga mga file sayon ​​​​nga gamiton aron mabalhin ang dagkong mga set sa mga file ngadto sa usa ka tawo.

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo
tar nga sugo

Ang mga file sa tarball nga gihimo niini nga command mga file nga adunay extension .tar (Tape ARchive). Ang kamatuoran nga ang pulong nga "tape" gitago sa ngalan sa command ug sa extension sa mga ngalan sa mga file nga gimugna niini nagpakita kung unsa ka dugay kini nga sugo naglungtad.

tar -cf my_file.tar my_source_directory: naghimo ug tarball file nga ginganlan my_file.tar uban sa sulod sa folder my_source_directory. Bandila -c nagpasabot sa "pagmugna", ug ang bandila -f isip "file" (file).

Aron makuha ang mga file nga nahimutang sa .tar-file, gigamit ang command tar uban sa mga bandera -x (β€œextract”, extraction) ug -f (β€œfile”, file).

tar -xf my_file.tar: nagkuha sa mga file gikan sa my_file.tar ngadto sa kasamtangan nga working directory.

Karon atong hisgutan kung unsaon pag-compress ug pag-decompress .tar- mga file.

tar -cfz my_file.tar.gz my_source_directory: dinhi, gamit ang bandera -z ("zip", compression algorithm) nagpakita nga ang algorithm kinahanglan gamiton sa pag-compress sa mga file gzip (GNU zip). Ang pag-compress sa file nagtugot kanimo sa pagtipig sa espasyo sa disk kung gitipigan ang ingon nga mga file. Kung ang mga file giplano, pananglitan, nga ibalhin sa ubang mga tiggamit, kini makatabang sa pag-download sa ingon nga mga file nga mas paspas.

Unzip file .tar.gz mahimo nimo pinaagi sa pagdugang og bandila -z ngadto sa sugo sa pagkuha sa sulod .tar-files, nga atong gihisgutan sa ibabaw. Murag mao ni:

tar -xfz my_file.tar.gz
Kini kinahanglan nga matikdan nga ang team tar Adunay daghan pa nga mapuslanon nga mga bandila.

Bash mga alias

Ang mga alyas sa Bash (gitawag usab nga mga alyas o mga pinamubo) gidesinyo sa paghimo og pinamubo nga mga ngalan sa mga sugo o sa ilang mga han-ay, ang paggamit niini imbes nga regular nga mga sugo nagpadali sa trabaho. Kon ikaw, ingnon ta, adunay pseudonym bu, sa luyo diin ang sugo gitago python setup.py sdist bdist_wheel, unya ang pagtawag niini nga sugo igo na nga gamiton kini nga alias.

Aron makahimo og ingon nga alyas, idugang lang ang mosunod nga sugo sa file ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Kung walay file sa imong sistema ~/.bash_profile, unya mahimo nimo kini sa imong kaugalingon gamit ang command touch. Human sa paghimo og usa ka alyas, i-restart ang terminal, pagkahuman magamit nimo kini nga alias. Niini nga kaso, ang pagsulod sa duha ka mga karakter mopuli sa pagsulod sa labaw sa tulo ka dosena nga mga karakter sa sugo, nga gituyo alang sa mga asembliya Mga pakete sa Python.

Π’ ~/.bash_profile Mahimo nimong idugang ang mga alyas alang sa bisan unsang kanunay nga gigamit nga mga sugo.

▍Resulta

Niini nga artikulo, among gitan-aw ang 21 ka sikat nga Bash commands ug naghisgot bahin sa paghimo og mga command alias. Kung interesado ka niini nga hilisgutan - tan-awa usa ka serye sa mga publikasyon nga gipahinungod sa Bash. kini mao ang Makapangita ka ug pdf nga bersyon niini nga mga publikasyon. Usab, kung gusto nimo ma-master ang Bash, hinumdomi nga, sama sa pagkat-on sa bisan unsang ubang sistema sa software, ang pagpraktis mao ang yawe.

Minahal nga magbabasa! Unsa nga mga sugo ang imong idugang sa mga nasakup niini nga artikulo nga mapuslanon nga mahibal-an sa mga nagsugod?

β†’ Basaha usab ang among serye sa blog sa mga publikasyon bahin sa mga script sa bash

[gimarkahan] Bash para sa mga Nagsugod: 21 Mapuslanon nga mga Sugo

Source: www.habr.com

Idugang sa usa ka comment