[bukumaaki] Bash fun olubere: 21 wulo ase

Ohun elo naa, itumọ eyiti a gbejade loni, jẹ ipinnu fun awọn ti o fẹ lati ṣakoso laini aṣẹ Linux. Agbara lati lo ọpa yii ni imunadoko le ṣafipamọ akoko pupọ. Ni pataki, a yoo sọrọ nipa ikarahun Bash ati awọn aṣẹ iwulo 21 nibi. A yoo tun sọrọ nipa bi o ṣe le lo awọn asia aṣẹ ati awọn inagijẹ Bash lati yara titẹ awọn ilana gigun.

[bukumaaki] Bash fun olubere: 21 wulo ase

Tun ka ninu bulọọgi wa lẹsẹsẹ awọn atẹjade nipa awọn iwe afọwọkọ bash

Awọn ofin

Bi o ṣe kọ ẹkọ lati ṣiṣẹ pẹlu laini aṣẹ Linux, iwọ yoo ba pade ọpọlọpọ awọn imọran ti o ṣe iranlọwọ lati lilö kiri. Diẹ ninu wọn, bii "Linux" ati "Unix", tabi "ikarahun" ati "terminal", jẹ idamu nigba miiran. Jẹ ki a sọrọ nipa awọn wọnyi ati awọn ofin pataki miiran.

UNIX jẹ ẹrọ ṣiṣe olokiki ti o dagbasoke nipasẹ Bell Labs ni awọn ọdun 1970. Koodu rẹ ti wa ni pipade.

Linux jẹ ẹrọ ṣiṣe ti o jọmọ Unix ti o gbajumọ julọ. O ti wa ni bayi lo lori ọpọlọpọ awọn ẹrọ, pẹlu awọn kọmputa.

Ebute oko (terminal), tabi emulator ebute jẹ eto ti o funni ni iwọle si ẹrọ ṣiṣe. O le jẹ ki awọn window ebute lọpọlọpọ ṣii ni akoko kanna.

Ikarahun (ikarahun) jẹ eto ti o fun ọ laaye lati firanṣẹ awọn aṣẹ ti a kọ ni ede pataki si ẹrọ ṣiṣe.

Bash duro fun Bourne Again Shell. O jẹ ede ikarahun ti o wọpọ julọ ti a lo lati ṣe ajọṣepọ pẹlu ẹrọ ṣiṣe. Paapaa, ikarahun Bash jẹ aiyipada lori macOS.

Òfin ila ni wiwo (Command Line Interface, CLI) jẹ ọna ti ibaraenisepo laarin eniyan ati kọnputa kan, lilo eyiti olumulo n tẹ awọn aṣẹ lati ori itẹwe, ati kọnputa, ṣiṣe awọn aṣẹ wọnyi, ṣafihan awọn ifiranṣẹ ni fọọmu ọrọ fun olumulo. Lilo akọkọ ti CLI ni lati ni alaye imudojuiwọn nipa awọn nkan kan, gẹgẹbi awọn faili, ati lati ṣiṣẹ pẹlu awọn faili. Ni wiwo laini aṣẹ yẹ ki o ṣe iyatọ si wiwo olumulo ayaworan (GUI), eyiti o lo asin ni akọkọ. Ni wiwo laini aṣẹ ni a tọka si ni irọrun bi laini aṣẹ.

Iwe afọwọkọ (akosile) ni kekere kan eto ti o ni a ọkọọkan ti ikarahun ase. Awọn iwe afọwọkọ ti kọ si awọn faili, wọn le ṣee lo leralera. Nigbati o ba nkọ awọn iwe afọwọkọ, o le lo awọn oniyipada, awọn ipo, awọn losiwajulosehin, awọn iṣẹ, ati awọn ẹya miiran.

Ni bayi ti a ti bo awọn ọrọ pataki, Mo fẹ tọka si pe Emi yoo lo awọn ọrọ “Bash”, “ikarahun” ati “ila aṣẹ” ni paarọ nibi, ati awọn ofin “itọsọna” ati “folda”.

