🖋️
SISTEMES OPERATIUS EN XARXA
  • Presentació
  • UF1. Sistemes operatius propietaris en xarxa
    • Introducció als sistemes operatius en xarxa
      • Windows Server
      • Particions
      • Sistemes de fitxers
      • Instal·lació Windows Server
    • Supervisió en Windows Server
    • Gestió de dominis. Active Directory
      • Introducció als dominis
      • Relacions de confiança
      • Instal·lació d'un controlador de domini en Active Directory
      • Usuaris, grups i unitats organitzatives
      • Perfils d'usuaris
      • Directives de grup
    • Activitats
      • Task 1. Installation and monitoring of Windows Server 2016
      • Task 2. Install Active Directory
      • Task 3. Users, groups and OUs
      • Task 4. Roaming profiles and Group Policy Objects
    • Qüestionari
  • UF2. Sistemes operatius lliures en xarxa
    • Introducció als sistemes operatius Linux
      • Instal·lació Linux Server
    • Administració i supervisió
      • Gestió d'arxius
      • Gestió d'usuaris i grups
      • Instal·lació de paquets i actualització
      • Monitorització
      • Administració web
      • Scripts
      • Automatització de tasques
    • Gestió de dominis
      • Introducció als dominis en Linux
      • Instal·lació d'un controlador de domini LDAP
      • Gestió LDAP amb interfície gràfica
      • Autenticació LDAP
      • Perfils mòbils
      • Gestió avançada de LDAP
    • Qüestionari
    • Activitats
      • Task 1. Installation and monitoring of Ubuntu Server
      • Task 2. Users and groups administration
      • Task 3. Monitoring and task automation
      • Task 4. Installation and administration of a Linux domain
  • UF3. Compartició de recursos i seguretat
    • Introducció
      • Compartició de carpetes
    • Compartir recursos en xarxa i seguretat en sistemes de propietat
      • Compartir arxius i carpetes en Windows
      • Compartir impressores en Windows
    • Compartir recursos en xarxa i seguretat en sistemes de lliures
      • Compartir arxius i carpetes amb NFS
      • Compartir impressores amb CUPS
    • Qüestionari
    • Activitats
      • Activitat 1. Compartir recursos i seguretat en Windows
      • Activitat 2. Compartir carpetes en GNU/Linux amb NFS
      • Activitat 3. Compartir impressores en GNU/Linux amb CUPS
  • UF4. Integració de sistemes operatius
    • Introducció
    • Compartir recursos en escenaris heterogenis
      • Accedir a recursos compartits en Windows des de Linux
      • Compartir arxius i carpetes amb SAMBA
    • Gestió de dominis en escenaris heterogenis
      • Unir un client Linux a un domini Windows
      • Samba 4 com a controlador de domini (DC)
      • Administrar el directori actiu de Samba 4
      • Perfils mòbils en un domini Samba AD
      • Zentyal com a controlador de domini
    • Qüestionari
    • Activitats
      • Activitat 1. Compartir recursos amb Windows i accedir des de Linux
      • Activitat 2. Compartir recursos amb Samba
      • Activitat 3. Unir un client Linux a un domini Windows
      • Activitat 4. Samba 4 com a controlador primari de domini (AD DC)
    • Activitat 4. Zentyal com a controlador primari de domini
Powered by GitBook
On this page
  • Introducció
  • Creació de l'script
  • Assignació de permisos
  • Execució de l'script
  • Variables
  • Paràmetres
  • Entrada i sortida de dades
  • E/S per consola
  • Redirecció de l'E/S
  • Comentes
  • Comandes interessants
  • Estructures de control
  • Condicions
  • Exemples d'scripts
  • Trobar els 10 directoris més grans donat un path
  1. UF2. Sistemes operatius lliures en xarxa
  2. Administració i supervisió

Scripts

Introducció

Un guió o script és un arxiu de text executable que conté una sèrie de comandes. Quan s'executa l'script, s'executen les comandes que conté.

Es pot crear i editar un script amb qualsevol editor de text pla (nano, gedit...).

Creació de l'script

El més habitual és posar l'extensió .sh als scripts de Linux:

nano crea_directoris.sh

