Páginas

2008/02/21

Ingurune-aldagai bereziak

Ubuntun, beste Linux-eko distroekin bezala, erabiltzaile orok badu bere ingurune pertsonalizatua sisteman konekxioa egiten duenetan, adibidez HOME, PATH ,PS1, PWD,MAIL, DEFAULT_BROWSER,LANG, SHELL,... . Ordea, aldatu ezin diren aldagairik egon badaude. Ikusi ondorengo hauek:
  • $0 : aldagai horren balioa da programaren ( script) izena
  • $1,$2,...$9 : programari pasatzen zaizkion parametroak . Demagun, teklatutik hartutako bi zenbakiren batura kalkulatzeko script bat egiten dugula, izan bedi batuketa.sh programaren izena. Demagun exekutatzeko idazten dugula batuketa.sh 5 9 . Kasu horretan, $1 aldagaiak 5 balioko du, $2 aldagairen balioa 9 da, eta $0 aldagaiaren balioa batukaeta.sh
  • $* : pasatutako argumentoak , zerrenda batean jarrita . Aurreko adibidean $* alagaiaren balioa izango da 5 9 , hau da "bost" eta "bederatzi"
  • $# : argumentu kopurua . Aurreko adibidean 2 izango litzateke $#-ren balioa
  • $$ :uneko prozesuaren identifikatzailea, hau da PID

2008/02/19

grep Komandoa

grep ( Global Regular Expression Print ) komandoarekin bilaketak egin daitezke fitxategietan. Komandoak egiten duena zera da : emandako fitxategian bilatuko du adierazitako hitzak, espresio erregularrak edota patroiak aurkitzen diren. Fitxategia ez bada aipatzen sarrera standarretik ( stdout) hartuko du. Emaitza pantailan , berbideratzen ez badugu, agertuko da.
Zenbait aukera jar daitezke; ohikoenak honako hauek dira:
-c (count ) aurkitutako lerroen zenbakiak baino ez du erakusten
- i (ignore) berdin da letra larriaz zein xeheez bidalketarako.

Proba bat egiteko sortuko dugu hurrengo fitxategia
cat lagunak.txt
Koldo Salaberria 974563465 koldo@sare.net

Marta Gonzalez 973648912 martin@yahoo.es

Sabin Intxarte 679874623 sbit@yahoo.com
Miren Gonzalez 890565456 mg@opnetra.net
Ana gonzalez 6780907897 angaz@osasuna.net
[CTL+D]

Era horretan lagunak.txt fitxategia egin dugu,
cat komandoaz baliatuz.
Ondorengo proba hauek egin ditzagun:
grep Gonzalez lagunak.txt
horren emaitza , fitxategiaren 2. eta 3. lerroak da ;
grep -i Gonzalez lagunak.txt
oraingo kasuan 2,4,5 lerroak dira bilatutakoak;
grep -n '^[A-N]' lagunak.txt
azkeneko kasuan, espresio erregularra erabiltzen da , n aukeraz gain. '^[A- H]' espresioak honako hau adierazi nahi du:
  • ^ lerroaren hasiera
  • [A-H] A,B,....H letra multzoa
modu horretan, A, B ... edo H hizkiekin hasten diren lerroak izango da komando horren emaitza.

grep -n '^M' lagunak.txt
M-z hasten diren lerroak

Aplikazioak: grep komandoaren funtzionamendua ikusi ondoren nork bere atekina atera dezake, adibidez

ls -al | grep *.sh
espresio horretan ez diogu grep komandoari sarrera adierazten , beraz pantailatik hartuko du, ls komandoaren emaizta izanik hain zuzen ere. Emaitza hau izango da: gauden katalogoko sh-arekin bukatzen diren fitxategiak

2008/02/17

GONBITEA pertsonalizatu

Kontsola birtuala edo terminala irekitzen dugunean , lerro hasiera PS1 aldagaiak ezartzen du. Adibidez, nire kasuan honako gonbite (prompt ) daukat laguna@LinuxUBUNTU:~$ ; hori da PS1 ingurune aldagaiaren balioa . Nork berea dauka, beste batek makina berberean konexioa egiten badu, daukana aterako zaio. Aldagaiaren balioa alda dezakegu ; ikus ditzagun adibide batzuk.
Oharra: esleipena eta exportazioa aldi berean egin daitezke , ondorengo era honetan export aldagaia=balioa . Balioa edozein "informazio" izan daiteke, esaldi bat, beste aldagai baten balioa, etabar
  • export PS1="ongi etorria > " , gonbitea ongi etorria > izango da
  • export PS1="\u@\H > " , hasieraren antzeko gonbitea izango litzateke. Espresio horretan u letrak (user) erabiltzailearen izena adierazten du; gero @ karaltera dator, eta hurrengoa H ( host) makinaren izena da, eta bukatzeko > karakterea. Gonbitea, laguna@LinuxUBUNTU > izango da.
  • export PS1="\d:\u:\w:>" , \d data adierazteko, ondoren : bi puntu, \u erabiltzailearen izena , ondoren : bi puntu; \w uneko katalogoen bidea , eta amaitzeko :> . Emaizta , honako hau da ig. ots 17:laguna:~:>
  • Koloreak ere erabili daiteke, adibidea : export PS1="\e[32;40m\w> " , kasu horretan \w uneko katalogoa (textua) berdez --32-- eta fondoa beltzez-- 40 - agertuko dira gonbitean