Standard ṣiṣan, eyiti a yoo lo nibi ni titẹ sii boṣewa (itẹwọle boṣewa, stdin), iṣẹjade boṣewa (ijade boṣewa, stdout) ati abajade aṣiṣe boṣewa (aṣiṣe boṣewa, stderr).

Ti o ba wa ninu awọn aṣẹ apẹẹrẹ ti yoo fun ni isalẹ, iwọ yoo rii nkan bii my_whatever - Eyi tumọ si pe ajẹkù yii nilo lati rọpo pẹlu nkan tirẹ. Fun apẹẹrẹ, orukọ faili kan.

Ni bayi, ṣaaju ki o to tẹsiwaju pẹlu itupalẹ awọn aṣẹ ti ohun elo yii jẹ igbẹhin si, jẹ ki a wo atokọ wọn ati awọn apejuwe kukuru wọn.

21 Bash pipaṣẹ

▍Gbigba alaye

  • man: Ṣe afihan itọsọna olumulo (iranlọwọ) fun pipaṣẹ naa.
  • pwd: han alaye nipa awọn ṣiṣẹ liana.
  • ls: ṣe afihan awọn akoonu ti itọsọna kan.
  • ps: Gba ọ laaye lati wo alaye nipa awọn ilana ṣiṣe.

▍Ifọwọyi eto faili

  • cd: ayipada ṣiṣẹ liana.
  • touch: ṣẹda faili.
  • mkdir: ṣẹda a liana.
  • cp: Da faili kan.
  • mv: Gbe tabi pa faili kan rẹ.
  • ln: ṣẹda ọna asopọ.

▍ I/O redirection ati pipelines

  • <: àtúnjúwe stdin.
  • >: àtúnjúwe stdout.
  • |: piped abajade ti aṣẹ kan si titẹ sii ti aṣẹ miiran.

▍ Awọn faili kika

  • head: ka ibẹrẹ faili.
  • tail: ka opin faili.
  • cat: Ka faili kan ki o tẹ sita awọn akoonu rẹ si iboju, tabi ṣajọpọ awọn faili.

▍Npaarẹ awọn faili, awọn ilana idaduro

  • rm: Pa faili kan.
  • kill: da ilana naa duro.

▍Ṣawari

  • grep: wa alaye.
  • ag: to ti ni ilọsiwaju aṣẹ fun wiwa.

▍ Ifipamọ

  • tar: ṣiṣẹda pamosi ati ki o ṣiṣẹ pẹlu wọn.

Jẹ ki a sọrọ nipa awọn aṣẹ wọnyi ni awọn alaye diẹ sii.

Awọn alaye ẹgbẹ

Lati bẹrẹ pẹlu, jẹ ki ká wo pẹlu awọn ofin, awọn esi ti eyi ti wa ni ti oniṣowo ni awọn fọọmu stdout. Nigbagbogbo awọn abajade wọnyi han ni window ebute kan.

▍Gbigba alaye

man command_name: ṣe afihan itọsọna aṣẹ, ie alaye iranlọwọ.

pwd: ṣe afihan ọna si itọsọna iṣẹ lọwọlọwọ. Lakoko ṣiṣe pẹlu laini aṣẹ, olumulo nigbagbogbo nilo lati wa ni pato ibiti o wa ninu eto naa.

ls: ṣe afihan awọn akoonu ti itọsọna kan. Aṣẹ yii tun lo ni igbagbogbo.

ls -a: ṣe afihan awọn faili ti o farapamọ. asia loo nibi -a awọn pipaṣẹ ls. Lilo awọn asia ṣe iranlọwọ lati ṣe akanṣe ihuwasi ti awọn aṣẹ.

ls -l: Ṣe afihan alaye alaye nipa awọn faili.

Akiyesi pe awọn asia le wa ni idapo. Fun apẹẹrẹ - bi eleyi: ls -al.

ps: Wo awọn ilana ṣiṣe.

