2. GUIONS PER
LINUX
SHELL BASH
ARGUMENTS
· un argument de la línia de comandes és un valor que li passem
al programa al moment de la seva crida.
Per poder accedir a tots els paràmetres, s’utilitzen els paràmetres
posicionals, on cada paràmetre ve definit per la seva posició:
SINTAXI:
ordre argument
tants com se’n necessitin
$0 $1 $2 $3
1R ARGUMENT 2N ARGUMENT (nom del fitxer)
>
>
tail +10 /var/log/messages
./args.sh blau verd vermell
EXEMPLE:
EXEMPLE:
la variable $# contindrà el nombre de paràmetres
3. GUIONS PER
LINUX
SHELL BASH
EXPRESSIONS
REGULARS
Caràcter/s A què equival? Exemple Explicació
? qualsevol caràcter simple ls ??? llista tots els fitxers que tinguin 3 lletres
* zero o més caràcters ls c*
llista els noms de fitxers i directoris que
comencin per c
ls r*e llista els que comencin per r i acabin en e
ls *.sh
llista tots els arxius amb extensió .sh
(que acabin amb .sh)
tracta el següent caràcter com
a caràcter normal (i no com a
caràcter especial)
[] qualsevol caràcter dins els [] ls [yz]* que comencin per la lletra y o z
[!]
qualsevol caràcter que no sigui
dins els []
[-] qualsevol caràcter del rang ls [a-d]*
que comencin per alguna lletra compres entre
la a i la d
· una expressió regular és una representació d’un text genèric a cercar.
5. GUIONS PER
LINUX
SHELL BASH
REDIRECCIONAMENT (II)
EXEMPLES
llistar tots els arxius amb extensió .jpg i volcar-ho a un arxiu:
i cada cop que volquem sobre aquest arxiu, se sobreescriurà.
Perquè això no passi, i es vagi afegint el contingut hem de fer:
d’aquesta manera a l’arxiu arxiu.txt hi haurà primer el llistat dels arxius
jpg del directori actual seguits dels arxius png del directori actual.
>
ls *.jpg >arxiu.txt
ls *.png >>arxiu.txt
1
6. GUIONS PER
LINUX
SHELL BASH
REDIRECCIONAMENT (III)
EXEMPLES
llistar tots els arxius amb extensió .mp3:
veiem que no n’hi ha cap, per tant surt error per la sortida estàndard
d’errors (la pantalla, per defecte).
Ara volem que redireccioni aquest error (No such file or directory) a un fitxer
error.txt:
ls *.mp3
ls *.mp3 2>error.txt
2
amb el cat mostrem el contingut
del fitxer de text per pantalla.
contingut del fitxer de text
(l’error que havia donat).
7. GUIONS PER
LINUX
SHELL BASH
PIPES
· permeten enllaçar la sortida d’una ordre com a entrada d’una altra.
La sortida de cat (mostrar el contingut) s’envia d’entrada de sort
(ordenar) i la sortida de sort s’envia d’entrada a
more (pausa quan s’omple la pantalla).
PER TANT: Mostra les línies del fitxer /etc/passwd, ordenades i fent una
pausa cada cop que s’omple la pantalla.
SINTAXI:
ordre1 | ordre2
EXEMPLE
cat /etc/passwd | sort | more
8. GUIONS PER
LINUX
SHELL BASH
existeixen tres tipus de permisos:
per modificar els permisos farem servir la comanda chmod:
(per poder executar un script necessitarem permís d’execució!)
SINTAXI:
chmod u+x nom_fitxer
PERMISOS
DE FITXERS I DIRECTORIS
r: read (permís de lectura)
w: write (permís d’escriptura)
x: execute (permís d’execució)
+: afegim
x: permís d’execució
u:usuari
9. GUIONS PER
LINUX
SHELL BASH
GUIÓ DE SHELL
PRIMER GUIÓ: (holamon.sh)
#!/bin/bash
# holamon.sh: El meu primer guió de shell
echo “Hola, món!”
echo “Sóc $USER”
s’utilitza, per convenció l’extensió
.sh
és un comentari
mostra text per pantalla
$USER és el nom de l’usuari
que executa el guió
indica al sistema que el programa bash,
ubicat al directori /bin ha d’executar la
resta d’instruccions.
10. GUIONS PER
LINUX
SHELL BASH
GUIÓ DE SHELL (II)
holamon.sh
chmod u+x holamon.sh
./holamon.sh
volem executar-lo, per tant hem de tenir permís d’execució:
per executar-lo ho, utilitzarem ./
11. GUIONS PER
LINUX
SHELL BASH
echo: mostrar dades a la pantalla del terminal
read: llegir dades del teclat
Volem que l’usuari ens entri el seu nom per teclat i es mostri
una salutació amb el nom entrat.
fitxer saludar.sh: canviem permisos i executem:
EXEMPLE:
INTERACCIÓ
AMB L’USUARI
12. GUIONS PER
LINUX
SHELL BASH
GREP
CERCA UN TEXT
Cerca l’expressió regular passada com a paràmetre
EXEMPLES
SINTAXI:
grep [expressió regular] [arxiu]
cercar línies dins el directori /etc/ que continguin fred seguit d’alguna cosa més:
cercar l’expressió Foo o Goo a tots els arxius del directori actual:
cercar totes les línies de tots els arxius del directori actual amb tres xifres seguides:
grep fred* /etc/
grep ‘[FG]oo’*
grep ‘[0-9] [0-9] [0-9]’*
13. GUIONS PER
LINUX
SHELL BASH
SINTAXI:
cut [paràmetres] [arxiu]
CUT
EXTREU PART D’UN TEXT D’UN FITXER
EXEMPLES extreu la segona columna de caràcters de l’arxiu test:
extreu un rang de columnes de caràcters (de la 1 a la 3) de l’arxiu test:
extreu un rang de columnes de 8 caràcters des del principi de l’arxiu test:
cut -c2 test.txt
cut -c1-3 test.txt
cut -c-8 test.txt
14. GUIONS PER
LINUX
SHELL BASH
FIND
CERCA FITXERS/DIRECTORIS
BASATS EN UNA CONDICIÓ
SINTAXI:
find [opcions]
CONDICIONS:
BASAT EN EL NOM:
BASAT EN ELS PERMISOS:
EXEMPLES
EXEMPLES
troba els arxius de tipus php:
troba els arxius els permisos dels quals siguin 777 (777:tothom pot llegir, escriure, executar) :
find . -type f -name “*.php”
find . -type f -perm 0777 -print
15. GUIONS PER
LINUX
SHELL BASH
CONDICIONS:
BASAT EN LA DATA I EL TEMPS:
BASAT EN LA MIDA:
FIND (II)
CERCA FITXERS/DIRECTORIS
BASATS EN UNA CONDICIÓ
EXEMPLES
EXEMPLES
troba tots els arxius amb nom test al directori actual
i que hagin estat modificats els darrers 50 dies:
troba tots els arxius amb extensió log modificats en la darrera hora:
troba els arxius entre 50M i 100M del directori actual:
find . -name “test.*” -mtime 50
find . -name “*.log” -mmin 60
find . -size +05M -size -100M
16. GUIONS PER
LINUX
SHELL BASH
TAIL
MOSTRA LES ÚLTIMES LÍNIES D’UN ARXIU
PER LA SORTIDA ESTÀNDARD
EXEMPLES
SINTAXI:
tail [opcions] [arxiu/s]
mostra les darreres 10 línies de l’arxiu:
mostra les darreres 100 línies de l’arxiu:
tail /var/syslog
tail /var/syslog
17. GUIONS PER
LINUX
SHELL BASH
HEAD
LLEGEIX LES PRIMERES LÍNIES D’UN TEXT
I LES ESCRIU A LA SORTIDA ESTÀNDARD.
EXEMPLES
SINTAXI:
head [opcions] [arxiu/s]
mostra les primeres 10 línies de l’arxiu:
mostra les primeres 100 línies de l’arxiu:
head /var/syslog
head -n 100 /var/syslog