Koloreak aukeratzeko ikusi beheko iruditik aukera daitezke

lehenengo planoaren kolorea jartzeko 30- 37 bitarteko zenbakiak erabili, eta atzeko planorako 40-tik 47-ra



Gonbitean, aukera gehiago daude; hona hemen batzuk:
  • \s Shell-aren izena
  • \t denbora 24 orduko formatuan
  • \T denbora 12 orduko formatuan
  • \@ denbora 12 orduko am/pm formatuan
  • \v bash-aren bertsioa
Sakontzeko ikusi hau

INGURUNE ALDAGAIAK

Linux sisteman, erabiltzaile-anitzekoa izanik, erabiltzaile orok badu ingurune pertsonalizatua konexioa egiten duenetik . Ingurune hori ingurune-aldagaiek kontrolatzen dute; asko dira baina ikus ditzagun batzuk.
Oharra: aldagaien izena letra larriaz adierazi ohi ditugu, eta datuen balioa eskuratzeko $ ikurra aurrejarri behar diegu
  • USER : erabiltzailearen izena da bere balioa. Konprobatzeko echo $USER terminalean idatzi
  • HOME : erabiltzailearen erro-katalogoa.
  • PWD : (Print Work Directory) uneko katalogoa
  • PATH : komandoak edo fitxategi exekutagarriak dituzten katalogoen bidea. echo $PATH eginez aterako da bere balioa. Ohar zaitez katalogoak bereizteko : ( bi puntu) erabiltzen direla
  • PS1 : horrek prompt-a ( gonbitea) zelan dago osatuta ematen digu.
  • BASH : interpretatzailearen bidea
  • EDITOR : berez jarritako textu-editorearen bidea.
  • ...
  • ..
Testuinguru-aldagai guztien balioa ikusteko erabil ezazu set komandoa . Asko direnez, pipe egitea komeni da : set | more , horrela pantailaz pantaila ikus daiteke set komadoaren irteera. env komandarekin emaitza bera lor daiteke.
Gainerako aldagaiekin bezala , berriak sor ditzakegu, edota daudenei balioa aldatu. Balioa esleitzeko , era arrunta erabiltzen da, adibidez : PATH=$PATH:/usr/local/nire_script ; hau da aldagai_izena=balio_berria.
Aurrekoarekin, balio berriak esleitzen dira, baina ez dute eraginik sortuko diren prozesuetan . Eragingarriak izateko , balio berriak kontuan hartzearen esaterako, export komandoa erabili behar da. Demagun : PATH aldagaiari esleitu diogun balio berriak eragingo die une horretatik aurrera egikaritzen diren prozesuei , hanako hau egin beharko genuke export PATH.


motd Fitxategia

FITXATEGI SISTEMA -motd
Kontsola birtuala irekitzen den bakoitzean, sistemak ongietorri-mezua ematen digu. Mezu hori /etc/motd textu fitxategian dago, beraz alda dezakegu gue gustukoaren arabera. Horretarako daukagun testu editore kutunena abiarazi eta editatu motd ( message of the day) fitxategia.
Jatorrizko mezuak honako textu hau dauka:

Linux LinuxUBUNTU 2.6.20-16-generic #2 SMP Tue Dec 18 05:45:12 UTC 2007 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.


2008/02/11

cat Komandoa