ps -e: Ṣe afihan alaye nipa gbogbo awọn ilana ṣiṣe, kii ṣe awọn ti o ni nkan ṣe pẹlu ikarahun olumulo lọwọlọwọ. Aṣẹ yii ni igbagbogbo lo ni fọọmu yii.

▍Ifọwọyi eto faili

cd my_directory: yipada ṣiṣẹ liana si my_directory. Lati gbe soke ipele kan ninu igi liana, lo my_directory ojulumo ona ../.

[bukumaaki] Bash fun olubere: 21 wulo ase
cd pipaṣẹ

touch my_file: ṣiṣẹda faili my_file ni ọna ti a fun.

mkdir my_directory: ṣẹda folda my_directory ni ọna ti a fun.

mv my_file target_directory: gbe faili my_file si folda target_directory. Nigbati o ba n ṣalaye itọsọna ibi-afẹde, o nilo lati lo ọna pipe si rẹ (kii ṣe ikole bii ../).

egbe mvtun le ṣee lo lati tunrukọ awọn faili tabi awọn folda. Fun apẹẹrẹ, o le dabi eyi:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: ṣẹda ẹda faili kan my_source_file ki o si fi si folda kan target_directory.

ln -s my_source_file my_target_file: ṣẹda ọna asopọ aami my_target_file fun faili my_source_file. Ti o ba yi ọna asopọ pada, faili atilẹba yoo tun yipada.

Ti faili naa my_source_file yoo parẹ, lẹhinna my_target_file yoo wa nibe. Flag -s awọn pipaṣẹ ln faye gba o lati ṣẹda awọn ọna asopọ fun awọn ilana.

Bayi jẹ ki ká soro nipa I/O redirection ati pipelines.

▍ I/O redirection ati pipelines

my_command < my_file: rọpo olupejuwe faili igbewọle boṣewa (stdin) fun faili kan my_file. Eyi le wulo ti aṣẹ naa ba n duro de diẹ ninu titẹ sii lati ori bọtini itẹwe, ati pe data yii ti wa ni fipamọ tẹlẹ ninu faili kan.

my_command > my_file: àtúnjúwe awọn abajade ti aṣẹ, ie ohun ti yoo deede lọ sinu stdout ati jade si iboju, si faili kan my_file. Ti faili naa my_file ko si - o ti wa ni da. Ti faili naa ba wa, o ti kọkọ kọ.

Fun apẹẹrẹ, lẹhin ṣiṣe pipaṣẹ naa ls > my_folder_contents.txt faili ọrọ yoo ṣẹda ti o ni atokọ ti ohun ti o wa ninu ilana iṣẹ lọwọlọwọ.

Ti o ba ti dipo aami > lo ikole >>, lẹhinna, ti o ba jẹ pe faili ti a ti darí iṣẹjade ti aṣẹ naa wa, faili yii kii yoo ṣe atunṣe. Awọn data yoo wa ni afikun si awọn opin ti yi faili.

Bayi jẹ ki a wo sisẹ opo gigun ti epo data.

[bukumaaki] Bash fun olubere: 21 wulo ase
Ijade ti aṣẹ kan jẹ ifunni sinu titẹ sii ti aṣẹ miiran. O dabi sisopọ paipu kan si omiiran

first_command | second_command: ami gbigbe, |, ni a lo lati firanṣẹ abajade ti aṣẹ kan si aṣẹ miiran. Kini aṣẹ ti o wa ni apa osi ti eto ti a ṣalaye ranṣẹ si stdout, Subu sinu stdin pipaṣẹ si ọtun ti aami opo gigun ti epo.

Lori Lainos, data le jẹ pipelin ni lilo o kan nipa eyikeyi aṣẹ ti a ṣe daradara. Nigbagbogbo a sọ pe ohun gbogbo ni Linux jẹ opo gigun ti epo.

O le dè ọpọ awọn aṣẹ nipa lilo aami opo gigun ti epo. O dabi eleyi:

first_command | second_command | third_command

[bukumaaki] Bash fun olubere: 21 wulo ase
Opo gigun ti awọn aṣẹ pupọ ni a le ṣe afiwe si opo gigun ti epo

Ṣe akiyesi pe nigbati aṣẹ si apa osi ti aami naa |, o jade nkankan lati stdout, ohun ti o jade jẹ lẹsẹkẹsẹ wa bi stdin ẹgbẹ keji. Iyẹn ni, o wa ni pe, lilo opo gigun ti epo, a n ṣe pẹlu ipaniyan ti o jọra ti awọn aṣẹ. Nigba miiran eyi le ja si awọn abajade airotẹlẹ. Awọn alaye nipa eyi le ka nibi.

Bayi jẹ ki a sọrọ nipa kika data lati awọn faili ati fifi wọn han loju iboju.

▍ Awọn faili kika

head my_file: ka awọn ila lati ibẹrẹ faili kan ki o tẹ wọn si iboju. O le ka kii ṣe awọn akoonu ti awọn faili nikan, ṣugbọn tun kini awọn aṣẹ ṣe jade ninu stdinlilo aṣẹ yii gẹgẹbi apakan ti opo gigun ti epo.

tail my_file: ka awọn ila lati opin faili naa. Aṣẹ yii tun le ṣee lo ni opo gigun ti epo.

[bukumaaki] Bash fun olubere: 21 wulo ase
Ori (ori) wa ni iwaju, ati iru (iru) wa lẹhin

Ti o ba n ṣiṣẹ pẹlu data nipa lilo ile-ikawe pandas, lẹhinna awọn aṣẹ naa head и tail yẹ ki o mọ ọ. Ti eyi ko ba jẹ ọran, wo nọmba ti o wa loke, ati pe iwọ yoo rọrun lati ranti wọn.

Wo awọn ọna miiran lati ka awọn faili, jẹ ki a sọrọ nipa aṣẹ naa cat.

Egbe cat boya tẹjade awọn akoonu ti faili kan si iboju, tabi ṣajọpọ awọn faili lọpọlọpọ. O da lori iye awọn faili ti o kọja si aṣẹ yii nigbati a pe.

[bukumaaki] Bash fun olubere: 21 wulo ase
o nran pipaṣẹ

cat my_one_file.txt: nigbati faili kan ba kọja si aṣẹ yii, yoo jade si stdout.

Ti o ba fun ni awọn faili meji tabi awọn faili diẹ sii, lẹhinna o huwa yatọ.

cat my_file1.txt my_file2.txt: ti o ti gba ọpọlọpọ awọn faili bi titẹ sii, aṣẹ yii ṣajọpọ awọn akoonu wọn ati ṣafihan ohun ti o ṣẹlẹ ninu stdout.

Ti abajade isomọ faili nilo lati wa ni fipamọ bi faili titun, o le lo oniṣẹ ẹrọ >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Bayi jẹ ki a sọrọ nipa bi o ṣe le pa awọn faili rẹ ati da awọn ilana duro.

▍Npaarẹ awọn faili, awọn ilana idaduro

rm my_file: pa faili my_file.

rm -r my_folder: npa folda kan my_folder ati gbogbo awọn faili ati awọn folda ti o wa ninu. Flag -r tọkasi wipe aṣẹ yoo ṣiṣẹ ni recursive mode.

Lati yago fun eto lati beere fun ìmúdájú nigbakugba ti faili kan tabi folda ti wa ni paarẹ, lo awọn Flag -f.

kill 012345: Duro ilana ṣiṣe ti a ti sọ tẹlẹ, fifun ni akoko lati fi ore-ọfẹ ku.

kill -9 012345: Fi agbara fopin si ilana ṣiṣe ti pàtó kan. Wo asia -s SIGKILL tumo si kanna bi awọn Flag -9.

▍Ṣawari

