# Linux oinarrizko komandoak

GNU/Linux sistema eragilean komando-lerroan lan egiteko jakin beharreko komandoen zerrenda da honakoa. Nahiz eta GNU/Linux sistema eragileko leiho sistemak erabiltzaile asko inguratu dituen, oraindik beharrezkoa da komando-lerroko interpretatzailea erabiltzea GNU/Linux-eko distribuzio bati ahalmen guztia ateratzeko.

## Fitxategiak kudeatzeko utilitateak

Testuinguru honetan, fitxategiak kudeatzeak fitxategiak kopiatzea, lekuz aldatzea eta ezabatzea esan nahi du.
mkdir (MaKe DIRectory) direktorioak sortzeko erabiltzen da.
       mkdir [aukerak] <direktorioa> [direktorioa]
Aukera bakarra aipatuko dugu: -p aukera, hain zuzen. Bi gauza egiten ditu:
    a. Direktorio gurasoak sortuko ditu, lehendik ez badaude. Aukera hau gabe, mkdir komandoak huts egingo luke, aipaturiko direktorio gurasoak ez daudelako.
    b. Sortu nahi duzun direktorioa lehendik badago, isil-isilik itzuliko da. Era berean, -p aukera zehaztu ez baduzu, mkdir-ek huts egingo du, direktorio hori lehendik ere badagoelako.
touch Hasieran, touch komandoa ez zen fitxategiak sortzeko, baizik eta fitxategiak azkeneko aldiz ireki eta aldatu ziren data eta ordua eguneratzeko. Dena dela touch komandoak aipaturiko fitxategiak fitxategi huts gisa sortuko ditu lehendik ez bazeuden.
       touch [aukerak] fitxategia [fitxategia...]
Adibidea: touch file1 images/file2
rm fitxategiak edo direktorioak ezabatu. rm komandoak (ReMove) DOSeko del eta deltree komandoen parekoa da.
       rm [options] <file |directory> [<file |directory>]
Aukerak:
    -r edo –R: errekurtsiboki ezabatu. Aukera hau nahitaezkoa da direktorio bat ezabatzeko, hutsa egon ala ez. Dena dela, rmdir ere erabil dezakezu direktorio hutsak ezabatzeko.
    -i : ezabatu aurretik berrespena eskatu.
    -f aukera –i aukeraren aurkakoa da; fitxategiak edo direktorioak ezabatzera behartzen zaitu, baita erabiltzaileak fitxategi horietan idazten baimenik ez badu ere.
       Adibidea: rm –i images / *jpg file1
       rm –Rf images / misc/ file*
mv (MoVe): Fitxategiak lekuz edo izenez aldatzea.
       mv [options] <file | directory> [file|directory ...] <destination>
Hona aukera batzuk:
    -f eragiketa egitera behartzen du; lehendik dagoen fitxategi baten gainean idaztera badoa, ez du inolako abisurik ematen.
    -i: aurkakoa ; erabiltzaileari lehendiz dagoen fitxategi baten gainean idatzi aurretik berrespena eskatzen dio.
    -v: modu xehetua, aldaketa eta jarduera guztien berri ematen du.
