[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza

Zolemba, kumasulira kwake komwe timasindikiza lero, kwapangidwira iwo omwe akufuna kudziwa mzere wamalamulo wa Linux. Kukhoza kugwiritsa ntchito bwino chidachi kungapulumutse nthawi yambiri. Makamaka, tikambirana za chipolopolo cha Bash ndi malamulo 21 othandiza pano. Tikambirananso za momwe tingagwiritsire ntchito mbendera ndi zilembo za Bash kufulumizitsa kulemba kwa malangizo aatali.

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza

Komanso werengani mu blog yathu mndandanda wazofalitsa za bash scripts

Migwirizano

Pamene mukuphunzira kugwira ntchito ndi mzere wa malamulo a Linux, mudzakumana ndi mfundo zambiri zomwe zimathandiza kuyenda. Ena a iwo, monga "Linux" ndi "Unix", kapena "chipolopolo" ndi "terminal", nthawi zina amasokonezeka. Tiyeni tikambirane mawu amenewa ndi ena ofunika.

Unix ndi makina opangira opaleshoni omwe adapangidwa ndi Bell Labs m'ma 1970. Khodi yake idatsekedwa.

Linux ndiye njira yotchuka kwambiri yopangira Unix. Tsopano imagwiritsidwa ntchito pazida zambiri, kuphatikiza makompyuta.

osachiritsika (terminal), kapena terminal emulator ndi pulogalamu yomwe imapereka mwayi wogwiritsa ntchito. Mutha kukhala ndi ma terminal angapo otsegulidwa nthawi imodzi.

Chigoba (chipolopolo) ndi pulogalamu yomwe imakulolani kutumiza malamulo olembedwa m'chinenero chapadera ku opaleshoni.

Bash amaimira Bourne Again Shell. Ndilo chilankhulo chodziwika bwino cha chipolopolo chomwe chimagwiritsidwa ntchito polumikizana ndi makina ogwiritsira ntchito. Komanso, chipolopolo cha Bash ndichokhazikika pa macOS.

Lamulo mzere mawonekedwe (Command Line Interface, CLI) ndi njira yolumikizirana pakati pa munthu ndi kompyuta, pogwiritsa ntchito zomwe wogwiritsa ntchito amalowetsa malamulo kuchokera ku kiyibodi, ndipo kompyutayo, pochita malamulowa, imawonetsa mauthenga m'mawu kwa wogwiritsa ntchito. CLI imagwiritsidwa ntchito makamaka kupeza zidziwitso zaposachedwa za mabungwe ena, mwachitsanzo, za mafayilo, ndikugwira ntchito ndi mafayilo. Mawonekedwe a mzere wa malamulo ayenera kusiyanitsidwa ndi mawonekedwe a graphical user interface (GUI), omwe makamaka amagwiritsa ntchito mbewa. Mawonekedwe a mzere wolamula nthawi zambiri amangotchulidwa ngati mzere wolamula.

Zolemba (script) ndi pulogalamu yaying'ono yomwe ili ndi mndandanda wa malamulo a zipolopolo. Zolemba zimalembedwa ku mafayilo, amatha kugwiritsidwa ntchito mobwerezabwereza. Polemba zolemba, mutha kugwiritsa ntchito zosinthika, zoyambira, malupu, ntchito, ndi zina.

Tsopano popeza tafotokozera mawu ofunikira, ndikufuna kunena kuti ndigwiritsa ntchito mawu akuti "Bash", "chipolopolo" ndi "command line" mosinthana apa, komanso mawu akuti "directory" ndi "foda".

Standard mitsinje, zomwe tidzagwiritse ntchito apa ndizolowetsamo (standard input, stdin), zotuluka zokhazikika (zotulutsa zokhazikika, stdout) ndi kutulutsa kolakwika kokhazikika (zolakwika zokhazikika, stderr).

Ngati mu malamulo chitsanzo kuti adzaperekedwa pansipa, mudzapeza chinachake chonga my_whatever - izi zikutanthauza kuti chidutswa ichi chiyenera kusinthidwa ndi china chake. Mwachitsanzo, dzina la fayilo.

Tsopano, tisanapitirize kusanthula malamulo omwe nkhaniyi idaperekedwa, tiyeni tiwone mndandanda wawo ndi mafotokozedwe awo achidule.

21 Bash amalamula

▍Kupeza zambiri

  • man: Imawonetsa chiwongolero cha ogwiritsa ntchito (chithandizo) cha lamulo.
  • pwd: Imawonetsa zidziwitso za chikwatu chogwirira ntchito.
  • ls: ikuwonetsa zomwe zili mu bukhu.
  • ps: Imakulolani kuti muwone zambiri zokhudzana ndi njira zomwe zikuyenda.

▍Kusintha kwa fayilo

  • cd: kusintha chikwatu ntchito.
  • touch: pangani fayilo.
  • mkdir: pangani chikwatu.
  • cp: Koperani fayilo.
  • mv: Sunthani kapena kufufuta fayilo.
  • ln: pangani ulalo.

▍Kulondolera kwina kwa I/O ndi mapaipi

  • <: kulondoleranso stdin.
  • >: kulondoleranso stdout.
  • |: adatulutsa zotuluka za lamulo limodzi kupita ku lamulo lina.

▍Kuwerenga mafayilo

  • head: werengani chiyambi cha fayilo.
  • tail: werengani kumapeto kwa fayilo.
  • cat: Werengani fayilo ndikusindikiza zomwe zili mkati mwake pazenera, kapena phatikizani mafayilo.

▍Kuchotsa mafayilo, kuyimitsa njira

  • rm: Chotsani fayilo.
  • kill: kusiya ndondomeko.

▍Fufuzani

  • grep: fufuzani zambiri.
  • ag: lamulo lapamwamba lofufuzira.

▍Kusunga zinthu zakale

  • tar: kupanga zolemba zakale ndikugwira nawo ntchito.

Tiyeni tikambirane za malamulowa mwatsatanetsatane.

Tsatanetsatane wa Gulu

Poyamba, tiyeni tigwirizane ndi malamulo, omwe zotsatira zake zimaperekedwa mu mawonekedwe stdout. Nthawi zambiri zotsatirazi zimawonekera pawindo la terminal.

▍Kupeza zambiri

man command_name: onetsani kalozera wamalamulo, i.e. zambiri zothandizira.

pwd: onetsani njira yopita ku bukhu logwira ntchito panopa. Pogwira ntchito ndi mzere wolamula, wogwiritsa ntchito nthawi zambiri amafunika kudziwa komwe ali mu dongosololi.

ls: onetsani zomwe zili m'ndandanda. Lamuloli limagwiritsidwanso ntchito nthawi zambiri.

ls -a: onetsani mafayilo obisika. mbendera idayikidwa apa -a malamulo ls. Kugwiritsa ntchito mbendera kumathandiza kusintha machitidwe a malamulo.

ls -l: Onetsani zambiri za mafayilo.

Dziwani kuti mbendera zitha kuphatikizidwa. Mwachitsanzo - monga izi: ls -al.

ps: Onani njira zoyendetsera.

ps -e: Onetsani zambiri zamachitidwe onse omwe akuyenda, osati okhawo omwe amagwirizana ndi chipolopolo cha ogwiritsa ntchito. Lamuloli nthawi zambiri limagwiritsidwa ntchito mwanjira iyi.

▍Kusintha kwa fayilo

cd my_directory: kusintha chikwatu ntchito my_directory. Kuti mukweze mulingo umodzi mumtundu wa chikwatu, gwiritsani ntchito my_directory njira yogwirizana ../.

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza
cd lamulo

touch my_file: kupanga mafayilo my_file panjira yoperekedwa.

mkdir my_directory: pangani chikwatu my_directory panjira yoperekedwa.

mv my_file target_directory: kusuntha fayilo my_file ku folda target_directory. Mukatchula chikwatu chomwe mukufuna, muyenera kugwiritsa ntchito njira yopitako (osati kumanga ngati ../).

timu mvangagwiritsidwenso ntchito kutchulanso mafayilo kapena zikwatu. Mwachitsanzo, zitha kuwoneka motere:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: pangani fayilo my_source_file ndi kuziyika mu chikwatu target_directory.

ln -s my_source_file my_target_file: pangani ulalo wophiphiritsa my_target_file pa fayilo my_source_file. Mukasintha ulalo, fayilo yoyambirira isinthanso.

Ngati fayilo my_source_file zidzachotsedwa, ndiye my_target_file adzakhalabe. Mbendera -s malamulo ln amakulolani kuti mupange maulalo aakalozera.

Tsopano tiyeni tikambirane za njira ya I/O ndi mapaipi.

▍Kulondolera kwina kwa I/O ndi mapaipi

my_command < my_file: imalowa m'malo ofotokozera mafayilo olowera (stdin) pa fayilo my_file. Izi zitha kukhala zothandiza ngati lamulo likuyembekezera zolowetsa kuchokera pa kiyibodi, ndipo izi zasungidwa kale mufayilo.

my_command > my_file: imawongolera zotsatira za lamulo, mwachitsanzo, zomwe zingalowemo stdout ndi zotuluka pazenera, ku fayilo my_file. Ngati fayilo my_file kulibe - idapangidwa. Ngati fayiloyo ilipo, imachotsedwa.

Mwachitsanzo, pambuyo pochita lamulo ls > my_folder_contents.txt fayilo yolemba idzapangidwa yomwe ili ndi mndandanda wazomwe zili m'ndandanda wamakono.

Ngati m'malo mwa chizindikiro > ntchito yomanga >>, ndiye, malinga ngati fayilo yomwe lipoti la lamulo litumizidwa likupezeka, fayiloyi siidzalembedwanso. Zambiri zidzawonjezedwa kumapeto kwa fayiloyi.

Tsopano tiyeni tione pokonza mapaipi a data.

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza
Kutulutsa kwa lamulo limodzi kumalowetsedwa mu lamulo lina. Zili ngati kulumikiza chitoliro chimodzi ndi china

first_command | second_command: chizindikiro cha conveyor, |, amagwiritsidwa ntchito kutumiza zotsatira za lamulo limodzi ku lamulo lina. Zomwe lamulo kumanzere kwa kapangidwe kameneka kamatumiza stdout, Kugwa mu stdin lamula kumanja kwa chizindikiro cha mapaipi.

Pa Linux, deta imatha kuyendetsedwa pogwiritsa ntchito lamulo lililonse lopangidwa bwino. Nthawi zambiri zimanenedwa kuti chilichonse mu Linux ndi payipi.

Mutha kulumikiza malamulo angapo pogwiritsa ntchito chizindikiro cha mapaipi. Zikuwoneka motere:

first_command | second_command | third_command

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza
Paipi ya malamulo angapo ingayerekezedwe ndi payipi

Onani kuti pamene lamulo kumanzere kwa chizindikiro |, kutulutsa chinachake stdout, zomwe amatulutsa zimapezeka nthawi yomweyo stdin timu yachiwiri. Ndiye kuti, zikuwoneka kuti, pogwiritsa ntchito payipi, tikuchita ndi kuphatikizika kwa malamulo. Nthawi zina izi zingayambitse zotsatira zosayembekezereka. Zambiri za izi zitha kuwerengedwa apa.

Tsopano tiyeni tikambirane za kuwerenga deta kuchokera owona ndi kuwasonyeza pa zenera.

▍Kuwerenga mafayilo

head my_file: amawerenga mizere kuyambira koyambirira kwa fayilo ndikuisindikiza pazenera. Simungawerenge zomwe zili m'mafayilo okha, komanso zomwe malamulowo amatulutsa stdinpogwiritsa ntchito lamulo ili ngati gawo la payipi.

tail my_file: amawerenga mizere kuchokera kumapeto kwa fayilo. Lamuloli litha kugwiritsidwanso ntchito popanga mapaipi.

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza
Mutu (mutu) uli kutsogolo, ndipo mchira (mchira) uli kumbuyo

Ngati mukugwira ntchito ndi data pogwiritsa ntchito laibulale ya pandas, ndiye kuti malamulo head и tail ziyenera kukhala zodziwika kwa inu. Ngati sizili choncho, yang'anani chithunzi pamwambapa, ndipo mudzachikumbukira mosavuta.

Ganizirani njira zina zowerengera mafayilo, tiyeni tikambirane za lamulo cat.

timu cat mwina amasindikiza zomwe zili mufayilo pazenera, kapena kuphatikiza mafayilo angapo. Zimatengera kuchuluka kwa mafayilo omwe amaperekedwa ku lamulo ili akaitanidwa.

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza
mphaka lamulo

cat my_one_file.txt: Fayilo imodzi ikaperekedwa ku lamulo ili, imatuluka stdout.

Ngati mupatsa mafayilo awiri kapena mafayilo ochulukirapo, ndiye kuti amachita mosiyana.

cat my_file1.txt my_file2.txt: atalandira mafayilo angapo monga zolowetsa, lamulo ili limagwirizanitsa zomwe zili mkati ndikuwonetsa zomwe zinachitika stdout.

Ngati zotsatira za kulumikizidwa kwa fayilo ziyenera kusungidwa ngati fayilo yatsopano, mutha kugwiritsa ntchito woyendetsa >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Tsopano tiyeni tikambirane mmene kufufuta owona ndi kusiya njira.

▍Kuchotsa mafayilo, kuyimitsa njira

rm my_file: chotsani fayilo my_file.

rm -r my_folder: amachotsa chikwatu my_folder ndi mafayilo onse ndi zikwatu zomwe zili. Mbendera -r zikuwonetsa kuti lamulo liziyenda munjira yobwereza.

Kuletsa dongosolo kupempha chitsimikiziro nthawi iliyonse wapamwamba kapena chikwatu zichotsedwa, ntchito mbendera -f.

kill 012345: Imayimitsa njira yomwe yatchulidwa, ndikupatseni nthawi yotseka mwachisomo.

kill -9 012345: Imathetsa mokakamiza njira yomwe yatchulidwa. Onani mbendera -s SIGKILL amatanthauza chimodzimodzi monga mbendera -9.

▍Fufuzani

Mukhoza kugwiritsa ntchito malamulo osiyanasiyana kufufuza deta. Makamaka - grep, ag и ack. Tiyeni tiyambe kudziwana ndi malamulo awa grep. Ili ndi lamulo loyesedwa nthawi, lodalirika, lomwe, komabe, ndilochedwa kuposa ena ndipo silosavuta kugwiritsa ntchito monga momwe alili.

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza
grep lamulo

grep my_regex my_file: kufufuza my_regex в my_file. Ngati machesi apezeka, chingwe chonsecho chimabwezedwa, pamasewera aliwonse. Zosasintha my_regex kuchitidwa ngati mawu okhazikika.

grep -i my_regex my_file: Kusakaku kumachitika mosaganizira.

grep -v my_regex my_file: imabweretsa mizere yonse yomwe ilibe my_regex. Mbendera -v amatanthauza inversion, amafanana ndi woyendetsa NOT, zopezeka m’zinenero zambiri zopangira mapulogalamu.

grep -c my_regex my_file: Imabweza zambiri za kuchuluka kwa mafananidwe amitundu yomwe yafufuzidwa yomwe yapezeka mufayilo.

grep -R my_regex my_folder: imapanga kusaka kobwerezabwereza m'mafayilo onse omwe ali mufoda yomwe yatchulidwa komanso m'mafoda omwe ali mmenemo.

Tsopano tiyeni tikambirane za gulu ag. Anabwera pambuyo pake grep, ndi yachangu, ndiyosavuta kugwiritsa ntchito nayo.

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza
ag command

ag my_regex my_file: imabweretsanso zambiri za manambala a mzere, ndi mizere yomwe, momwe machesi adapezeka nawo my_regex.

ag -i my_regex my_file: Kusakaku kumachitika mosaganizira.

timu ag sinthani fayiloyo zokha .gitignore ndipo imapatula zomwe zingapezeke m'mafoda kapena mafayilo omwe ali mufayiloyo. Ndi bwino kwambiri.

ag my_regex my_file -- skip-vcs-ignores: zomwe zili m'mafayilo owongolera okha (monga .gitignore) sichikuganiziridwa pakufufuza.

Komanso, pofuna kuuza gulu ag panjira zomwe mukufuna kuzichotsa pakufufuza, mutha kupanga fayilo .agignore.

Kumayambiriro kwa gawoli, tatchula lamulo ack. Magulu ack и ag zofanana kwambiri, tikhoza kunena kuti ndi 99% kusinthana. Komabe, timu ag imagwira ntchito mwachangu, ndichifukwa chake ndidafotokoza.

Tsopano tiyeni tikambirane za ntchito ndi archives.

▍Kusunga zinthu zakale

tar my_source_directory: concatenates owona kuchokera chikwatu my_source_directory mu fayilo imodzi ya tarball. Mafayilo oterowo ndi othandiza potengera mafayilo akulu akulu kwa wina.

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza
lamulo la tar

Mafayilo a tarball opangidwa ndi lamulo ili ndi mafayilo omwe ali ndi zowonjezera .tar (Tepi ARchive). Mfundo yakuti mawu oti "tepi" (tepi) amabisika m'dzina la lamulo ndipo powonjezera mayina a mafayilo omwe amapanga amasonyeza kuti lamuloli lakhalapo kwa nthawi yayitali bwanji.

tar -cf my_file.tar my_source_directory: imapanga fayilo ya tarball yotchedwa my_file.tar ndi zomwe zili mufoda my_source_directory. Mbendera -c amaimira “kulenga” (kulenga), ndi mbendera -f monga "fayilo" (fayilo).

Kuti muchotse mafayilo kuchokera .tar-file, gwiritsani ntchito lamulo tar ndi mbendera -x ("kuchotsa", kuchotsa) ndi -f ("fayilo", fayilo).

tar -xf my_file.tar: amachotsa mafayilo kuchokera my_file.tar ku chikwatu chogwirira ntchito.

Tsopano tiyeni tikambirane mmene compress ndi decompress .tar- mafayilo.

tar -cfz my_file.tar.gz my_source_directory: apa pogwiritsa ntchito mbendera -z ("zip", compression algorithm) ikuwonetsa kuti algorithm iyenera kugwiritsidwa ntchito kufinya mafayilo gzip (GNUzip). Kuphatikizika kwa fayilo kumapulumutsa malo a disk posunga mafayilo otere. Ngati mafayilo akonzedwa, mwachitsanzo, kuti atumizidwe kwa ogwiritsa ntchito ena, izi zimathandiza kuti mafayilo otere atsitsidwe mwachangu.

Tsegulani fayilo .tar.gz mukhoza kuwonjezera mbendera -z ku lamulo la extract content .tar-mafayilo, omwe takambirana pamwambapa. Zikuwoneka motere:

tar -xfz my_file.tar.gz
Tikumbukenso kuti gulu tar Palinso mbendera zambiri zothandiza.

Bash alias

Bash aliases (omwe amatchedwanso ma aliases kapena achidule) adapangidwa kuti apange mayina achidule a malamulo kapena kutsatizana kwawo, kugwiritsa ntchito komwe m'malo mwa malamulo okhazikika kumafulumizitsa ntchito. Ngati muli ndi alias bu, zomwe zimabisa lamulo python setup.py sdist bdist_wheel, ndiye kutchula lamulo ili, ndikokwanira kugwiritsa ntchito dzina ili.

Kuti mupange dzina lotere, ingowonjezerani lamulo lotsatirali pafayilo ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Ngati makina anu alibe fayilo ~/.bash_profile, ndiye mutha kupanga nokha pogwiritsa ntchito lamulo touch. Mukapanga dzina, yambitsaninso terminal, kenako mutha kugwiritsa ntchito izi. Pamenepa, kulowetsa kwa zilembo ziwiri kumalowa m'malo mwa zilembo zoposa khumi ndi zitatu za lamulo, zomwe zimapangidwira. misonkhano ikuluikulu Python phukusi.

В ~/.bash_profile mutha kuwonjezera zilembo zamalamulo omwe amagwiritsidwa ntchito pafupipafupi.

▍Zotsatira

Mu positi iyi, talemba malamulo 21 otchuka a Bash ndikulankhula za kupanga ma aliases. Ngati mumakonda mutuwu - tawonani mndandanda wa zofalitsa zoperekedwa kwa Bash. ndi Mutha kupeza mtundu wa pdf wa zofalitsa izi. Komanso, ngati mukufuna kuphunzira Bash, kumbukirani kuti, monga momwe zilili ndi pulogalamu ina iliyonse, kuyeserera ndikofunikira.

Wokondedwa owerenga! Kodi ndi malamulo ati omwe ndi othandiza kwa oyamba kumene mungawonjezere pa amene takambirana m’nkhaniyi?

Komanso werengani mu blog yathu mndandanda wazofalitsa za bash scripts

[bookmarked] Bash kwa oyamba kumene: 21 malamulo othandiza

Source: www.habr.com

Kuwonjezera ndemanga