Textu fitxategiak kateatu ahal dira cat komandoaren bidez. Komando horren sintaxia honako hau da: cat [aukerak] [fitxategia(k)]. Aukerarik ohikoenak dira -n ( lerroak zenbatzeko ) edo -b (zuritan ez dauden lerroak bakarrik zenbatzeko). Fitxategia(k) ez badira adierazten cat komandoak sarrera kontsolatik hartzen du. Berez, komando horren sarrera eta irteera teklatua eta pantaila dira , hurrenez hurren
Ikus ditzagun adibide batzuk:
  • cat /home/jon/azterketa.txt : Kasu honetan cat komandoaren sarrera azterketa.txt fitxategia da , eta irteera standarrean, kontsola alegia, azterketa.txt fitxategiaren edukiera aterako da.
  • cat : Orain , sarrrera eta irteera standarrak dira , beraz teklatuan lerroa idazten dugun bakoitzean errepikatuko da pantailan ENTER sakatu orduko . Prozedura horretatik ateratzeko CTRL + C
  • cat > /home/jon/oharra.txt : Orain, sarrera standarra daukagu, hau da teklatuan idazten duguna cat komandoak "hartzen" du, oharra.txt fitxategira lerroak berbidaltzen, hau da oharra.txt fitxategia sortzen . Amaiera adierazteko CTRL+D sakatu.
  • cat < /home/jon/oharra.txt : Orain sarrera standarra ez da teklatua , guk beste bat <>
  • cat < /home/jon/oharra.txt > /home/jon/oharraKopia.txt : kasu horretan cat-aren sarrera ( < ) oharra.txt fitxategia da , eta irteera ( > ) oharraKopia.txt fitxategia da. Hori da fitxategi baten kopia egiteko metodo bat
  • cat >>/home/jon/oharra.txt : komando horrek teklatutik oharra.txt fitxategiari lerroak gehitu ahalbidetzen du, Ateratzeko , edo fitxategiaren amaiera adierazteko CTRL +D .

Berbideratzeak

Komandoek ,ekintza burutu eta gero , zenbait mezu eman ohi digute, bai ekintza ondo burutu zen bai akatsaren bat aurkitu bazen. Adibidea: ls -al komandoaren emaitza da fitxategien zerrenda , akatsik ez badago. Ohar zaitez, guk ez diogo shell-i esaten emaitza nora bidali behar duen, hori berez jarrita dago. ls komandoaren irteera standarra kontsola da, eta akatsaren bat badago stderr kontsolora , hau da , "2" zenbaki erakuzlea duen "fitxategira". Irteera horiek alda ditzakegu > ikurra ( sinboloa) erabiliz
ls -al > /home/jon/zerrenda.2008 2 > /tmp/akatsak/zerrenda.err
Horrekin zer adierazi nahi dugu: ls komandoaren irteera berbidaltzen dugu zerrenda.2008 fitxategira, eta akatsak badaude zerrenda.err fitxategian jasoko dira. Beraz > ikurra, irteera standarrak berbidaltzeko erabili ohi da.Ikur horri zenbait aldaketak egin diezaiokegu, jarraian adiereazten den legez:





























ikurra Zertarako
>
irteera standarra fitxategi batera ( edo dispositibora) berbidaltzeko.Fitxategia ez bada existitzen sortuko du, eta berridatziko du baldin eta existitzen bada
>>
Aurrekoaren antzekoa da, baina kasu honetan emaitza fitxategiko edukierari gehituko zaio
2> akats- irteera( stderr) berbidaltzen du fitxategi batera
2>>aurrekoaren antzekoa , baina informazioa fitxategiaren edukiari gehtzen zaio
2>&1stderr, hau da akats-irteera , irteera standarrera ( kontsola) berbidaltzen du
2>&stderr fitxategi batera berbidaltzen du


Adibideak:
  • komandoa > fitxategia : ls -al > ./probat.1
  • komandoa >> fitxategia: ls -al >> ./probat.1
  • komandoa 2> fitxategia : find /home/ez-da-existitzen-katalogoa -name kaixo > errorea
  • komandoa 2>&1 : find /home/ez-da-existitzen-katalogoa -name kaixo >&1

2008/02/10

Bash programazioa-III-

BASH -arekin hasten
Komandoak fitxategietan bildu ahal dira geroago denak batera exekutazteko. Komandoez osatutako fitxategiek script hartzen dute izen. Beraz, script bat sortzeko textu editorea ( vi, nano, gedit,...) baino ez dugu behar . Geroago horren inguruan oharrak emango dira, momentuz lehengo programatxoa egiteko segi hurrengo urrats hauek:

  • Ireki terminala
  • Exekutatu gedit kaixo.sh : honekin gedit editorea abiatu eta kaixo.sh fitxategia sortuko du.
  • Idatzi agertzen diren moduan hurrengo lerro hauek:( zenbakiak kenduta)
  1. #!/bin/bash
  2. # hau da nire lehenengo script-a
  3. echo Kaixo guztioi
  • Gorde fitxategia eta itxi gedit programa .
  • script-a egikaritzeko , idatzi bash kaixo.sh
