[tetenger] Bash kanggo wiwitan: 21 printah migunani

Materi, terjemahan sing diterbitake saiki, ditujokake kanggo wong-wong sing pengin nguwasani baris perintah Linux. Kemampuan nggunakake alat iki kanthi efektif bisa ngirit wektu akeh. Utamane, kita bakal ngomong babagan cangkang Bash lan 21 perintah sing migunani ing kene. Kita uga bakal ngomong babagan carane nggunakake flag printah lan alias Bash kanggo nyepetake ngetik instruksi dawa.

[tetenger] Bash kanggo wiwitan: 21 printah migunani

β†’ Uga maca ing blog kita seri publikasi babagan skrip bash

Sarat

Nalika sampeyan sinau nggarap baris perintah Linux, sampeyan bakal nemokake akeh konsep sing bisa digunakake kanggo navigasi. Sawetara wong, kayata "Linux" lan "Unix", utawa "cangkang" lan "terminal", kadhangkala bingung. Ayo padha ngomong babagan iki lan istilah penting liyane.

Unix minangka sistem operasi populer sing dikembangake dening Bell Labs ing taun 1970-an. Kode dheweke ditutup.

Linux minangka sistem operasi kaya Unix sing paling populer. Saiki digunakake ing akeh piranti, kalebu komputer.

terminal (terminal), utawa terminal emulator minangka program sing menehi akses menyang sistem operasi. Sampeyan bisa mbukak sawetara terminal windows bebarengan.

Shell (cangkang) iku program sing ngijini sampeyan kanggo ngirim printah ditulis ing basa khusus kanggo sistem operasi.

Bash singkatan saka Bourne Again Shell. Iki minangka basa cangkang sing paling umum digunakake kanggo sesambungan karo sistem operasi. Uga, cangkang Bash minangka standar ing macOS.

Antarmuka baris printah (Command Line Interface, CLI) minangka cara interaksi antarane wong lan komputer, nalika nggunakake pangguna ngetik printah saka keyboard, lan komputer, nglakokake printah kasebut, nampilake pesen ing wangun teks kanggo pangguna. CLI utamane digunakake kanggo entuk informasi paling anyar babagan entitas tartamtu, contone, babagan file, lan nggarap file. Antarmuka baris perintah kudu dibedakake karo antarmuka panganggo grafis (GUI), sing utamane nggunakake mouse. Antarmuka baris perintah asring diarani mung minangka baris perintah.

Skripsi (skrip) minangka program cilik sing ngemot urutan perintah cangkang. Skrip ditulis ing file, bisa digunakake bola-bali. Nalika nulis skrip, sampeyan bisa nggunakake variabel, kondisional, loop, fungsi, lan fitur liyane.

Saiki kita wis nutupi istilah-istilah penting, aku pengin nuduhake yen aku bakal nggunakake istilah "Bash", "shell" lan "command line" ing kene, uga istilah "direktori" lan "folder".

Standar lepen, sing bakal digunakake ing kene yaiku input standar (input standar, stdin), output standar (output standar, stdout) lan output kesalahan standar (kesalahan standar, stderr).

Yen ing printah conto sing bakal diwenehi ing ngisor iki, sampeyan bakal nemokake kaya my_whatever - iki tegese pecahan iki kudu diganti karo soko sampeyan. Contone, jeneng file.

Saiki, sadurunge nerusake analisis saka printah sing materi iki darmabakti kanggo, ayo kang njupuk dipikir ing dhaftar lan gambaran singkat.

21 Bash printah

▍ Njaluk informasi

  • man: Nampilake pandhuan pangguna (pitulung) kanggo printah.
  • pwd: nampilake informasi babagan direktori kerja.
  • ls: nampilake isi direktori.
  • ps: Ngidini sampeyan ndeleng informasi babagan proses sing mlaku.

▍ Manipulasi sistem file

  • cd: ngganti direktori kerja.
  • touch: nggawe file.
  • mkdir: nggawe direktori.
  • cp: Nyalin file.
  • mv: Mindhah utawa mbusak file.
  • ln: nggawe link.

▍I/O redirection lan pipelines

  • <: pangalihan stdin.
  • >: pangalihan stdout.
  • |: piped output saka siji printah menyang input saka printah liyane.

▍ Maca file

  • head: maca wiwitan file.
  • tail: maca pungkasan file.
  • cat: Waca file lan nyetak isine menyang layar, utawa gabungke file.

▍ Mbusak file, mungkasi proses

  • rm: Mbusak file.
  • kill: mungkasi proses.