Adibideak:
       mv –i /tmp/pics/*png .
       mv foo bar
       mv –vf file* images/ trash/
cp (CoPy): Fitxategiak eta direktorioak kopiatzea.
       cp [options] <file | directory> [file | directory ...] <destination>
cp komandoak aukera ugari ditu. Hauek erabiltzen dira gehien :
    -R : errekurtsiboki kopiatu ; nahitaezkoa da direktorioak kopiatzeko, baita hutsik badaude ere.
    -i : gainidatz daitezkeen fitxategiak gainidatzi aurretik berrespena eskatzen du.
    -f : aurreko –i aukeraren aurkakoa, lehendik dauden fitxategiak berrespena eskatu gabe ordezkatzen ditu.
    -v : modu xehetua, cp komandoak egindako ekintza guztiak bistaraten ditu.
Adibideak :
       cp –i /tmp/images/* images/
       cp –vR docs/ /shared/mp3s/* mystuff/
       cp foo bar

## Fitxategien atributuak aldatzea

Hemen erakusten diren komandoak fitxategi baten jabea edo talde-jabea edo bere baimenak aldatzeko erabiltzen dira.
chown, chgrp: Fitxategi baten edo batzuen jabea eta taldea aldatzea. chown komandoaren sintaxia (Change OWNer, jabea aldatu) honako hau da:
       chown [options] <user[.group]> <file|directory> [file |directory...]
Hauek dira aukeretako batzuk:
    -R: errekurtsiboa. direktori jakin bateko fitxategi eta azpidirektorio guztien jabea aldatzeko.
    -v: modu xehetua chown komandoak egindako ekintza guztiak erakusten ditu; komandoaren ondorioz zein fitxategiren jabea aldatu den eta zein fitxategi ez diren aldatu jakinarazten du.
    -c: aipaturiko -v aukeraren antzekoa, baina aldatu diren fitxategien berri bakarrik ematen du.
Adibideak:
       chown nobody /shared/book.tex
       chown –Rc pingus.music *.mid concerts/
chgrp komandoak (Change GrouP, taldea aldatu) fitxategi baten (edo batzuen) talde-jabea aldatzeko aukera ematen dizu. Bere sintaxia:
       chgrp [options] <group> <file | directory> [file | directory...]
Komando honen aukerak chown komandoaren berdinak dira, eta oso antzera erabiltzen da.
chmod: Fitxategi eta direktorioetako baimenak aldatzea. chmod komandoak (CHange MODe) oso sintaxi berezia dauka:
       chmod [options] <change mode> <file | directory> [file | directory...]
baina modu-aldaketa era askotan egin daitekeela du bereizgarri. Bi modutan zehatz daiteke:
Zenbaki-sistema bitarrean; 4 irakurtzeko baimenerako, 2 idazteko baimenerako eta 1 exekutatzeko baimenerako. Adierazpen bidez: hemen baimenak adierazteko komaz bereizitako adierazpen-sekuentzia erabiltzen da. Ondorioz, adierazpen batek forma hau hartzen du [kategoria] [+|-] <baimenak>. Kategoria hauetako bat edo gehiago izan daitezke:
    u (User-erabiltzailea-jaearentzako baimenak)
    g (Group-taldea-talde jabearenzako baimenak)
    o(Others- bestea-, besteentzak baimenak)
Kategoriarik zehazten ez bada, aldaketak kategoria guztiei aplikatuko zaizkie. + ikurrak baimen bat ezartzen du, - ikurrak baimen hori kendu egiten du eta = ikurrak baimena berrezartzen du.
Aukerak:
    -R: baimenak errekurtsiboki aldatzen du
    -v: modu xehetua fitxategi bakoitzaren egin diren ekintzak bistaratzen ditu.
    -c: aipaturiko –v aukera bezala, baina komandoak ukitutako fitxategiak bakarrik erakusten ditu.
Adibidea:
       chmod –R o-w /share/docs
       chmod –R og-w, o-x private
       chmod –v 644 misc/file*

## Shell-aren englobatze-ereduak

          karaktere kate bat ordezkatzen du.
       ?: karaktere bakarra ordezkatzen du.
       [...]:kortetxe artean dagoen edozein karakterekin etortzen da bat.
          Adibidez [1-9]
       [¡..]:kortetxe artean ez dagoen karakterekin etortzen da bat. Adibidez: [¡a-z].
Adidideak:
       /etc/*conf
      * [¡a-z]

## Birbideratzeak eta kanalizazioak

Zerbait gehiago prozesuei buruz UNIX-eko prozesu bakoitzak gutxienez hiru fitxategi-deskriptore irekitzen ditu: sarrera estandarra (0), irteera estandarra (1) eta errore estandarra (2). Hiru deskriptore horiek prozesua hasteko erabili den terminalari lotuta egoten dira, eta sarrera teklatua izaten da. Birbideratzeen eta kanalizazioaren helburua deskriptore horiek birbideratzea da.
    Birbideratzeak
       < sarrera estandarra birbideratzea, hau da, sarrera teklatutik izan beharrean fitxategi batetik izan dadin erabiliko dena.
       >irteera estandarra birbideratzeko, irteera pantailan agertu beharrean fitxategi batean gorde dadin.
       >> irteera birbideratzea baina eransketa moduan.
       << datuak ondoren datozela adierazteko, scriptean bertan datuak zehazteko eta ez tekleatzeko.
       2> erroren mezuak birbideratzea. Emaitzak eta errore-mezuak bereizten dira eta batzuetan erroreak dira birbideratu nahi direnak.
       | pipea edo kanalizazioa, ezkerreko komandoaren irteera eskuineko komandoaren sarrerara bideratzea. Komando baten irteera hurrengoaren sarrera izan behar denean erabiliko da, horrela fitxategi iragankor bat sortzeko eta ezabatzeko beharra saihesten baita.
Adibideak:
       ls irudiak/*.png > fitxategi_zerrenda
       wc –l <fitxategi_zerrenda
       ls –R /shared >/dev/null 2>erroreak
1.5. Komando-lerroaren osatzea
Osatzea oso funtzio erabilgarria da, eta shell moderno guztiek (baita bash-ek ere) badaukate. Bere helburua erabiltzaileari ahalik eta lan gutxien eginaraztea da.
Adibidea: Eman dezagun zure direktorio pertsonalak fitxategi_izen_luze_eta_idatzezina izeneko fitxategia daukala, eta fitxategi hori ikusi nahi duzula. Honako sekuentzia idatzi:
       $more fi<TAB>

## Atzeko planoko prozesuak abiarazi eta kudeatzea: lanen kontrola

Ziurrenik konturatuko zinen Terminal batetik komandoa sartzen duzunean, normalean itxaron egin behar duzula komandoak amaitzen duen arte shell-ak kontrola zuri itzul diezaizun. Horrek esan nahi du komandoa aurreko planotik bidali duzula. Hala ere, batzuetan hori ez da komenigarria izaten. Eman dezagun, adibidez, direktorio handi bat beste direktorio batean errekurtsiboki kopiatu nahi duzula. Erroreei kasurik ez egitea ere erabaki duzu eta, beraz, errore-kanala /dev/null fitxategira birbideratzen duzu:
       cp –R irudiak/ /shared/ 2>/dev/null
Horrelako komando bat guztiz exekutatzeko hainbat minutu beharko dira. Beraz, bi aukera dituzu: lehenengoa bortxazkoa da, eta komandoa geldiaraztea da eta denbora duzunean berriro egitea esan nahi du. Hori egiteko, idatzi ctrl+c: ondorioz, prozesua amaitu egingo da.
Eman dezagun komandoa beste zerbait egiten ari zaren bitartean exekutatzea nahi duzula. Irtenbidea prozesua atzeko planoan kokatzea da. Hori egiteko:
       cp –R irudiak/ /shared/ 2>/dev/null &
Nahi baduzu, prozesu hori aurreko planora ekar dezakezu eta amaitu zain egon fg idatziz (ForeGround). Berriro ere atzeko planora eramateko, idatzi ctrl+z, bg sekuentzia.
Lan bat baino gehiago has ditzakezu horrela: komando bakoitzari lan-zenbaki bat eskeituko zaio, shell-aren jobs komandoak une horretako shell-ari loturiko lan guztien zerrenda bistaratzen du. Lan baten aurrean + ikurra agertzen denean, azken prozesua atzeko planoko ataza gisa hasi zela adierazten du. Lan jakin bat berriro aurreko planora ekartzeko, fg <n> komandoa idatz dezakezu; <n> lan-zenbakia izango da.

## find: irizpide jakin batzuen arabera fitxategiak aurkitzea

Direktorio bat edo gehiago errekurtsiboki arakatzea eta direktorio horietan irizpide-multzo jakin batekin bat datozen fitxategiak aurkitzen ditu. Oso erabilgarria den arren, bere sintaxia nahiko iluna da, eta ohitutzeak lan pixkat ematen du.
       find [options] [direktorioes] [criterion][action]
Direktoriorik zehazten ez baduzu, find-ek uneko direktorioa arakatuko du. Irizpiderik zehazten ez baduzu, “egia” izatearen baliokidetzat joko da, eta fitxategi guztiak aurkituko dira.

## grep: Lokalizatu fitxategi barneko kateak

Fitxategi batean edo gehiagotan argumentu gisa emandako eredu bat bilatzen du. Bere sintaxia:
       grep [options] <pattern> [one or more files]
Fitxategi bat baino gehiago aipatzen badira, emaitzean bistaratzen den eta bat datorren lerro bakoitzaren aurrean haien izena agertuko da.
Gehien erabiltzen diren aukerak:
    -h aukera: izen horiek bistaratzea eragozteko.
    -l aukera: bat datozen fitxategi-izenak bakarrik eskuratzeko.
    -i: bilaketa letra larriak eta xeheak bereizi gabe egin ( hau da, letra larriz xehez idatzitako hitzak berdintzat hartu)
    -v: bilaketa alderantzikatu: ereduarekin bat ez datozen lerroak bistaratu.
    -n: aurkitutako lerro bakoitzaren lerro-zenbakia bistaratu.
    -w: ereduak hitz osoarekin bat etorri behar duela adierazteko.

## Fitxategien edukia ikusi

Fitxategiaren burua ikusteko, hau da, lehenengo lerroak soilik agerrarazteko: head komandoa erabiltzen da. Ezer zehazten ez bada, lehen 10 lerroak azalduko dira; baina lerro-kopurua zehaztu daiteke.
       head fitx1
       head -100 fitx1 (lehen 100 lerroak)
Fitxategiaren buztana edo bukaera ikusteko, hau da, azkeneko lerroak soilik agerrarazteko, tail komandoa.
       tail -100 fitx1 ( azken 100 lerroak )
       tail -50 fitx1 ( azken 50 lerroak )
Fitxategiaren edukia pantailaz pantaila ikusteko, more eta less komandoak ditugu. Unix munduan more da estandarra, baina Linux sisteman sortutako less programa malguagoa da atzera eta aurrera mugitzeko aukera ematen bai du.
Fitxategiaren eduki osoa ikusteko, eta baita zenbait fitxategi kateatzeko ere, cat komandoa. Kateatzetik dator bere izena eta horretarako erabiltzen da gehienetan, hainbat fitxategi kateatu bat bestearen atzetik, eta beste batean gorde fitxategi guztien bildura. Dena den, fitxategi bakarra aipatzen bada eta irteera birbideratzen ez bada, fitxategiaren edukia bistaratuko da pantailan.
       cat fitx1 (fitx1 pantailan ikusteko)
       cat fitx1 fitx2 fitx3 > fitx_osoa ( fitx1, fitx2 eta fitx3 kateatu eta fitx_osoa-n gorde)

## Iragazkiak

sort
Alfabetikoki ordenatzeko komandoa. Aukerak:
       -r: goitik behera ordenatzeko
       -n: zenbakiak ordenatzeko
       -u: errepikatuta dauden lerroak kentzen ditu.
       -zenbakian: zenbakia +1 eremura egiten du salto.
       -tkarakterea: eremuak ezberdintzeko erabiltzen den karakterea.
Adibideak:
       sort /etc/passwd
       sort –r /etc/passwd
       sort +2n –t: /etc/passwd
       sort +2n –t: -n /etc/passwd
uniq
Errepikatuta eta jarraian dauden lerroak ezabatzeko komandoa.
Adibidea
Ikasleak izeneko fitxategi bat izanik: Laura Etxebeste:18urte:Donostia Laura Etxebeste:18 urte: Donostia Iker Aldamiz:19 urte:Lasarte Oskar Ariz:20 urte:Urnieta Iker Aldamiz:18 urte:Lasarte
       uniq ikasleak
       uniq ikasleak ikasleak2
       uniq –d ikasleak
tr
Karaktereak ordezkatzeko komandoa. Adibideak:
       tr a z < ikasleak
       tr ‘[A-Z]’ ‘[a-z]’ < ikasleak
       tr –d ‘ ‘ < ikasleak
cut
Eremuak edo karaktereak mozteko komandoa. Aukerak:
       -c zkiazkia karaktere mozten ditu
       -d karaktereaeremu banatzailea karakterea dela zehazteko
       -f zkiazkia banatzaileak moztu
Adibideak:
       cut –c1 ikasleak
       cut –c1,5,10-20 ikasleak
       cut –d: -f2 ikasleak
       cut –d: -f3 ikasleak
paste Cut komandoaren kontrakoa egiten du (informazioa itsatsi)

## crontab: zure crontab fitxategiaren berri eman edo editatzea

crontab komandoari esker komandoak denbora-tarte erregularretan exekuta ditzakezu eta, horrez gain, ez duzu saiorik hasi behar eta irteerako txostena bidaltzen zaizu. Denbora-tarteak minututan, ordutan, egunetan nahiz hilabetetan zehatz ditzakezu. Aukeren arabera, crontab komandoak era batera edo bestera jokatuko du:
       -l: zure uneko crontab fitxategia inprimatu
       -e: zure uneko crontab fitxategia editatu
       -r: zure uneko crontab fitxategia kendu.
       -u: erabiltzailea goiko aukeratako bat aplikatu erabiltzaile honi (root-ek bakarrik egin dezake hori).

## at: komandoa antolatu, baina behin bakarrik

Gerta liteke egun jakin batean komando bat exekutatu nahi izatea, baina ez erregularki. Adibidez, gaur arratsaldeko 5:30etan adibide.txt izeneko fitxategia ezabatu nahi duzu:
    $at 5:30pm
      * You’re now in front of the at prompt
    at> del adibide.txt
      * Type C-d to exit
    at> <EOT>
Denbora modu askotara zehatz dezakezu:
       Now + <denbora-tartea> : orain, gehi denbora-tartea.
          Denbora-tartearen sintaxia hau da: <n> (minutes | hours | days | weeks | months)
       <ordua> <eguna> : data osoa zehaztu.

## bzip2 eta gzip: datuak konprimitzeko programak

Hasieran, bzip2 gzip ordezteko sortu zen. Bere konprimitze-mailak normalean hobeak izaten dira, baina, bestalde, memoria gehiago okupatzen du. gzip erabiltzen jarraitzeko arrazoia da oraindik bzip2 baino hedatuago dagoela. Bi komandoek antzeko sintaxia dute:
       gzip [options][files]
Bi programek aukera ugari dituzte:
    -1, ..., -9: konprimitze-maila ezarri. Zenbakia zenbat eta handiagoa izan, konprimitze hobea izango da, baina hobeak mantsoagoa ere esan nahi du.
    -d: fitxategiak deskonpirmitu. hori gunzip edo bunzip2 erabiltzearen baliokidea da.
    -c:komando-lerroan emandako fitxategiak konprimitu edo deskonprimitzearen emaitza irteera estandarrera iraultzen du.
Demagun zure irudien artxiboa beste norbaiti bidali nahi diozula, baina lagun horrek bzip2 ez daukala, gzip besterik ez. Ez duzu zertan artxiboa deskonprimitu eta berriro konprimitu, nahikoa konprimitzea eta irteera artxibo berrira birbideratzea:
          bzip2 –dc images.tar.bz2 | gzip -9 > images.tar.gz

## tar: Tape Archiver (zinta-artxibadorea)

Sintaxia:
       tar [options] [files...]
Hona hemen aukeren zerrenda:
    c: aukera hau artxibo berriak sortzeko erabiltzen da
    x: aukera hau lehendik dagoen artxibo batetik fitxategiak ateratzeko erabiltzen da.
    t: artxibo bateko fitxategiak zerrendatu.
    v: honek fitxategiak zerrendatuko ditu artxibo bati gehitzen zaizkionean edo artxibo batetik ateratzen direnean, besterik gabe.
    f <file>: artxibo bat sortu <file> izenarekin, <file> izeneko artxibotik atera, edo <file> artxiboko fitxategiak zerrendatu.
    z: tar komandoari sortu beharreko artxiboa gzip erabiliz konprimitu behar dela adierazten dio, edo atera beharreko fitxategiak dituen artxiboa gzip erabiliz konprimitu dela
    j: aipaturiko z aukera bezala, baina konprimitzeko erabili den programa bzip2 da
    p: artxibo batetik fitxategiak ateratzean, fitxategien atributu guztiak gordetzen dira, jabea, azkenekoz ireki zen data, etab. barne direla.
    r: komando-lerroan emandako fitxategi-zerrenda lehendik dagoen artxibo bati eransten dio. Kontuan izan fitxategiak erantsi nahi dizkiozun artxiboak ez lukeela konpirimituta egon behar.

## Erreferentziak

* ↑ Cortiñas Rodríguez, Roberto; Alegria Loinaz, Iñaki. (2008-12-30). Linux: Sistemaren eta sarearen administrazioa 2. argitaraldia (Debian eta Ubuntu). UEU ISBN 978-84-8438-178-5. (Noiz kontsultatua: 2020-04-21).

## Kanpo estekak

* linuxcommand.org
* Datuak: Q3822662
* Multimedia: GNU Bash / Q3822662