Azalpenak:
  • script-a kaixo.sh izendatu dugu, hau da .sh luzapena jarri diogu; hori ez da beharrezkoa, Linux munduan fitxategiek ez dute luzapenik baino, argitasuna dela eta, komenigarria da eta horrela bereizten dira .
  • script-aren lerroei dagokienean: #! : horrekin bash shell non dagoen adierazten dugu ( horrek balio du beste interpretatzaileekin ere , hau da #!/usr/sbin/php adierazi balitz php scripta izango zela) ; # : horrekin lerro bakarreko komentarioak hasten dira ; echo : komando bat da, eta atzean datorrena bistarako du; komandoak lerro batean idazten dira ( \ "slash" horrekin komandoa bi , (edo gehiago) lerrotan idatz daiteke ); lerro batean komando bat baino gehiago idatz daitezke , horretarako "," (koma) erabiltzen da komandoak bereizteko
  • Egikaritzeko bash hello.sh idazten dugu; horrekin zer adierazten da? bash programari deia egiten diogu hello.sh script-a exekuta dezan; beste era batean esanda, bash exekutatzen dugu hello.sh argumentua pasatuz
  • Zer pasatuko litzateke komando lerroan hello.sh idatzi bagenu? . Erantzuna--> bash:hello.sh : komadoa not found izango zela , hau da bash shell-ak ez du hello.sh komandoa aurkitu, edo beste era batez esanda hello.sh ez da exekutagarria; ordea, dena dela exekutatzen badugu ls -al , ez digu akatsik emango hello.sh fitxategia hor baitago.Zergatik lehenengo erantzuna? Exekutagarriak diren "fitxategiak" dituzten katalogoak , PATH inguru alagaiak kontrolatzen du. Ondorioa: gure script-ak zuzenean egikarigarraik izateko nahi badugu PATH aldagain egindako script-eko karpetaren bideak egon behar du
  • Egin dezagun beste proba bat. Idatzi ./hello.sh . Gogora ezazu . dela uneko katalogoaren izena, beraz ./hello.sh , fitxategia ,zehatz mehatz, non dagoen eesaten diogu bash-i . Horren emaitza izango zen : bash: ./hello.sh: Permission denied .Orain ez digu esaten ez dela fitxategia aurkitzen ( guk espreseki adierazten baitiogu), baizik eta exekutatzeko baimenik ez daukagula.
  • Beraz, aurrekoa kontuan harturik script-a exekutagarri bihurtu behar dugu. Nola? , baimenak aldatuz. Gogora ezazu fitxategiek baimen bereziak dituztela .Era ezberdinetan alda daitezke baimenak. Ikus ditzagun : sudo chmod 750 kaixo.sh edo sudo chmod u=rwx,g=rw kaixo.sh. ( aldatzeko root izan behar dugu, horregatik sudo hori )
  • Baimenak aldatu ondoren , gure lehenengo script-a egikaritu ahal dugu idazten ./kaixo.sh
  • bash shell-ak bilatu behar dituen fitxategiak inguru-aldagai batean jasotzen dira.PATH da aldagai hori ( letra larriaz!!!!) . Ordenagailuan daukagun aldagai horren balioa jakiteko idatzi komando-lerroan echo $PATH .Zuk aldatu ez baduzu, ohikoena da /bin : /usr/bin izatea, hau da komandoak /bin karpetan edo /usr/bin beste horretan aurkituko dira. Horregatik, komando-lerroan kaixo.sh idazti dugunean ez duela fitxategia aurkitzen erantzun digu. Baina PATH -aren balioa alda dezakegu, horretarako idatzi PATH=$PATH:. ; hau da balio berria izango da: zaharrena -$PATH- , gehi laneko katalogoa , puntuz (.) adierazten dena, horretan script-a gordeta baitago. Kontuz, berdin ikurraren (=) aurrean eta atzean ez dagoela hutsunik egon behar; bestalde : ( bi puntu) PATH balioak bereizteko erabiltzen dira.
  • PATH ez badugu aldatu nahi , script-a /bin edo /usr/bin karpetatik batean gorde, hori arrikutsua bada ere. Hobe izango litzateke gure script-etarako katalogo bat /usr/bin katalogoan sortzea, ondoren gehitu PATH aldagaian!!!.
  • Gertatzen dena da, PATH aldagaiaren balio berria desagertuko dela ordenagailu amatatu ondoren; behin betikoan jartzeko ikasiko dugu beste momentu batean


2008/02/04

Sistema fitxategiarekin zerikusirik duten komandoak