O le lo awọn ofin oriṣiriṣi lati wa data. Gegebi bi - grep, ag и ack. Jẹ ki a bẹrẹ ifaramọ wa pẹlu awọn aṣẹ wọnyi pẹlu grep. Eyi jẹ idanwo-akoko, aṣẹ igbẹkẹle, eyiti, sibẹsibẹ, lọra ju awọn miiran lọ ati pe ko rọrun lati lo bi wọn ṣe jẹ.

[bukumaaki] Bash fun olubere: 21 wulo ase
grep pipaṣẹ

grep my_regex my_file: awọrọojulówo my_regex в my_file. Ti a ba rii ibaamu kan, gbogbo okun naa yoo pada, fun ibaamu kọọkan. Aiyipada my_regex mu bi ikosile deede.

grep -i my_regex my_file: A ṣe wiwa wiwa ni ọna ti ko ṣe pataki.

grep -v my_regex my_file: pada gbogbo awọn ori ila ti ko ni ninu my_regex. Flag -v tumo si inversion, o resembles awọn oniṣẹ NOT, ti a rii ni ọpọlọpọ awọn ede siseto.

grep -c my_regex my_filePada alaye pada nipa nọmba awọn ere-kere ti a rii ninu faili fun apẹrẹ wiwa.

grep -R my_regex my_folder: ṣe wiwa loorekoore ni gbogbo awọn faili ti o wa ninu folda ti a sọ ati ninu awọn folda ti o wa ni itẹ-ẹiyẹ ninu rẹ.

Bayi jẹ ki a sọrọ nipa ẹgbẹ naa ag. O wa nigbamii grep, o yarayara, o rọrun diẹ sii lati ṣiṣẹ pẹlu rẹ.

[bukumaaki] Bash fun olubere: 21 wulo ase
aṣẹ ag

ag my_regex my_file: pada alaye nipa awọn nọmba ila, ati awọn ila ara wọn, ninu eyiti awọn ere-kere ti a ri pẹlu my_regex.

ag -i my_regex my_file: A ṣe wiwa wiwa ni ọna ti ko ṣe pataki.

Egbe ag ṣiṣẹ faili laifọwọyi .gitignore ati ki o yọkuro lati inu iṣelọpọ ohun ti a rii ninu awọn folda tabi awọn faili ti a ṣe akojọ si faili yẹn. O ti wa ni irorun.

ag my_regex my_file -- skip-vcs-ignoresAwọn akoonu ti awọn faili iṣakoso ẹya aifọwọyi (bii .gitignore) ko ṣe akiyesi ni wiwa.

Ni afikun, ni ibere lati so fun egbe ag lori iru awọn ọna faili ti o fẹ yọkuro lati inu wiwa, o le ṣẹda faili kan .agignore.

Ni ibẹrẹ apakan yii, a mẹnuba aṣẹ naa ack. Awọn ẹgbẹ ack и ag gidigidi iru, a le so pe ti won ba wa 99% interchangeable. Sibẹsibẹ, ẹgbẹ ag ṣiṣẹ yiyara, ti o ni idi ti mo ti se apejuwe ti o.

Bayi jẹ ki ká soro nipa ṣiṣẹ pẹlu awọn pamosi.

▍ Ifipamọ

tar my_source_directory: concatenates awọn faili lati folda kan my_source_directory sinu kan nikan tarball faili. Iru awọn faili jẹ iwulo fun gbigbe awọn akojọpọ nla ti awọn faili si ẹnikan.

[bukumaaki] Bash fun olubere: 21 wulo ase
oda pipaṣẹ

Awọn faili tarball ti ipilẹṣẹ nipasẹ aṣẹ yii jẹ awọn faili pẹlu itẹsiwaju .tar (Ipamọ teepu). Otitọ pe ọrọ “teepu” (teepu) ti wa ni pamọ ni orukọ aṣẹ ati ni itẹsiwaju ti awọn orukọ ti awọn faili ti o ṣẹda tọkasi bi aṣẹ yii ti pẹ to.

