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.
→
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.
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 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
<
: birbideratustdin
.>
: birbideratustdout
.|
: 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 ../
.
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 mv
fitxategiak edo karpetak izena aldatzeko ere erabil daiteke. Adibidez, honelakoa izan daiteke:
mv my_old_file_name.jpg my_new_file_name.jpg
: fitxategi baten kopia bat sortu
cp my_source_file target_directorymy_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.
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
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
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 stdin
komando hau kanalizazioaren zati gisa erabiliz.
tail my_file
: fitxategiaren amaieratik lerroak irakurtzen ditu. Komando hau kanalizazio batean ere erabil daiteke.
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.
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.
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.
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.
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.
В ~/.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 -
Irakurle maitea! Hasiberrientzako erabilgarriak diren zein komando gehituko zenituzke artikulu honetan eztabaidatu zirenei?
→
Iturria: www.habr.com