Multzo honetan , dagoeneko ikusi ditugun find eta ls komandoak sartu ahal dira. Ikus ditzagun beste batzuk:
  • cd direktorioa : adierazitako direktoriora joateko (Change Direktory)


    • Adibidea : cd /etc/apt/

  • cp [aukerak] jatorria helburua : fitxategiak edta katalogak kopiatzeko jatorri-tik helburu-ra
    • Aukerak:
    • -R : era errekurtsiboan kopiatzeko, hau da azpikatalogoen katalogo/fitxategiak kopiatuko dira
    • -p helburuko fitxategiaren baimenak , hala nola fitxategien ezaugarriak , jarraitzen dute.
  • pwd : (present work direktory) aukera gabeko komandoa . Gauden katalogoa da bere emaitza
  • mv [aukerak] jatorria helburua : fitxategia(k) jatorritik helburura mugitzeko erabiltzen da. Beti kontuan izan fitxategiak direla , bai fitxategi arruntak ( dokumnetuak, irudiak,...) , bai direktorioak ( barruan ere azpikatalogoak existitu ahal dira). Komando horren emaitza jatorriko fitxategia mugitu ondoren zegoen katalogotik ezabatzea da. Fitxategiak berizendatzeko ere erabili ohi da.
Adibidea:
mv /home/jon/textuak/ariketa1.txt /home/jon/ariketa1.zuzenduta ,
ariketa1.txt izeneko fitxategiak ariketa.zuzenduta hartzen du izena, eta jon karpetara mugitu da
Aukerak:
    • -f : komandoak ezabatu baino lehenago "galdetzen digu" ,eskuarki; f aukerak dezeustatzen du aukera hori. Ez bagara oso ziur ez da komenigarria erabiltzea.
  • mkdir [aukerak] katalogoa: katakologoa izeneko direktorioa sortzen du
    • Aukerak:
      • -m baimenak : baimenak adierazteko era
      • -p : aita-direktorioak sortzen ditu existitzen ez badira.
Adibideak:
  • mkdir lanak : gauden direktorioan lanak izeneko direktorioa sortzen du .
  • mkdir /home/dokumentoak/lanak : /home/dokumentoak katalogoan lanak izeneko direktorioa sortzen du. Demagun , aurreko komandoan dokumentoak katalogoa ez dela existitzen,orduan lanak katalogoa ez zen sortuko !!!.Halako kasuetan -p aukera erabili behar dugu derrigor; hua da , hurrengo honetan mkdir -p /home/dokumentoak/lanak "dokumentoak" izeneko karpeta ez bada existitzen; ezinezko izango zaio komandoari burutzea.Kasu horretan -p aukera erabiltzen da. mkdir -p /home/dokumentoak/lanak , honekin dokumentoak izeneko katalogoa ere sortuko litzateke
  • rm [aukerak] fixategia(k) : edozein motako fitxategiak ( arruntak, katalogoak, estekak) ezabatzen ditu
    • Aukerak:
      • -f : ezer ezean, ezabatu baino lehen gure onartzea eskatzen digu; -f aukerarekin lehenetsitako era galtzen da.
      • -r : katalogoak eta euren edukia ezabatu nahi baditugu -r aukera erabili behar da.
    • Adibideak:
      • rm * , uneko katalogoko fitxategiak ezabatuko dira, baimenak eskatuz
      • rm -rf ariketa* , ariketa hitzarekin hasten diren uneko katalogoko fitxategiak eta karpetak ezabatuko dira, baimenak eskatu arik.

Bash programazioa II

ESPRESIO ERREGULARRAK
Hain ezaguna den *.txt adierazpena espresio erregularratzat jotzen dugu, hau da * karaktereak esanahia berezia du esaldi hauetan.
Adibidez, exekutatzen badugu
  • ls -l *.txt txt hizkiekin bukatzen diren fitxategiak zerrendatuko dira
  • ls -l fi*t fi hizkiekin hasi eta t-rekin bukatzen diren fitxategiak aterako dira
* karaktere horretaz gain , badaude beste espresio erregular batzuk. Hona hemen sarri erabiltzen diren zenbait.
? edozein karaktere ordezkatzen du . et?e izan daiteke etxe, etze,etse. Adibidea
  • ls -al urtea200? : urtea200a ,urtea2003 urtea200d urtea200x ,...izango da emaizta, baina ez urtea20010,...
Parentesiak [] karaktere multzo bat ordezkatzen du. Ikus dezagun adibide batekin, e[t,n]e honekin bi hitz ordezkatzen ditugu : ene , ete . ASCII karaktere multzo bat adieraz daiteke: [a-z] edozein letra ordezkatzen du; are gehiago [a-zA-Z] letra xeheak eta larriak ordezkatzeko; edo [a-zA-Z0-9] etab.
Adibidea:
  • ls -al ariketa[0-9] : ariketa0, ariketa1, ariketa2,...ariketa9 bistarauko dira, existituz gero