tar -cf my_file.tar my_source_directory: ṣẹda faili tarball ti a npè ni my_file.tar pẹlu awọn akoonu folda my_source_directory. Flag -c dúró fún “ṣẹ̀dá” (ìṣẹ̀dá), àti àsíá -f bi "faili" (faili).

Lati jade awọn faili lati .tar-faili, lo aṣẹ tar pẹlu awọn asia -x ("jade", isediwon) ati -f ("faili", faili).

tar -xf my_file.tar: jade awọn faili lati my_file.tar si awọn ti isiyi ṣiṣẹ liana.

Bayi jẹ ki ká soro nipa bi o si compress ati decompress .tar- awọn faili.

tar -cfz my_file.tar.gz my_source_directory: nibi lilo asia -z ("zip", algorithm funmorawon) tọka pe algorithm yẹ ki o lo lati funmorawon awọn faili gzip (GNUzip). Faili funmorawon fi aaye disk pamọ nigba titoju iru awọn faili. Ti awọn faili ba ti gbero, fun apẹẹrẹ, lati gbe lọ si awọn olumulo miiran, eyi ṣe alabapin si igbasilẹ iyara ti iru awọn faili.

Yọ faili kuro .tar.gz o le fi asia -z si aṣẹ akoonu jade .tar-awọn faili, eyi ti a ti sọrọ loke. O dabi eleyi:

tar -xfz my_file.tar.gz
O yẹ ki o ṣe akiyesi pe ẹgbẹ naa tar Ọpọlọpọ awọn asia ti o wulo diẹ sii wa.

Awọn inagijẹ Bash

Awọn aliases Bash (ti a npe ni aliases tabi awọn abbreviations) jẹ apẹrẹ lati ṣẹda awọn orukọ abbreviated ti awọn aṣẹ tabi awọn ilana wọn, lilo eyiti dipo awọn aṣẹ deede ṣe iyara iṣẹ. Ti o ba ni inagijẹ bu, eyi ti o tọju aṣẹ naa python setup.py sdist bdist_wheel, lẹhinna lati pe aṣẹ yii, o to lati lo inagijẹ yii.

Lati ṣẹda iru inagijẹ, kan ṣafikun aṣẹ atẹle si faili naa ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Ti eto rẹ ko ba ni faili naa ~/.bash_profile, lẹhinna o le ṣẹda rẹ funrararẹ nipa lilo aṣẹ naa touch. Lẹhin ṣiṣẹda inagijẹ, tun bẹrẹ ebute naa, lẹhin eyi o le lo inagijẹ yii. Ni idi eyi, titẹ sii ti awọn ohun kikọ meji rọpo igbewọle ti diẹ sii ju awọn ohun kikọ mejila mẹta ti aṣẹ naa, eyiti a pinnu fun awọn apejọ Python jo.

В ~/.bash_profile o le fi awọn inagijẹ kun fun eyikeyi awọn pipaṣẹ ti a lo nigbagbogbo.

▍ Abajade

Ninu ifiweranṣẹ yii, a ti bo awọn aṣẹ Bash olokiki 21 ati sọrọ nipa ṣiṣẹda awọn inagijẹ aṣẹ. Ti o ba nifẹ si koko-ọrọ yii - wo o lẹsẹsẹ ti awọn iwe igbẹhin si Bash. o ti wa ni O le wa ẹya pdf ti awọn atẹjade wọnyi. Paapaa, ti o ba fẹ kọ ẹkọ Bash, ranti pe, bi pẹlu eyikeyi eto siseto miiran, adaṣe jẹ bọtini.

Eyin onkawe! Awọn aṣẹ wo ni o wulo fun awọn olubere ni iwọ yoo ṣafikun si awọn ti a jiroro ninu nkan yii?

Tun ka ninu bulọọgi wa lẹsẹsẹ awọn atẹjade nipa awọn iwe afọwọkọ bash

[bukumaaki] Bash fun olubere: 21 wulo ase

orisun: www.habr.com

Fi ọrọìwòye kun