En la primera línia cal indicar amb quin intèrpret de comandes s'han d'executar les comandes que conté (#!/bin/bash).

A continuació es posen les comandes en el mateix ordre en què s'han d'executar:

#!/bin/bash
#Comentari explicatiu de què fa l'script
mkdir /home/usuari/SOX
mkdir /home/usuari/SOX/UF1
mkdir /home/usuari/SOX/UF1/Apunts
mkdir /home/usuari/SOX/UF1/Practiques

Tota línia que comenci amb coixinet # es tracta d'un comentari i no serà llegida pel intèrpret de comandes (excepte la primera línia que estableix el shell pel que ha sigut dissenyat el script).

Assignació de permisos

Un cop creat el script cal modificar els permisos de l'arxiu per permetre que s'executi:

Li podem donar permisos d'execució amb la comanda:

chmod a+x crea_directoris.sh

Un cop assignats els permisos, si fem la comanda ls veurem com el color del fitxer ha canviat indicant que és un fitxer executable i per tant es pot executar.

Execució de l'script

Linux busca els programes executables en els directoris que estan definits a la variable de sistema $PATH.

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Si el nostre script es troba en una d'aquestes ubicacions podrem executar-lo posant únicament el nom del script.

Si no es troba en aquestes ubicacions haurem d'indicar la ruta sencera on es troba el fitxer executable o bé si està al mateix directori cal posar ./:

./crea_directoris.sh

També es pot executar amb la comanda bash. En aquest cas no caldria canviar els permisos ni posar ./ al davant si estem en el mateix directori:

bash crea_directoris.sh

Per comprovar que l'script funció correctament, es pot executar l'script pas a pas amb el paràmetre -x.

bash -x crea_directoris.sh

Variables

Com en qualsevol llenguatge de programació, les variables s'utilitzen per poder guardar informació i a partir d'aquesta poder prendre decisions o realitzar operacions.

És important posar un nom a la variables que descrigui el seu ús. El seu nom no pot ser cap de les paraules reservades (exemple: echo).

Hi ha dues formes diferents d'utilitzar-la depenent de si volem assignar-li un valor o utilitzar-la (realitzar una operació). A continuació veurem un exemple en el qual se li assigna a la variable nombre un valor i després es mostra per pantalla.

#!/bin/bash
numero=5
echo "el valor de la variable és "$numero

Com es pot veure en l'exemple quan es vol accedir a la valor de la variable s'utilitza el símbol $.

Paràmetres

Sovint cal que els nostres scripts rebin paràmetres des de la línia d'ordres per fer-los més versàtils. Aquest és el cas de la comanda ls en que li podem passar el paràmetre -l per modificar la sortida de dades ls -l

Els paràmetres es poden usar dins de l'script com qualsevol altra variable de Shell. Els paràmetres dins el shell script són accessibles utilitzant les variables: $0 és el nom de el programa, $1 és el primer paràmetre, $2, és el segon paràmetre, etc. A més, s'utilitza la variable $# que estableix el nombre de paràmetres que ha rebut el shell. A continuació veurem un exemple:

#!/bin/bash
echo "El nom del programa és "$0
echo "El primer paràmetre rebut és "$1
echo "El segon paràmetre rebut és "$2
echo "..."
echo "En total s'han rebut "$#" paràmetres"

Si l'executem:

bash param_expl.sh 3 5

Obtenim la sortida:

El nom del programa és param_expl.sh El primer paràmetre rebut és 3 El segon paràmetre rebut és 5 ... En total s'han rebut 2 paràmetres

Paràmetre

Descripció

Valor rebut

$0

Nom del programa

param_expl.sh

$1

Primer paràmetre

3

$2

Segon paràmetre

5

$#

Números de paràmetres

2

$@

Valors dels paràmetres passats (valors separats: "1" "2" ...)

3 5

$*

Valors dels paràmetres passats (valors en bloc: "1 2"...)

3 5

Entrada i sortida de dades

E/S per consola

Redirecció de l'E/S

Comentes

En els scripts s’utilitzen tres tipus de cometes:

Teclat

Significat

Acció

Cometes simples (' ')

Estan a sota l'interrogant ?

Literal

S'interpreta de forma literal, sense substituir camp variable.

Cometes dobles (" ")

Shift + Tecla 2

Substitució de variables

Es substitueixen les variables.

Cometes invertides (` `)

Tecla accent obert + Espai

Execució de comanda o expressió

S'executen les línies de comandes o expressions.

Exemples:

Comanda

Resultat

Cometes simples (' ')

echo 'Hola $NOM'

Hola $NOM

Cometes dobles (" ")

echo "Hola $NOM"

Hola Jordi

Cometes invertides (` `)

echo 'Avui és el dia' `date +%D`

Avui és el dia 25/04/2020

Exemple:

#!/bin/bash
#Script amb cometes

#Demanem per pantalla el nom i el guardem a la variable NOM
read –p 'Escriu el teu nom: ' NOM

echo 'Hola $NOM'
echo "Hola $NOM"
echo `Hola $NOM`
$ ./exemple.sh
Escriu el teu nom: Jordi
Hola $NOM
Hola Jordi
./exemple.sh: line 8: Hola: no s'ha trobat l'ordre
  • La primera línia echo 'Hola $NOM' amb cometes simples no s'ha substituït el valor de la variable.

  • La segona línia echo "Hola $NOM" amb cometes dobles s'ha substituït la variable NOM per Jordi.

  • La tercera línia echo `Hola $NOM` amb cometes invertides dona un error al executar-se perquè s'intenta executar una comanda però Hola no és una comanda.

Comandes interessants

Estructures de control

Condicions

Exemples d'scripts

Trobar els 10 directoris més grans donat un path

$ cat grans
#!/bin/bash
# Llista els 10 directoris que ocupen més espai donat un path

 du $1 | sort -n | tail
PreviousAdministració webNextAutomatització de tasques

Last updated 4 years ago