Hau da, [..] barruan dauden karaktereetaik BAT bakarrik hartu
Kontuan izan komandoek , ls, cp,... etab, ez dituztela espresio erregularrak ikusten, baizik eta euren emaitza. Ikus dezagun hurrengo adibidea:
  • cp fitxategi[0-4] /Home/jon
Lehenengo, espresio erregularra garatuko zen : fitxategi0 fitxategi1 fitxategi2 fitxategi3 fitxategi4 .Oduan, multzo honetako bat edo geihago existituz gero kopiatko dira adierazitako katalogora, baina bat ere ez balego emaizta ( errore mezua) izango litzateke eta honako zerbait ikusiko genuke
cp: fitxategi[0-4] : No such file or direktory.
hau da, hartzen du fitxategi[0-4] fitxategiaren izena eta, jakina ez dago laneko katalogoan.

! karaketerak "EZ HARTZEKO" balio du. Ikus dezagun adibidea:
  • ls -al [!0-9]fitxategiak
digitoz hasten ez diren fitxategiak zerrendatzeko
Informazioa geihago , hemen

Bash programazioa I

SARRERA

Shell programa bat da, eta teklatuan sartzen diren karaktereak atzematea ditu, Windows-en monduan command.com programak egin zuen antzera. Karektereek Sistema Eragileak (SE) ulertzen dituen aginduak osatzen badituzte , agindu horiek fitxategi batean jaso ahal dira gero egikaritzeko.Fitxategi horiek script-tzat ezagunak dira. Garai batean hori zen SE-ra aginduak pasatzeko bide bakarra, egun GUI ( Graphical User Interfaces) , hau da era grafikoak, badauzkagu gauza bera egiteko.

Linux sistemak shell batzuk ditu : bash, tcsh, zsh,... Programa hauekin script-ak sortzen dira ; hurrengo adibideetarako Bourne Again Steve Bournek -bash- Shell erabiliko dugu.

Esan den moduan, ariketak kontsolan ( CLI : Comman Line Interfaces ) probatuko ditugu .Labur bilduz, script bat egiteko behar duguna da: textu editore bat, eta shell bat. Editorea Linux-ek duen vi, nano, gedit, ..., eta shell-erako bash delakoa.

Hasteko , begiratuko dugu erabiltzen dugun shell zein den; horretarako ireki terminal bat eta idatzi:

echo $SHELL.

Emaitza /bin/bash izango da; hau da bash programa /bin karpeta dagoena. Bertsio batzuk daude, jakiteko zein dira daukaguna, idatzi

echo $BASH_VERSION

Gure makinan erabili ahal diren beste shell-ak zeintzuk diren ; egikaritu

cat /etc/shells

(Ez baduzu bash erabiltzen, lehentsia egiteko idatzi chsh -s /bin/bash , hau da ChangeShell (chsh ) bash-era) .

Honaino ailegaturik, alde batetik ,esan dezakegu prest garela script-ak egiteko, bestetik erabili ditugun aginduetan hitzak era ezberdinetan idatzita daudela; adibidean echo $BASH , echo agindu bat da, eta $BASH ingure-aldagaia , era horretan adierazten dira : aginduak letra xehez ,aldagaik larriaz

Script-lengoaia hauek exekutatzeko ez dira konpilatu behar, interpretatzeko modukoak direlako, hau da, aginduak banan-banan probatu ahal ditugu eta aldaketaren bat eginez gero zuzenean ere konproba daitezke.Dena dela, goi mailako lengoia batek dituen agindu egiturak ditu bash programak: aldagaiak, balditzazko egiturak, errepikakorrak etab.

2008/02/03

Fitxategi Bereziak

Linux sistema eragilerako irakurri edo idatzi nahi duen gailuak fitxatzegiak dira , beraz, diska gogorrean erabiltzen ditugun fitxategiak edo direktorioak , A unitatea, pantaila, teklatua.. fitxategitzak hartzen ditu SEak.
Fitxategiak era ezbedinetakoetan sailka daitezke :
  • informazioa bloketetan maneiatzen dituztenak (b)
  • Informazioa karekteretan maneiatzen dituztenak (c)
  • katalogoak adierazteko erabiltzen direnak (d)
  • estekak ( link) adieraztekoak (l)
  • fitxategi arruntak (f)
  • ..
  • ..