▍ Telusuri

  • grep: golek informasi.
  • ag: printah majeng kanggo nggoleki.

▍Pengarsipan

  • tar: nggawe arsip lan nggarap.

Ayo dadi pirembagan bab printah iki ing liyane rinci.

Rincian tim

Kanggo miwiti, ayo kang menehi hasil karo printah, asil kang ditanggepi ing wangun stdout. Biasane asil iki katon ing jendhela terminal.

▍ Njaluk informasi

man command_name: nampilake pandhuan printah, yaiku informasi bantuan.

pwd: nampilake path menyang direktori kerja saiki. Nalika nggarap baris perintah, pangguna asring kudu ngerteni persis ing endi sistem kasebut.

ls: nampilake isi direktori. Prentah iki uga asring digunakake.

ls -a: nuduhake file sing didhelikake. flag diterapake ing kene -a printah ls. Panggunaan gendera mbantu ngatur prilaku printah.

ls -l: Nampilake informasi rinci babagan file.

Elinga yen gendera bisa digabungake. Contone - kaya iki: ls -al.

ps: Ndeleng proses mlaku.

ps -e: Nampilake informasi babagan kabeh proses sing mlaku, ora mung sing digandhengake karo cangkang pangguna saiki. Printah iki asring digunakake ing wangun iki.

▍ Manipulasi sistem file

cd my_directory: ngganti direktori kerja menyang my_directory. Kanggo mindhah munggah siji tingkat ing wit direktori, gunakake my_directory path relatif ../.

[tetenger] Bash kanggo wiwitan: 21 printah migunani
printah cd

touch my_file: nggawe file my_file ing sadawane dalan sing diwenehake.

mkdir my_directory: nggawe folder my_directory ing sadawane dalan sing diwenehake.

mv my_file target_directory: mindhah file my_file menyang folder target_directory. Nalika nemtokake direktori target, sampeyan kudu nggunakake path absolut menyang (lan dudu konstruksi kaya ../).

tim mvuga bisa digunakake kanggo ngganti jeneng file utawa folder. Contone, bisa uga katon kaya iki:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: nggawe salinan file my_source_file lan sijine ing folder target_directory.

ln -s my_source_file my_target_file: nggawe pranala simbolis my_target_file saben file my_source_file. Yen sampeyan ngganti link, file asli uga bakal diganti.

Yen file my_source_file bakal dibusak, banjur my_target_file bakal tetep. GendΓ©ra -s printah ln ngidini sampeyan nggawe pranala kanggo direktori.

Saiki ayo ngomong babagan redirection I/O lan pipelines.

▍I/O redirection lan pipelines

my_command < my_file: ngganti deskriptor file input standar (stdin) saben file my_file. Iki bisa migunani yen printah nunggu sawetara input saka keyboard, lan data iki wis disimpen ing file.

my_command > my_file: pangalihan asil printah, IE apa biasane bakal pindhah menyang stdout lan output menyang layar, menyang file my_file. Yen file my_file ora ana - iku digawe. Yen file ana, iku bakal ditindhes.

Contone, sawise nglakokake printah ls > my_folder_contents.txt file teks bakal digawe ngemot dhaptar apa ing direktori kerja saiki.

Yen tinimbang simbol > nggunakake konstruksi >>, banjur, yen file sing output saka printah redirected ana, file iki ora bakal ditindhes. Data kasebut bakal ditambahake ing pungkasan file iki.

Saiki ayo goleki pangolahan pipa data.

[tetenger] Bash kanggo wiwitan: 21 printah migunani
Output saka siji printah dipakani menyang input saka printah liyane. Iku kaya nyambungake pipa siji menyang pipa liyane

first_command | second_command: simbol conveyor, |, digunakake kanggo ngirim output saka siji printah menyang printah liyane. Apa printah ing sisih kiwa saka struktur diterangake ngirim kanggo stdout, Tiba ing stdin printah ing sisih tengen simbol pipeline.

Ing Linux, data bisa pipelined nggunakake meh wae printah uga-kawangun. Asring ujar manawa kabeh ing Linux minangka pipa.

Sampeyan bisa chain sawetara printah nggunakake simbol pipeline. Katon kaya mangkene:

first_command | second_command | third_command

[tetenger] Bash kanggo wiwitan: 21 printah migunani
Pipa saka sawetara perintah bisa dibandhingake karo pipa

