Linux oinarrizko komandoak

thumb|*Linux sistema eragilearen kontsola pantaila*

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]
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]  []

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 ...] 

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 ...] 
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]   [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]   [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]   [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] [+|-] . 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**

::****irteera estandarra birbideratzeko, irteera pantailan agertu beharrean fitxategi 	batean gorde dadin.
::**>>** irteera birbideratzea baina eransketa moduan.
::**** 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 /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

## 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 ** komandoa idatz dezakezu; **** 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]  [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.
::**-***zenbakia***n**: zenbakia +1 eremura egiten du salto.
::**-t***karakterea*: 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  del adibide.txt
::# Type C-d to exit
:at> 
:$

Denbora modu askotara zehatz dezakezu:

::Now +  : orain, gehi denbora-tartea.
:::Denbora-tartearen sintaxia hau da:  (minutes | hours | days | weeks | months)
::  : 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** **: artxibo bat sortu  izenarekin,  izeneko artxibotik atera, edo  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 
## Kanpo estekak 
* linuxcommand.org