Hizki horiek (c ,b ..)erabil daitezke find komandoarekin -type erabiliz ; edo ls egikaratzean errendatetan aterazten den lehengo karaktera
Beste maila batean, hau da adierazteko era kontutan hartuta, aipagarria dira hurrengo hauek: / ; . ; .. ; ~
  1. / erro katalogoa adierazteko erabiltzen da. Era logikoan , beste guztian horretatik daude zintzilik.
  2. . puntu horrekin gauden katalogoa adierazten dugu. Beste alde batetik , katalogo horrek izena izango du
  3. .. bi puntu hauek goiko katalogoa adierazten dute.
  4. ~ , erabiltzailearen laneko katalogoa adierazten du
Teklatuak eta pantailak (kontsola) aipamen berezia merezi dute. Bi horiek informazioa sartzeko eta bistaratzeko ; fitxategi standarrak dira stdin (standar input ) eta stdout ( standar output) hurrenez hurren. Horrek esan nahi du , adibidez, ls komandoaren emaitza, besterik esan ezean, zuzenean kontsolara bideratzen dela , lehentsitako irteera delako. Berdin egin ahal dugu teklatuarekin,adibidez, komandoren bat informazioa berez teklatutik hartu beharrean beste fitxategi batetik irakur dezake.
Bestalde, komandoren bat egikaratzen denean akatasak, hau da ezin du burutu, gerta litezke; kasu horretan sistemak informatzen digu horretaz, horretarako beste fitxategi berezi bat erabiltzen du stderr Beraz, hiru fitxategi standarrak dauzkagu stdin, stdout eta stderr . Fitxategi horiek "izendatzeko" zenbakiak ( deskribatzaileak ) erabiltzen dira , 0,1,2 hurrunez hurren .
Aurreragoan erabiliko ditugu informazioa berbidaltzeko


find Komandoa

KATALOGOEN KUDEAKETA
Gure makinako fitxategi sisteman fitxategiren bat aurkitzeko Gnome edota KDE lehio kudeatzaileek dituzten tresna grafikoak erabil ditzakegu, edo treminal batetik find komandoa erabiliz. Komando guztiekin gertatzen den legez , horrek ere aukera anitz ditu; kontsolan find --help idazten aterako zaizkigu.Betiko moduan aukerak gidoi (-) atzean adierazten dira eta bat baino gehiago idatz ditzakegu. Komandoak duen sintaxia hau da: find [katalogoa] [-aukera].... . [katalodoa] ez bada adierazten uneko karpetan egingo du bilaketa. Erailera ohikoena hurrengo aukera hauekin izan daiteke
  • find /home/koldo -name fitx1 : "Koldo" karpetan bilatuko du fitx1 izeneko fitxategia
  • find -size +120k : une katalogoan 120k edo gehiago dituen fitxategiak bilatzeko , uneko katalogoan
  • find / -size -120k : erro katalogoan 120k edo gutxiago dituen fitxategiak bilatzeko .
  • find /var/www/web1 -atime 7 : /var/www/web1 katalogoan azken 7 egunetan irakurri izan diren fitxategiak bilatzeko
  • find /usr/sbin -mtime 7 : /usr/sbin katalogoan azken 7 egunetan aldaketa jaso diren fitxategiak bilatzeko
  • find /usr/sbin -user jon : jon erabiltzailek adierazitako path-ean (/usr/sbin) diteun fixategiak
  • find /usr/sbin -newer /home/koldo/fitx1 : adierazitako path-ean (/usr/sbin) fitx1 izeneko fitxategia ( koldo karpetan dago)baino berriago diren fitxategiak
  • find /usr/sbin -perm 751 , adierazitako baimenak (751) dituen fitxategiak
Beraz ezaugarri batzuk betetzen dituzten fitxategiak bilatu ahal dira find komandorekin; non emaitza zerrenda batean ematen digun.Horretaz gain, komandoari zenbait ekintza adieraz daitezke ein ditzan.Hona hemen adibide batzuk:
  • find /usr/sbin -user jon -ls : hau da find komandoaren emaitza ls ekintza aplikatuz fitxategien ezaugarri guztiekin bistaratuko dira
  • find /usr/sbin -user jon -print , horrrekin fitxategien bide absolutua ere erakutsiko da
Baina badago gehiago: ateratako zerrenda beste komando batzuk aplika diezaizkiogu , ondorengo era honetan
find [katalogoa] [aukera] -exec komandoa {}\;
Adibidea:
find /usr/sbin -user jon -exec rm {} \; kasu horretan rm komandoa egikarituko zen , hau da, bilatutako fitxategiak
ezabatuko dira .Kontuz rm erabiltzean!!!
Beste adibide bat :
find / -name *.sh -size -10k -user jon -ls
erro (/) katalogoan egingo du bilaketa, ( *.sh) sh luzapena duten fitxategiak , edukia 10 k baino gutxiagokoak, eta jon da bere egilea; zerrenda era zabalagoan (-ls) aterako da

