SlideShare a Scribd company logo
1 of 20
Download to read offline
GUIONS PER
LINUX
SHELL BASH
mariona.batalla.taylor@gmail.com
ASIX M6 - UF2 - NF3
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
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.
GUIONS PER
LINUX
SHELL BASH
PER DEFECTE:
· entrada estàndard (standard input) - TECLAT - 0
· sortida estàndard (standard output) - PANTALLA - 1
· sortida estàndard d’errors (standard error) - PANTALLA - 2
REDIRECCIONAMENT
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
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).
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
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
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.
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 ./
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
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]’*
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
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
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
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
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
GUIONS PER
LINUX
SHELL BASH
CHEATSHEET
(XULETA)
GUIONS PER
LINUX
SHELL BASH CHEATSHEET
(XULETA)
GUIONS PER
LINUX
SHELL BASH
mariona.batalla.taylor@gmail.com
ASIX M6 - UF2 - NF3

More Related Content

What's hot

Executar scripts d'inici i crear un altre usuari amb AirOs d'Ubiquiti
Executar scripts d'inici i crear un altre usuari amb AirOs d'UbiquitiExecutar scripts d'inici i crear un altre usuari amb AirOs d'Ubiquiti
Executar scripts d'inici i crear un altre usuari amb AirOs d'UbiquitiJordi Clopés Esteban
 
Presentacio alfresco
Presentacio alfrescoPresentacio alfresco
Presentacio alfrescomiquel011
 
Instal·lació OpenKm
Instal·lació OpenKmInstal·lació OpenKm
Instal·lació OpenKmaroawv
 
Servei samba (Linux-Windows)
Servei samba (Linux-Windows)Servei samba (Linux-Windows)
Servei samba (Linux-Windows)Yeni ChT
 
Introducció a Linux (2) - informació del sistema
Introducció a Linux (2) - informació del sistemaIntroducció a Linux (2) - informació del sistema
Introducció a Linux (2) - informació del sistemaJordi Juan Pérez kukat
 
Hosting wordpress
Hosting wordpressHosting wordpress
Hosting wordpressMario Pozo
 
Introducció a Linux (1) - instal·lació d' OpenSUSE 11.4
Introducció a Linux (1) - instal·lació d' OpenSUSE 11.4Introducció a Linux (1) - instal·lació d' OpenSUSE 11.4
Introducció a Linux (1) - instal·lació d' OpenSUSE 11.4Jordi Juan Pérez kukat
 
DRBL amb imatges
DRBL amb imatgesDRBL amb imatges
DRBL amb imatgesAvel·lí
 
Presentació ubuntu
Presentació ubuntuPresentació ubuntu
Presentació ubuntutrebal50
 
Creacio de la maquina virtual. Instal.lació de Windows'XP
Creacio de la maquina virtual. Instal.lació de Windows'XPCreacio de la maquina virtual. Instal.lació de Windows'XP
Creacio de la maquina virtual. Instal.lació de Windows'XPHerminio Manzano Bojadós
 
P2 openkm bryan-alfonso
P2 openkm bryan-alfonsoP2 openkm bryan-alfonso
P2 openkm bryan-alfonsoBRAYANESTIVEN7
 
Duplicity
DuplicityDuplicity
Duplicitycfgmi
 

What's hot (20)

Nf3
Nf3Nf3
Nf3
 
Executar scripts d'inici i crear un altre usuari amb AirOs d'Ubiquiti
Executar scripts d'inici i crear un altre usuari amb AirOs d'UbiquitiExecutar scripts d'inici i crear un altre usuari amb AirOs d'Ubiquiti
Executar scripts d'inici i crear un altre usuari amb AirOs d'Ubiquiti
 
Pt2 alex
Pt2 alexPt2 alex
Pt2 alex
 
Presentacio alfresco
Presentacio alfrescoPresentacio alfresco
Presentacio alfresco
 
Instal·lació OpenKm
Instal·lació OpenKmInstal·lació OpenKm
Instal·lació OpenKm
 
Xuleta Proxy Squid
Xuleta Proxy SquidXuleta Proxy Squid
Xuleta Proxy Squid
 
Servei samba (Linux-Windows)
Servei samba (Linux-Windows)Servei samba (Linux-Windows)
Servei samba (Linux-Windows)
 
Introducció a Linux (2) - informació del sistema
Introducció a Linux (2) - informació del sistemaIntroducció a Linux (2) - informació del sistema
Introducció a Linux (2) - informació del sistema
 
Backup
BackupBackup
Backup
 