Elinga yen nalika printah ing sisih kiwa simbol |, Output soko kanggo stdout, apa dheweke output langsung kasedhiya minangka stdin tim kapindho. Sing, ternyata, nggunakake pipeline, kita dealing karo eksekusi paralel saka printah. Kadhangkala iki bisa nyebabake asil sing ora dikarepake. Rincian babagan iki bisa diwaca kene.

Saiki ayo ngomong babagan maca data saka file lan nampilake ing layar.

▍ Maca file

head my_file: maca baris saka awal file lan prints menyang layar. Sampeyan bisa maca ora mung isi file, nanging uga apa printah output ing stdinnggunakake printah iki minangka bagΓ©an saka pipeline.

tail my_file: maca baris saka mburi file. Printah iki uga bisa digunakake ing pipa.

[tetenger] Bash kanggo wiwitan: 21 printah migunani
Sirah (sirah) ana ing ngarep, lan buntut (buntut) ana ing mburi

Yen sampeyan nggarap data nggunakake perpustakaan panda, banjur printah head ΠΈ tail kudu akrab karo sampeyan. Yen iki ora cilik, njupuk dipikir ing tokoh ndhuwur, lan sampeyan bakal gampang ngelingi wong.

Coba cara liya kanggo maca file, ayo ngomong babagan perintah kasebut cat.

tim cat salah siji prints isi file menyang layar, utawa concatenates sawetara file. Iku gumantung carane akeh file liwat printah iki nalika disebut.

[tetenger] Bash kanggo wiwitan: 21 printah migunani
dhawuh kucing

cat my_one_file.txt: nalika file siji wis liwati kanggo printah iki, outputs menyang stdout.

Yen sampeyan menehi rong file utawa luwih file, mula tumindake beda.

cat my_file1.txt my_file2.txt: wis nampa sawetara file minangka input, printah iki concatenates isi lan nampilake apa kedaden ing stdout.

Yen asil concatenation file kudu disimpen minangka file anyar, sampeyan bisa nggunakake operator >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Saiki ayo ngomong babagan carane mbusak file lan mungkasi proses.

▍ Mbusak file, mungkasi proses

rm my_file: mbusak file my_file.

rm -r my_folder: mbusak folder my_folder lan kabeh file lan folder sing ana. GendΓ©ra -r nuduhake yen printah bakal mbukak ing mode rekursif.

Kanggo nyegah sistem njaluk konfirmasi saben file utawa folder dibusak, gunakake gendera -f.

kill 012345: Mungkasi proses mlaku kasebut, menehi wektu kanggo anggun mati.

kill -9 012345: Meksa mungkasi proses mlaku sing ditemtokake. Ndeleng gendera -s SIGKILL tegese padha karo gendera -9.

▍ Telusuri

Sampeyan bisa nggunakake printah beda kanggo nggoleki data. Utamane - grep, ag ΠΈ ack. Ayo dadi miwiti kita kenalan karo printah iki karo grep. Iki minangka printah sing wis diuji lan dipercaya, sing, nanging luwih alon tinimbang liyane lan ora trep kanggo digunakake.

[tetenger] Bash kanggo wiwitan: 21 printah migunani
printah grep

grep my_regex my_file: nggoleki my_regex Π² my_file. Yen cocog ditemokake, kabeh senar bakal bali, kanggo saben pertandhingan. Default my_regex dianggep minangka ekspresi biasa.

grep -i my_regex my_file: Panelusuran ditindakake kanthi cara sing ora sensitif huruf cilik.

grep -v my_regex my_file: ngasilake kabeh baris sing ora ngemot my_regex. GendΓ©ra -v tegese kuwalikan, iku meh podho operator NOT, ditemokake ing pirang-pirang basa pamrograman.

grep -c my_regex my_file: Ngasilake informasi babagan jumlah sing cocog kanggo pola sing digoleki sing ditemokake ing file kasebut.

grep -R my_regex my_folder: nindakake telusuran rekursif ing kabeh file sing ana ing folder kasebut lan ing folder sing ana ing kono.

Saiki ayo ngomong babagan tim ag. Dheweke teka mengko grep, luwih cepet, luwih trep kanggo nggarap.

[tetenger] Bash kanggo wiwitan: 21 printah migunani
dhawuh ag

ag my_regex my_file: ngasilake informasi bab nomer baris, lan garis dhewe, kang cocog ditemokakΓ© karo my_regex.

ag -i my_regex my_file: Panelusuran ditindakake kanthi cara sing ora sensitif huruf cilik.