2008/02/02

ls Komandoa

KATALOGOEN KUDEAKETA
Gaur egun Linux sitema kudeatzeko era grafikoan egin daiteke, horretarako tresna ugari baitago. Dena dela, sarritan ez gaude egoera horretan, pentsa dezagun urrunetik zerbitzaria kudeatzen ari garela ssh eraren bitartez. Halokoetan ezinbestekoak dira komandoak, terminal batean egikaritzen direnak
Hasteko , behar bada ls komandoa da franko erabiltzen dena . Bere erabilera osoa ezagutzeko -- help menura jo ezazu, hau da idatzi ls --help , dituen aukera guztiak erakutsiko dizkizu. Laguntzan ikus daitekeenez aukerak gidoiaren atzean adierazten dira. Beharren arabera erabiliko ditugu aukerak, besteak beste hurrengo hauek
  • ls -a : horrela fitxategi guztiak , sarrerak, erakutsiko dira ; baita puntuz (.) hasten direnak ere
  • ls -l : era zabalean , berezitasun guztiekin
  • ls -r : alderantziko ordenetan ateratzeko
  • ls -s : fitxategiaren tamaina arakusteko
  • ls -R : era errekutsiboan azpikatalogoetan dauden fitxategiak erakusteko
Komando batean aukera bat baino gehiago adierazi ditzakegu , adibede gisa asko erabiltzen den hau : ls -al



Free Image Hosting at www.ImageShack.us

2008/02/01

Fitxategien baimenak

Ubuntu, erabiltzaile anitzeko sistema denez erabiltzaileen fitxategiak babestu behar dira; inork berea ez direnak ezabatu edo aldatu ez ditzan . Horretarako Ubuntuk, beste linux ditroek bezala, hiru baimen mota erabiltzen ditu:Irakurtzekoa(r:read), Idaztekoa ( w: write) eta Egikaratzekoa ( x: execut). Beraz esaten bada fitx.txt fitxategiak (r,w,x) baimenak baditula, esan nahi du irakurri, aldatu eta egikaratu ahal dugula
Baimenak zenbaki baten bitartez adieraz daitezke.Demagun, fitx.txt fitxategiari irakurtzeko baimena bakarrik esleitu hahi diogula. Egoera hori 100 zenbakiarekin adieraz daiteke, hau da 1 zenbakiak baimena duela adierazten du eta 0 ez duela. Zenbaki hori era bitarrean interpretatu behar dugu,beraz 100 ~ 6; horrela izanik 8 baimen mota ezberdinak adiraz daitezke, hau da : 0,1,2,3,4,5,6,7 zenbakiekin 8 konbinazioei dagozkionak:

BaimenakZenbakiaDesbribapena
0000Irakuri:Ez Aldatu:Ez Exekutatu:Ez
0011Irakuri:Ez Aldatu:Ez Exekutatu:Bai
0102Irakuri:Ez Aldatu:Bai Exekutatu:Ez
0113Irakuri:Ez Aldatu:Ez Exekutatu:Ez
1004Irakuri:Bai Aldatu:Ez Exekutatu:Ez
1015Irakuri:Bai Aldatu:Ez Exekutatu:Bai
1106Irakuri:Bai Aldatu:Bai Exekutatu:Ez
1117Irakuri:Bai Aldatu:Bai Exekutatu:Bai

Bestalde, erabiltzaile guztiak taldeka batzen dira, beraz taldeari baimenak ere esleitu behar zaizkio, aurreko prozedurarekin, hau da fitx.txt izeneko fitxategiak 7,6 baimenak baditu esan nahi du fitxategiaren egileak hiru baimenak dituela, eta egilearen taldekoek irakurri eta aldatu dezaketela.
Eta gainontzeko erabiltzaileek? Horiek ere baimen mota berdinak izan ahal dituzte. Guzti horren ondorioz ziurta daiteke fitxategi baten baimenak hiru motakoak direla ( r,w,x) eta hiru mailetan esleiturik: egileari, taldeari, eta beste guztiei ; hau da , demagun ikusten dugula hurrengo hau. : 754 fitxategia.sh , egileak (7) irakurri ,aldatu eta exakutatu ahal du, taldeak (5) irakurri eta exekutatu baino ez, eta besteek (4) irakurri bakarrik.
Aurreko adibidea era zabalean adierazita : rwxr-xr-- fitxategia.sh izango litzakete. Probatzeko erabili ls komandoa kontsola batean: ireki terminal eta idatzi : ls -al , zauden katalogo fitxategien zerrenda bistarako dira euren baimenekin ezkerrean jarrita