[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria

Materiala, gaur argitaratzen dugun itzulpena, Linux komando-lerroa menderatu nahi dutenentzat da. Tresna hau modu eraginkorrean erabiltzeko gaitasunak denbora asko aurreztu dezake. Bereziki, Bash shell-ari eta 21 komando erabilgarriei buruz hitz egingo dugu hemen. Agindu luzeen idazketa bizkortzeko komando-markak eta Bash aliasak nola erabili ere hitz egingo dugu.

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria

Irakurri ere gure blogean bash scriptei buruzko argitalpen sorta bat

Termino

Linux komando-lerroarekin lan egiten ikasten duzun heinean, nabigatzeko lagungarriak diren hainbat kontzeptu aurkituko dituzu. Horietako batzuk, "Linux" eta "Unix", edo "shell" eta "terminal" bezalakoak, batzuetan nahastu egiten dira. Hitz egin dezagun termino garrantzitsu horietaz eta beste batzuez.

Unix 1970eko hamarkadan Bell Labsek garatu zuen sistema eragile ezaguna da. Bere kodea itxita zegoen.

Linux Unix antzeko sistema eragile ezagunena da. Gaur egun gailu askotan erabiltzen da, ordenagailuetan barne.

Terminal (terminal), edo terminal emuladorea sistema eragilerako sarbidea ematen duen programa da. Hainbat terminal-leiho ireki ditzakezu aldi berean.

oskol (shell) sistema eragilera hizkuntza berezi batean idatzitako komandoak bidaltzeko aukera ematen duen programa da.

Bash Bourne Again Shell esan nahi du. Sistema eragilearekin elkarreragiteko erabiltzen den shell lengoaia ohikoena da. Gainera, Bash shell lehenetsia da macOS-en.

Komando-lerroko interfazea (Command Line Interface, CLI) pertsona baten eta ordenagailu baten arteko interakzio metodo bat da, zeinaren bidez erabiltzaileak komandoak sartzen ditu teklatutik, eta ordenagailuak, komando hauek exekutatuz, mezuak testu moduan bistaratzen dizkio erabiltzaileari. CLIren erabilera nagusia entitate jakin batzuei buruzko informazio eguneratua lortzea da, hala nola fitxategiak, eta fitxategiekin lan egitea. Komando-lerroko interfazea sagua erabiltzen duen erabiltzailearen interfaze grafikotik (GUI) bereizi behar da. Komando-lerroaren interfazeari komando-lerroa deitzen zaio sarritan.

Gidoia (script) shell komandoen sekuentzia bat daukan programa txiki bat da. Scriptak fitxategietan idazten dira, behin eta berriz erabil daitezke. Scriptak idaztean, aldagaiak, baldintzazkoak, begiztak, funtzioak eta beste ezaugarri batzuk erabil ditzakezu.

Termino garrantzitsuak estali ditugula, adierazi nahi dut "Bash", "shell" eta "komando-lerroa" terminoak elkarren artean erabiliko ditudala hemen, baita "direktorioa" eta "karpeta" terminoak ere.

estandarra errekak, hemen erabiliko dugun sarrera estandarra da (sarrera estandarra, stdin), irteera estandarra (irteera estandarra, stdout) eta errore estandarraren irteera (errore estandarra, stderr).

Jarraian emango diren adibideko komandoetan bada, antzeko zerbait aurkituko duzu my_whatever - horrek esan nahi du zati hau zure zerbaitekin ordezkatu behar dela. Adibidez, fitxategi baten izena.

Orain, material hau dedikatzen den komandoen azterketari ekin baino lehen, ikus ditzagun haien zerrenda eta haien deskribapen laburrak.

21 Bash komandoak

▍Informazioa lortzea

  • man: komandoaren erabiltzailearen gida (laguntza) bistaratzen du.
  • pwd: laneko direktorioari buruzko informazioa bistaratzen du.
  • ls: direktorio baten edukia bistaratzen du.
  • ps: Exekutatzen diren prozesuei buruzko informazioa ikusteko aukera ematen du.

▍Fitxategi-sistemaren manipulazioa

  • cd: aldatu lan-direktorioa.
  • touch: fitxategi bat sortu.
  • mkdir: direktorio bat sortu.
  • cp: Fitxategi bat kopiatu.
  • mv: Fitxategi bat mugitu edo ezabatu.
  • ln: sortu esteka.

▍I/O birbideratzea eta kanalizazioak

  • <: birbideratu stdin.
  • >: birbideratu stdout.
  • |: komando baten irteera beste komando baten sarrerara bideratzen du.

▍Fitxategiak irakurtzea

  • head: irakurri fitxategiaren hasiera.
  • tail: fitxategiaren amaiera irakurri.
  • cat: fitxategi bat irakurri eta bere edukia pantailan inprimatu edo fitxategiak kateatu.

▍Fitxategiak ezabatzea, prozesuak gelditzea

  • rm: fitxategi bat ezabatu.
  • kill: prozesua gelditu.

▍Bilatu

  • grep: informazioa bilatu.
  • ag: bilaketarako komando aurreratua.

▍Artxiboa

  • tar: artxiboak sortu eta haiekin lan egitea.

Hitz egin dezagun komando hauei buruz xehetasun gehiago.

Taldearen xehetasunak

Hasteko, landu ditzagun komandoak, eta horien emaitzak formularioan ematen dira stdout. Normalean emaitza hauek terminaleko leiho batean agertzen dira.

▍Informazioa lortzea

man command_name: bistaratu komandoen gida, hau da, laguntza informazioa.

pwd: bistaratu uneko lan-direktoriorako bidea. Komando-lerroarekin lan egitean, erabiltzaileak sarritan jakin behar du sisteman non dagoen zehatz-mehatz.

ls: direktorio baten edukia bistaratu. Komando hau ere sarritan erabiltzen da.

ls -a: ezkutuko fitxategiak erakutsi. bandera hemen aplikatuta -a komandoak ls. Banderen erabilerak komandoen portaera pertsonalizatzen laguntzen du.

ls -l: fitxategiei buruzko informazio zehatza bistaratu.

Kontuan izan banderak konbina daitezkeela. Adibidez, honela: ls -al.

ps: Ikusi martxan dauden prozesuak.

ps -e: Exekutatzen diren prozesu guztiei buruzko informazioa bistaratu, ez soilik uneko erabiltzailearen shell-arekin lotutakoei buruzkoa. Komando hau askotan erabiltzen da formulario honetan.

▍Fitxategi-sistemaren manipulazioa

cd my_directory: aldatu lan-direktoriora my_directory. Direktorioen zuhaitzean maila bat igotzeko, erabili my_directory bide erlatiboa ../.

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria
cd komandoa

touch my_file: fitxategia sortzea my_file emandako bidetik.

mkdir my_directory: karpeta bat sortu my_directory emandako bidetik.

mv my_file target_directory: fitxategia mugitu my_file karpetara target_directory. Xede-direktorioa zehaztean, bide absolutua erabili behar duzu (eta ez bezalako eraikuntza bat ../).

taldea mvfitxategiak edo karpetak izena aldatzeko ere erabil daiteke. Adibidez, honelakoa izan daiteke:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: fitxategi baten kopia bat sortu my_source_file eta jarri karpeta batean target_directory.

ln -s my_source_file my_target_file: lotura sinboliko bat sortu my_target_file fitxategi bakoitzeko my_source_file. Esteka aldatzen baduzu, jatorrizko fitxategia ere aldatuko da.

Fitxategia bada my_source_file ezabatu egingo da, orduan my_target_file geratuko da. Bandera -s komandoak ln direktorioetarako estekak sortzeko aukera ematen du.

Orain hitz egin dezagun I/O birbideratzeari eta kanalizazioei buruz.

▍I/O birbideratzea eta kanalizazioak

my_command < my_file: sarrerako fitxategi deskribatzaile estandarra ordezkatzen du (stdin) fitxategi bakoitzeko my_file. Hau erabilgarria izan daiteke komandoa teklatuaren sarreraren baten zain badago eta datu hauek fitxategi batean gordeta badaude.

my_command > my_file: komandoaren emaitzak birbideratzen ditu, hau da, normalean sartuko litzatekeena stdout eta pantailara atera, fitxategi batera my_file. Fitxategia bada my_file ez da existitzen - sortu da. Fitxategia existitzen bada, gainidatzi egingo da.

Adibidez, komandoa exekutatu ondoren ls > my_folder_contents.txt testu-fitxategi bat sortuko da, uneko lan-direktorioan dagoenaren zerrendarekin.

Sinboloaren ordez > eraikuntza erabili >>, beraz, baldin eta komandoaren irteera birbideratzen den fitxategia badago, fitxategi hau ez da gainidatziko. Datuak fitxategi honen amaieran gehituko dira.

Ikus dezagun orain datu-bideen prozesamenduari.

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria
Komando baten irteera beste komando baten sarreran sartzen da. Hodi bat bestearekin konektatzea bezalakoa da

first_command | second_command: garraiatzailearen ikurra, |, komando baten irteera beste komando batera bidaltzeko erabiltzen da. Deskribatutako egituraren ezkerreko komandoak zertara bidaltzen duen stdout, erori stdin kanalizazioaren ikurraren eskuinaldean dagoen komandoa.

Linux-en, datuak bideratu daitezke ondo osatutako edozein komando erabiliz. Esan ohi da Linux-en dena kanalizazioa dela.

Hainbat komando kateatu ditzakezu kanalizazio ikurra erabiliz. Honela dirudi:

first_command | second_command | third_command

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria
Hainbat komandoren kanalizazioa kanalizazio batekin aldera daiteke

Kontuan izan sinboloaren ezkerreko komandoa denean |, zerbait ateratzen du stdout, ateratzen zuena berehala eskuragarri dago stdin bigarren taldea. Hau da, bihurtzen da, kanalizazioa erabiliz, komandoen exekuzio paraleloaz ari garela. Batzuetan, horrek ustekabeko emaitzak ekar ditzake. Honi buruzko xehetasunak irakur daitezke Hemen.

Orain hitz egin dezagun fitxategietako datuak irakurtzeaz eta pantailan bistaratzeaz.

▍Fitxategiak irakurtzea

head my_file: fitxategi baten hasierako lerroak irakurtzen ditu eta pantailan inprimatzen ditu. Fitxategien edukia ez ezik, komandoek ateratzen dutena ere irakur dezakezu stdinkomando hau kanalizazioaren zati gisa erabiliz.

tail my_file: fitxategiaren amaieratik lerroak irakurtzen ditu. Komando hau kanalizazio batean ere erabil daiteke.

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria
Burua (burua) aurrean dago, eta buztana (buztana) atzean

Pandas liburutegia erabiliz datuekin lan egiten ari bazara, komandoak head и tail ezaguna izan beharko zenuke. Horrela ez bada, begiratu goiko irudiari, eta erraz gogoratuko dituzu.

Demagun fitxategiak irakurtzeko beste modu batzuk, hitz egin dezagun komandoari buruz cat.

Team cat edo fitxategi baten edukia pantailan inprimatzen du, edo hainbat fitxategi kateatzen ditu. Deitzean komando honi zenbat fitxategi pasatzen zaizkion araberakoa da.

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria
katu agindua

cat my_one_file.txt: fitxategi bakar bat komando honi pasatzen zaionean, hona ateratzen du stdout.

Bi fitxategi edo fitxategi gehiago ematen badiozu, era ezberdinean jokatzen du.

cat my_file1.txt my_file2.txt: sarrera gisa hainbat fitxategi jaso ondoren, komando honek haien edukia kateatzen du eta bertan gertatutakoa bistaratzen du stdout.

Fitxategien kateazioaren emaitza fitxategi berri gisa gorde behar bada, operadorea erabil dezakezu >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Orain hitz egin dezagun fitxategiak ezabatu eta prozesuak geldiarazteko moduari buruz.

▍Fitxategiak ezabatzea, prozesuak gelditzea

rm my_file: fitxategia ezabatu my_file.

rm -r my_folder: karpeta bat ezabatzen du my_folder eta dituen fitxategi eta karpeta guztiak. Bandera -r komandoa modu errekurtsiboan exekutatuko dela adierazten du.

Fitxategi edo karpeta bat ezabatzen den bakoitzean sistemak berrespena eskatzea saihesteko, erabili bandera -f.

kill 012345: Zehaztutako exekutatzen ari den prozesua geldiarazten du, dotorez ixteko denbora emanez.

kill -9 012345: zehaztutako exekutatzen ari den prozesua indarrez amaitzen du. Ikusi Bandera -s SIGKILL banderaren berdina esan nahi du -9.

▍Bilatu

Komando desberdinak erabil ditzakezu datuak bilatzeko. Zehazki - grep, ag и ack. Hasi gaitezen komando hauek ezagutzen grep. Denboraz probatutako komando fidagarria da hau, baina beste batzuk baino motelagoa eta erabiltzeko ez den bezain erosoa.

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria
grep komandoa

grep my_regex my_file: bilaketak my_regex в my_file. Bat-etortze bat aurkitzen bada, kate osoa itzuliko da, bat-etortze bakoitzeko. Lehenetsia my_regex adierazpen erregular gisa tratatua.

grep -i my_regex my_file: Bilaketa maiuskulak eta minuskulak bereizten dira.

grep -v my_regex my_file: ez duten errenkada guztiak itzultzen ditu my_regex. Bandera -v inbertsioa esan nahi du, operadorearen antza du NOT, programazio-lengoaia askotan aurkitzen da.

grep -c my_regex my_file: fitxategian aurkitutako bilatutako ereduaren bat-etortze kopuruari buruzko informazioa ematen du.

grep -R my_regex my_folder: bilaketa errekurtsiboa egiten du zehaztutako karpetan dauden fitxategi guztietan eta bertan habiaratu diren karpetetan.

Orain taldeari buruz hitz egin dezagun ag. Geroxeago etorri zen grep, azkarragoa da, erosoagoa da berarekin lan egitea.

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria
Ag agindua

ag my_regex my_file: lerro-zenbakiei eta lerroei beraiei buruzko informazioa itzultzen du, zeinekin bat-etortzeak aurkitu diren my_regex.

ag -i my_regex my_file: Bilaketa maiuskulak eta minuskulak bereizten dira.

Team ag fitxategia automatikoki prozesatu .gitignore eta irteeratik kanpo uzten du fitxategi horretan zerrendatutako karpetetan edo fitxategietan aurkitzen dena. Oso erosoa da.

ag my_regex my_file -- skip-vcs-ignores: bertsio automatikoen kontrol fitxategien edukia (adibidez .gitignore) ez da kontuan hartzen bilaketan.

Horrez gain, taldeari kontatzeko ag bilaketatik kanpo utzi nahi dituzun fitxategi-bideetan, fitxategi bat sor dezakezu .agignore.

Atal honen hasieran, komandoa aipatu dugu ack. Taldeak ack и ag oso antzekoak, esan dezakegu %99 trukagarriak direla. Hala ere, taldea ag azkarrago funtzionatzen du, horregatik deskribatu dut.

Orain hitz egin dezagun artxiboekin lan egiteaz.

▍Artxiboa

tar my_source_directory: karpeta bateko fitxategiak kateatzen ditu my_source_directory tarball fitxategi bakar batean. Fitxategi horiek erabilgarriak dira fitxategi multzo handiak norbaiti transferitzeko.

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria
tar komandoa

Komando honek sortutako tarball fitxategiak luzapena duten fitxategiak dira .tar (Zinta artxiboa). Komandoaren izenean eta sortzen dituen fitxategien izenen luzapenean "zinta" hitza (zinta) ezkutatuta egoteak komando hori zenbat denboran dagoen adierazten du.

tar -cf my_file.tar my_source_directory: izeneko tarball fitxategi bat sortzen du my_file.tar karpetaren edukiarekin my_source_directory. Bandera -c "sortu" (sorkuntza) eta bandera adierazten du -f "fitxategia" bezala (fitxategia).

Fitxategiak ateratzeko .tar-fitxategia, erabili komandoa tar banderekin -x ("atera", erauzketa) eta -f ("fitxategia", fitxategia).

tar -xf my_file.tar: fitxategiak ateratzen ditu my_file.tar uneko lan-direktoriora.

Orain hitz egin dezagun nola konprimitu eta deskonprimitu .tar-fitxategiak.

tar -cfz my_file.tar.gz my_source_directory: hemen bandera erabiliz -z ("zip", konpresio algoritmoa) algoritmoa fitxategiak konprimitzeko erabili behar dela adierazten du gzip (GNUzip). Fitxategien konpresioak diskoko tokia aurrezten du fitxategi horiek gordetzean. Fitxategiak, adibidez, beste erabiltzaile batzuei transferitzea aurreikusita badago, horrek fitxategi horiek azkarrago deskargatzen laguntzen du.

Deskonprimitu fitxategia .tar.gz bandera bat gehi dezakezu -z atera edukia komandora .tar-fitxategiak, goian aipatu ditugunak. Honela dirudi:

tar -xfz my_file.tar.gz
Kontuan izan behar da taldea tar Bandera erabilgarria gehiago daude.

Bash ezizena

Bash aliasak (alises edo laburdurak ere deitzen dira) komandoen edo haien sekuentziak izen laburtuak sortzeko diseinatuta daude, eta horien erabilerak ohiko komandoen ordez lana bizkortzen du. Ezizena baduzu bu, komandoa ezkutatzen duena python setup.py sdist bdist_wheel, orduan komando honi deitzeko, nahikoa da alias hau erabiltzea.

Halako alias bat sortzeko, gehitu hurrengo komandoa fitxategian ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Zure sistemak fitxategia ez badu ~/.bash_profile, orduan zuk zeuk sor dezakezu komandoa erabiliz touch. Aliasa sortu ondoren, berrabiarazi terminala, eta ondoren alias hau erabil dezakezu. Kasu honetan, bi karaktereren sarrerak komandoaren hiru dozena karaktere baino gehiagoren sarrera ordezkatzen du, hau da. batzarrak Python paketeak.

В ~/.bash_profile maiz erabiltzen diren komandoei aliasak gehi ditzakezu.

▍Emaitzak

Argitalpen honetan, Bash-eko 21 komando ezagun azaldu ditugu eta komandoen aliasak sortzeari buruz hitz egin dugu. Gai hau interesatzen bazaizu - Hemen Bash-i eskainitako argitalpen sorta. Hemen Argitalpen hauen pdf bertsioa aurki dezakezu. Gainera, Bash ikasi nahi baduzu, gogoratu, beste edozein programazio-sistemarekin bezala, praktikatzea funtsezkoa dela.

Irakurle maitea! Hasiberrientzako erabilgarriak diren zein komando gehituko zenituzke artikulu honetan eztabaidatu zirenei?

Irakurri ere gure blogean bash scriptei buruzko argitalpen sorta bat

[Laster-markatua] Hasiberrientzako Bash: 21 komando erabilgarria

Iturria: www.habr.com

Gehitu iruzkin berria