Hosting wordpress
Hosting wordpressHosting wordpress
Hosting wordpress
 
Proxy Squid amb Debian Squeeze
Proxy Squid amb Debian SqueezeProxy Squid amb Debian Squeeze
Proxy Squid amb Debian Squeeze
 
Introducció a Linux (1) - instal·lació d' OpenSUSE 11.4
Introducció a Linux (1) - instal·lació d' OpenSUSE 11.4Introducció a Linux (1) - instal·lació d' OpenSUSE 11.4
Introducció a Linux (1) - instal·lació d' OpenSUSE 11.4
 
Taller Colinux
Taller ColinuxTaller Colinux
Taller Colinux
 
DRBL amb imatges
DRBL amb imatgesDRBL amb imatges
DRBL amb imatges
 
Presentació ubuntu
Presentació ubuntuPresentació ubuntu
Presentació ubuntu
 
Presentació de Samba
Presentació de SambaPresentació de Samba
Presentació de Samba
 
E 10 figueroa
E 10 figueroaE 10 figueroa
E 10 figueroa
 
Creacio de la maquina virtual. Instal.lació de Windows'XP
Creacio de la maquina virtual. Instal.lació de Windows'XPCreacio de la maquina virtual. Instal.lació de Windows'XP
Creacio de la maquina virtual. Instal.lació de Windows'XP
 
P2 openkm bryan-alfonso
P2 openkm bryan-alfonsoP2 openkm bryan-alfonso
P2 openkm bryan-alfonso
 
Duplicity
DuplicityDuplicity
Duplicity
 

Similar to Shell Bash - Bàsic

M02 – Sistemes operatius lliures.pptx
M02 – Sistemes operatius lliures.pptxM02 – Sistemes operatius lliures.pptx
M02 – Sistemes operatius lliures.pptxMrBoby1
 
Presentacio Ubuntu
Presentacio UbuntuPresentacio Ubuntu
Presentacio Ubuntuavg.aux
 
Activitat Ubuntu
Activitat UbuntuActivitat Ubuntu
Activitat Ubuntuavg.aux
 
Us basic lliurex
Us basic lliurexUs basic lliurex
Us basic lliurexjordijimi
 
Presentacio alfresco
Presentacio alfrescoPresentacio alfresco
Presentacio alfrescomiquel011
 
Com estructurar un projecte web (ca)
Com estructurar un projecte web (ca)Com estructurar un projecte web (ca)
Com estructurar un projecte web (ca)Carlos Campderrós
 
Programació - Pràctica 2 - Lidia Bria
Programació - Pràctica 2 - Lidia BriaProgramació - Pràctica 2 - Lidia Bria
Programació - Pràctica 2 - Lidia BriaLidia Bria
 

Similar to Shell Bash - Bàsic (11)

M02 – Sistemes operatius lliures.pptx
M02 – Sistemes operatius lliures.pptxM02 – Sistemes operatius lliures.pptx
M02 – Sistemes operatius lliures.pptx
 
Presentacio Ubuntu
Presentacio UbuntuPresentacio Ubuntu
Presentacio Ubuntu
 
Configuracio servei dns_linux
Configuracio servei dns_linuxConfiguracio servei dns_linux
Configuracio servei dns_linux
 
Python
PythonPython
Python
 
Activitat Ubuntu
Activitat UbuntuActivitat Ubuntu
Activitat Ubuntu
 
Us basic lliurex
Us basic lliurexUs basic lliurex
Us basic lliurex
 
Presentacio alfresco
Presentacio alfrescoPresentacio alfresco
Presentacio alfresco
 
Ud1
Ud1Ud1
Ud1
 
Lliurex
LliurexLliurex
Lliurex
 
Com estructurar un projecte web (ca)
Com estructurar un projecte web (ca)Com estructurar un projecte web (ca)
Com estructurar un projecte web (ca)
 
Programació - Pràctica 2 - Lidia Bria
Programació - Pràctica 2 - Lidia BriaProgramació - Pràctica 2 - Lidia Bria
Programació - Pràctica 2 - Lidia Bria
 

Shell Bash - Bàsic

  • 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.
  • 4. GUIONS PER LINUX SHELL BASH PER DEFECTE: · entrada estàndard (standard input) - TECLAT - 0 · sortida estàndard (standard output) - PANTALLA - 1 · sortida estàndard d’errors (standard error) - PANTALLA - 2 REDIRECCIONAMENT
  • 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
  • 19. GUIONS PER LINUX SHELL BASH CHEATSHEET (XULETA)