[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat

Materi, tarjamahan anu kami publikasikeun ayeuna, dimaksudkeun pikeun anu hoyong ngawasaan garis paréntah Linux. Kamampuhan ngagunakeun alat ieu sacara efektif tiasa ngahémat waktos. Khususna, urang bakal ngobrol ngeunaan cangkang Bash sareng 21 paréntah anu mangpaat di dieu. Urang ogé bakal ngobrol ngeunaan kumaha carana nganggo bendera paréntah sareng landian Bash pikeun nyepetkeun ngetik paréntah anu panjang.

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat

Baca ogé dina blog kami séri publikasi ngeunaan skrip bash

istilah

Nalika anjeun diajar damel sareng garis paréntah Linux, anjeun bakal mendakan seueur konsép anu ngabantosan pikeun nganapigasi. Sababaraha di antarana, kawas "Linux" jeung "Unix", atawa "cangkang" jeung "terminal", kadang bingung. Hayu urang ngobrol ngeunaan ieu jeung istilah penting lianna.

Unix nyaéta sistem operasi populér anu dikembangkeun ku Bell Labs dina taun 1970-an. Kode nya ditutup.

Linux mangrupa sistem operasi kawas Unix nu pang populerna. Ayeuna dianggo dina seueur alat, kalebet komputer.

setasion (terminal), atanapi émulator terminal mangrupikeun program anu masihan aksés ka sistem operasi. Anjeun tiasa muka sababaraha terminal windows sakaligus.

Cangkang (cangkang) nyaéta program nu ngidinan Anjeun pikeun ngirim paréntah ditulis dina basa husus ka sistem operasi.

Bash nangtung pikeun Bourne Deui Shell. Ieu mangrupikeun basa cangkang anu paling umum dianggo pikeun berinteraksi sareng sistem operasi. Ogé, cangkang Bash mangrupikeun standar dina macOS.

panganteur garis paréntah (Command Line Interface, CLI) mangrupikeun metode interaksi antara hiji jalma sareng komputer, nalika nganggo pangguna anu ngalebetkeun paréntah tina keyboard, sareng komputer, ngalaksanakeun paréntah ieu, nampilkeun pesen dina bentuk téks pikeun pangguna. CLI utamana dipaké pikeun meunangkeun inpo up-to-date ngeunaan éntitas tangtu, contona, ngeunaan file, sarta pikeun digawe sareng file. Antarbeungeut garis paréntah kudu dibédakeun tina antarbeungeut pamaké grafis (GUI), anu utamana ngagunakeun beurit. Antarbeungeut garis paréntah sering disebut salaku garis paréntah.

naskah (naskah) nyaéta program leutik anu ngandung runtuyan paréntah cangkang. Skrip ditulis kana file, aranjeunna tiasa dianggo sababaraha kali. Nalika nulis skrip, anjeun tiasa nganggo variabel, kondisional, loop, fungsi, sareng fitur anu sanés.

Ayeuna urang parantos nutupan istilah-istilah anu penting, kuring badé nunjukkeun yén kuring bakal nganggo istilah "Bash", "cangkang" sareng "garis paréntah" digentos di dieu, ogé istilah "diréktori" sareng "folder".

standar aliran, anu bakal kami anggo di dieu nyaéta input standar (input standar, stdin), kaluaran baku (kaluaran baku, stdout) jeung kaluaran kasalahan standar (kasalahan standar, stderr).

Upami dina conto paréntah anu bakal dipasihkeun di handap, anjeun bakal mendakan anu sapertos my_whatever - Ieu ngandung harti yén sempalan ieu kudu diganti ku hal anjeun. Contona, nami file.

Ayeuna, sateuacan neraskeun analisa paréntah anu dikhususkeun pikeun bahan ieu, hayu urang tingali daptar daptarna sareng pedaran ringkesna.

21 Paréntah Bash

▍ Meunangkeun inpormasi

  • man: Mintonkeun pituduh pamaké (pitulung) pikeun paréntah.
  • pwd: mintonkeun informasi ngeunaan diréktori gawé.
  • ls: mintonkeun eusi diréktori.
  • ps: Ngidinan anjeun ningali inpormasi ngeunaan prosés jalan.

▍ Manipulasi sistem file

  • cd: ngarobah diréktori gawé.
  • touch: Jieun file.
  • mkdir: nyieun diréktori.
  • cp: Nyalin file.
  • mv: Mindahkeun atawa mupus hiji file.
  • ln: nyieun link.

▍ I/O redirection jeung pipelines

  • <: alihan stdin.
  • >: alihan stdout.
  • |: piped kaluaran hiji paréntah ka input paréntah séjén.

▍ Maca file

  • head: baca awal file.
  • tail: baca tungtung file.
  • cat: Maca file sareng nyitak eusina ka layar, atanapi ngahijikeun file.

▍ Ngahapus file, ngeureunkeun prosés

  • rm: Hapus hiji file.
  • kill: ngeureunkeun prosés.

▍ Pilarian

  • grep: milarian inpormasi.
  • ag: paréntah canggih pikeun milarian.

▍Arsipkeun

  • tar: nyieun arsip sarta gawé bareng aranjeunna.

Hayu urang ngobrol ngeunaan paréntah ieu dina leuwih jéntré.

Rincian tim

Pikeun mimitian ku, hayu urang nungkulan paréntah, hasilna anu dikaluarkeun dina formulir stdout. Biasana hasil ieu muncul dina jandela terminal.

▍ Meunangkeun inpormasi

man command_name: mintonkeun pituduh paréntah, i.e. pitulung informasi.

pwd: mintonkeun jalur ka diréktori gawé ayeuna. Dina kursus gawé bareng garis paréntah, pamaké mindeng kudu manggihan persis dimana dina sistem anjeunna.

ls: mintonkeun eusi diréktori. Paréntah ieu ogé sering dianggo.

ls -a: nembongkeun file disumputkeun. bandéra dilarapkeun di dieu -a paréntah ls. Pamakéan umbul mantuan pikeun ngaropea paripolah paréntah.

ls -l: Témbongkeun inpo wincik tentang file.

Catet yén bandéra tiasa digabungkeun. Contona - kawas kieu: ls -al.

ps: Témbongkeun prosés ngajalankeun.

ps -e: Nampilkeun inpormasi ngeunaan sadaya prosés anu ngajalankeun, sanés ngan ukur anu aya hubunganana sareng cangkang pangguna ayeuna. Paréntah ieu sering dianggo dina bentuk ieu.

▍ Manipulasi sistem file

cd my_directory: ngarobah diréktori gawé pikeun my_directory. Pikeun mindahkeun ka luhur hiji tingkat dina tangkal diréktori, make my_directory jalur relatif ../.

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat
paréntah cd

touch my_file: nyiptakeun file my_file sapanjang jalur nu dibikeun.

mkdir my_directory: nyieun polder my_directory sapanjang jalur nu dibikeun.

mv my_file target_directory: mindahkeun file my_file kana map target_directory. Nalika netepkeun diréktori udagan, anjeun kedah nganggo jalur mutlak pikeun éta (sareng sanés konstruksi sapertos ../).

tim mvogé bisa dipaké pikeun ngaganti ngaran file atawa polder. Contona, éta bisa kasampak kawas kieu:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: nyieun salinan file my_source_file teras lebetkeun kana polder target_directory.

ln -s my_source_file my_target_file: nyieun tumbu simbolis my_target_file per file my_source_file. Upami anjeun ngarobih tautan, file asli ogé bakal robih.

Lamun file my_source_file bakal dihapus, lajeng my_target_file bakal tetep. Bandéra -s paréntah ln ngidinan Anjeun pikeun nyieun tumbu pikeun directories.

Ayeuna hayu urang ngobrol ngeunaan I / O redirection na pipelines.

▍ I/O redirection jeung pipelines

my_command < my_file: ngagantikeun deskriptor file input standar (stdin) per file my_file. Ieu tiasa mangpaat upami paréntah ngantosan sababaraha input ti keyboard, sareng data ieu parantos disimpen dina file.

my_command > my_file: Mindahkeun hasil paréntah, nyaéta naon anu biasana bakal asup stdout sareng kaluaran kana layar, kana file my_file. Lamun file my_file teu aya - eta dijieun. Upami filena aya, éta bakal ditimpa.

Contona, sanggeus executing paréntah ls > my_folder_contents.txt file téks bakal dijieun ngandung daptar naon dina diréktori gawé ayeuna.

Lamun tinimbang lambang > ngagunakeun konstruksi >>, teras, upami aya file anu kaluaran paréntahna dialihkeun, file ieu moal ditimpa. Data bakal ditambahkeun kana tungtung file ieu.

Ayeuna hayu urang tingali ngolah data pipa.

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat
Kaluaran hiji paréntah diasupkeun kana input paréntah séjén. Éta sapertos nyambungkeun hiji pipa ka pipa anu sanés

first_command | second_command: simbol conveyor, |, dipaké pikeun ngirim kaluaran hiji paréntah ka paréntah séjén. Naon paréntah di sisi kénca struktur digambarkeun ngirimkeun ka stdout, Ragrag kana stdin paréntah ka katuhu tina simbol pipeline.

Dina Linux, data tiasa di-pipelined nganggo naon waé paréntah anu kabentuk. Sering nyarios yén sadayana dina Linux mangrupikeun pipa.

Anjeun tiasa ranté sababaraha paréntah ngagunakeun simbol pipeline. Sigana mah kieu:

first_command | second_command | third_command

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat
Pipa tina sababaraha paréntah tiasa dibandingkeun sareng pipa

Catet yén nalika paréntah ka kénca ti simbol |, outputs hal pikeun stdout, naon manehna outputs geuwat sadia sakumaha stdin tim kadua. Nyaéta, tétéla yén, ngagunakeun pipa, urang nungkulan palaksanaan paralel paréntah. Kadang-kadang ieu tiasa ngakibatkeun hasil anu teu disangka-sangka. Rincian ngeunaan ieu tiasa dibaca di dieu.

Ayeuna hayu urang ngobrol ngeunaan maca data tina file sareng ningalikeunana dina layar.

▍ Maca file

head my_file: maca garis ti mimiti file jeung prints ka layar. Anjeun tiasa maca teu ukur eusi file, tapi ogé naon paréntah kaluaran stdinngagunakeun paréntah ieu salaku bagian tina pipa.

tail my_file: maca garis ti tungtung file. Paréntah ieu ogé tiasa dianggo dina pipa.

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat
Sirah (sirah) di hareup, jeung buntut (buntut) di tukang

Upami anjeun damel sareng data nganggo perpustakaan pandas, teras paréntahna head и tail kedah wawuh ka anjeun. Upami ieu sanés masalahna, tingali gambar di luhur, sareng anjeun bakal gampang ngingetna.

Mertimbangkeun cara séjén pikeun maca file, hayu urang ngobrol ngeunaan paréntah cat.

regu cat boh prints eusi file ka layar, atawa concatenates sababaraha file. Éta gumantung kana sabaraha file anu dikirimkeun kana paréntah ieu nalika disebut.

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat
paréntah ucing

cat my_one_file.txt: lamun file tunggal disalurkeun kana paréntah ieu, outputs ka stdout.

Upami anjeun masihan dua file atanapi langkung file, maka kalakuanana béda.

cat my_file1.txt my_file2.txt: sanggeus narima sababaraha file salaku input, paréntah ieu concatenates eusina tur mintonkeun naon anu lumangsung dina stdout.

Upami hasil tina panyambungan file kedah disimpen salaku file énggal, anjeun tiasa nganggo operator >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Ayeuna hayu urang ngobrol ngeunaan cara mupus file sareng ngeureunkeun prosés.

▍ Ngahapus file, ngeureunkeun prosés

rm my_file: ngahapus file my_file.

rm -r my_folder: mupus polder my_folder sareng sadaya file sareng polder anu dikandungna. Bandéra -r nunjukkeun yén paréntah bakal ngajalankeun dina modeu recursive.

Pikeun nyegah sistem nanyakeun konpirmasi unggal waktos file atanapi folder dihapus, paké bandéra -f.

kill 012345: Ngeureunkeun prosés ngajalankeun dieusian, mere eta waktu pikeun gracefully Cicing turun.

kill -9 012345: Maksa terminates prosés ngajalankeun dieusian. Témbongkeun Bandéra -s SIGKILL hartina sarua jeung bandéra -9.

▍ Pilarian

Anjeun tiasa nganggo paréntah anu béda pikeun milarian data. Khususna - grep, ag и ack. Hayu urang mimitian kenalan urang jeung paréntah ieu kalawan grep. Ieu mangrupikeun paréntah anu diuji waktos, anu tiasa dipercaya, anu, kumaha ogé, langkung laun tibatan anu sanés sareng henteu gampang dianggo sapertos aranjeunna.

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat
paréntah grep

grep my_regex my_file: maluruh my_regex в my_file. Mun hiji patandingan kapanggih, sakabéh string dipulangkeun, pikeun tiap pertandingan. Default my_regex diperlakukeun salaku éksprési biasa.

grep -i my_regex my_file: Pamilarian dilaksanakeun ku cara anu teu sensitip.

grep -v my_regex my_file: mulih sadaya baris nu teu ngandung my_regex. Bandéra -v hartina inversion, nyarupaan operator NOT, kapanggih dina loba basa programming.

grep -c my_regex my_file: Ngabalikeun inpormasi ngeunaan jumlah patandingan pikeun pola anu dipilarian anu aya dina file.

grep -R my_regex my_folder: ngalaksanakeun panéangan rekursif dina sadaya file anu aya dina polder anu ditangtukeun sareng dina polder anu aya di dinya.

Ayeuna hayu urang ngobrol ngeunaan tim ag. Manehna datang engké grep, éta leuwih gancang, éta leuwih merenah pikeun digawe sareng eta.

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat
paréntah ag

ag my_regex my_file: mulih informasi ngeunaan nomer garis, jeung garis sorangan, nu cocog kapanggih kalawan my_regex.

ag -i my_regex my_file: Pamilarian dilaksanakeun ku cara anu teu sensitip.

regu ag otomatis ngolah file .gitignore sareng ngaluarkeun tina kaluaran naon anu kapendak dina polder atanapi file anu didaptarkeun dina file éta. Ieu pisan nyaman.

ag my_regex my_file -- skip-vcs-ignores: eusi file kontrol versi otomatis (siga .gitignore) teu dicokot kana akun dina pilarian.

Sajaba ti éta, dina raraga ngabejaan tim ag on nu jalur file rék ngaluarkeun tina pilarian, Anjeun bisa nyieun file .agignore.

Dina awal bagian ieu, urang disebutkeun paréntah ack. Tim ack и ag sarupa pisan, urang bisa disebutkeun yen aranjeunna 99% ditukeurkeun. Sanajan kitu, tim ag jalan gancang, éta naha kuring digambarkeun eta.

Ayeuna hayu urang ngobrol ngeunaan gawé bareng arsip.

▍Arsipkeun

tar my_source_directory: concatenates payil ti polder my_source_directory kana hiji file tarball. File sapertos kitu kapaké pikeun nransferkeun set file anu ageung ka batur.

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat
paréntah tar

File tarball anu dihasilkeun ku paréntah ieu mangrupikeun file anu aya ekstensi .tar (Arsip pita). Kanyataan yén kecap "tape" (tape) disumputkeun dina nami paréntah sareng dina ekstensi nami file anu diciptakeun nunjukkeun sabaraha lami paréntah ieu parantos aya.

tar -cf my_file.tar my_source_directory: nyieun file tarball ngaranna my_file.tar kalawan eusi folder my_source_directory. Bandéra -c nangtung pikeun "nyiptakeun" (nyiptakeun), sareng bandéra -f salaku "file" (file).

Pikeun nimba file tina .tar-file, make paréntah tar kalawan bandéra -x ( "ekstrak", ékstraksi) jeung -f ("file", file).

tar -xf my_file.tar: extracts file ti my_file.tar ka diréktori kerja ayeuna.

Ayeuna hayu urang ngobrol ngeunaan kumaha carana komprési jeung decompress .tar-berkas.

tar -cfz my_file.tar.gz my_source_directory: didieu make bandéra -z ("zip", algoritma komprési) nunjukkeun yén algoritma kudu dipaké pikeun niiskeun file gzip (GNUzip). Komprési file ngahemat rohangan disk nalika nyimpen file sapertos kitu. Upami file direncanakeun, contona, pikeun ditransfer ka pangguna anu sanés, ieu nyumbang kana undeuran file sapertos kitu.

Unzip file .tar.gz Anjeun tiasa nambahkeun bandéra a -z kana paréntah eusi ekstrak .tar-file, nu urang bahas di luhur. Sigana mah kieu:

tar -xfz my_file.tar.gz
Ieu kudu dicatet yén tim tar Aya loba bandéra leuwih mangpaat.

Bash alias

Bash landian (disebut oge aliases atawa singketan) dirancang pikeun nyieun ngaran disingget paréntah atawa runtuyan maranéhanana, pamakéan nu tinimbang paréntah biasa speeds up gawé. Upami Anjeun gaduh alias bu, nu hides paréntah python setup.py sdist bdist_wheel, teras nelepon paréntah ieu, éta cukup ngagunakeun landian ieu.

Pikeun nyiptakeun landian sapertos kitu, tambahkeun paréntah di handap ieu kana file ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Upami sistem anjeun henteu gaduh file ~/.bash_profile, teras anjeun tiasa nyiptakeunana nyalira nganggo paréntah touch. Saatos nyiptakeun landian, balikan deui terminal, saatos anjeun tiasa nganggo landian ieu. Dina hal ieu, input dua karakter ngagantikeun input leuwih ti tilu belasan karakter paréntah, nu dimaksudkeun pikeun majelis bungkusan Python.

В ~/.bash_profile anjeun tiasa nambihan alias kanggo paréntah anu sering dianggo.

▍Hasil

Dina postingan ieu, kami parantos nutupan 21 paréntah Bash anu populér sareng nyarioskeun ngeunaan nyiptakeun landian paréntah. Upami anjeun resep kana topik ieu - di dieu runtuyan publikasi dedicated ka Bash. Ieu téh Anjeun tiasa mendakan versi pdf tina ieu publikasi. Ogé, upami anjeun hoyong diajar Bash, émut yén, sapertos sistem pamrograman anu sanés, prakték mangrupikeun konci.

Pamiarsa Hadirin! Paréntah naon anu mangpaat pikeun pamula anu anjeun badé tambahkeun kana anu dibahas dina tulisan ieu?

Baca ogé dina blog kami séri publikasi ngeunaan skrip bash

[bookmarked] Bash pikeun beginners: 21 Paréntah mangpaat

sumber: www.habr.com

Tambahkeun komentar