tim ag otomatis ngolah file .gitignore lan ora kalebu saka output apa sing ditemokake ing folder utawa file sing kadhaptar ing file kasebut. Iku banget nyaman.

ag my_regex my_file -- skip-vcs-ignores: isi file kontrol versi otomatis (kaya .gitignore) ora dianggep ing panelusuran.

Kajaba iku, supaya marang tim ag ing path file sing pengin ngilangi saka panelusuran, sampeyan bisa nggawe file .agignore.

Ing wiwitan bagean iki, kita nyebutake prentah kasebut ack. tim ack ΠΈ ag banget padha, kita bisa ngomong sing padha 99% diijolke. Nanging, tim ag dianggo luwih cepet, pramila aku diterangake.

Saiki ayo ngomong babagan nggarap arsip.

▍Pengarsipan

tar my_source_directory: concatenates file saka folder my_source_directory menyang file tarball siji. File kasebut migunani kanggo nransfer file gedhe menyang wong liya.

[tetenger] Bash kanggo wiwitan: 21 printah migunani
dhawuh tar

File tarball sing digawe dening printah iki minangka file kanthi ekstensi .tar (Tape ARchive). Kasunyatan bilih tembung "tape" (tape) didhelikake ing jeneng printah lan ing extension saka jeneng file sing digawe nuduhake suwene printah iki wis ana.

tar -cf my_file.tar my_source_directory: nggawe file tarball jenenge my_file.tar karo isi folder my_source_directory. GendΓ©ra -c singkatan saka "nggawe" (cipta), lan gendera -f minangka "berkas" (berkas).

Kanggo extract file saka .tar-file, nggunakake printah tar karo gendΓ©ra -x ("ekstrak", extraction) lan -f ("berkas", berkas).

tar -xf my_file.tar: extract file saka my_file.tar menyang direktori kerja saiki.

Saiki ayo ngomong babagan carane compress lan decompress .tar- file.

tar -cfz my_file.tar.gz my_source_directory: kene nganggo gendera -z ("zip", algoritma kompresi) nuduhake yen algoritma kasebut kudu digunakake kanggo ngompres file gzip (GNUzip). Kompresi file ngirit ruang disk nalika nyimpen file kasebut. Yen file direncanakake, umpamane, bakal ditransfer menyang pangguna liyane, iki nyumbang kanggo download file kasebut luwih cepet.

Unzip file .tar.gz sampeyan bisa nambah gendΓ©ra -z menyang printah isi extract .tar-files, kang kita rembugan ndhuwur. Katon kaya mangkene:

tar -xfz my_file.tar.gz
Sampeyan kudu nyatet sing tim tar Ana akeh liyane gendΓ©ra migunani.

Bash alias

Alias ​​Bash (uga disebut alias utawa singkatan) dirancang kanggo nggawe jeneng sing dicekak saka printah utawa urutane, sing digunakake tinimbang printah biasa kanggo nyepetake karya. Yen sampeyan duwe alias bu, kang ndhelikake printah python setup.py sdist bdist_wheel, banjur nelpon printah iki, iku cukup kanggo nggunakake alias iki.

Kanggo nggawe alias kuwi, mung nambah printah ing ngisor iki kanggo file ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Yen sistem sampeyan ora duwe file ~/.bash_profile, banjur sampeyan bisa nggawe dhewe nggunakake printah touch. Sawise nggawe alias, miwiti maneh terminal, sawise sampeyan bisa nggunakake alias iki. Ing kasus iki, input saka rong karakter ngganti input luwih saka telung rolas karakter saka printah, kang dimaksudakΓ© kanggo pakumpulan paket Python.

Π’ ~/.bash_profile sampeyan bisa nambah alias kanggo sembarang printah sing kerep digunakake.

▍Asil

Ing kirim iki, kita wis nutupi 21 perintah Bash sing populer lan ngobrol babagan nggawe alias perintah. Yen sampeyan kasengsem ing topik iki - lah seri publikasi darmabakti kanggo Bash. iku Sampeyan bisa nemokake versi pdf saka publikasi iki. Uga, yen sampeyan pengin sinau Bash, elinga, kaya sistem pemrograman liyane, praktik minangka kunci.

Para pamaca ingkang kinurmatan! Apa prentah sing migunani kanggo pamula sing bakal ditambahake menyang sing dibahas ing artikel iki?

β†’ Uga maca ing blog kita seri publikasi babagan skrip bash

[tetenger] Bash kanggo wiwitan: 21 printah migunani

Source: www.habr.com

Add a comment