shell n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Shell PowerPoint Presentation
Download Presentation
Shell

Loading in 2 Seconds...

play fullscreen
1 / 28

Shell - PowerPoint PPT Presentation


  • 260 Views
  • Uploaded on

Shell. Equipe ID Bioinformatics Training Course June 2014. Shell. Le shell est le langage de commande standard du système UNIX Bourne shell Korn shell C-shell Bash-shell. Shell Scripts. $ more example.sh #!/bin/bash while true do cat somefile > /dev/null echo . done

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Shell' - blanca


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
shell
Shell

Equipe ID

Bioinformatics Training Course

June 2014

slide2

Shell

  • Le shell est le langage de commande standard du système UNIX
  • Bourne shell
  • Korn shell
  • C-shell
  • Bash-shell.
slide3

Shell Scripts

$ more example.sh

#!/bin/bash

while true

do

cat somefile > /dev/null

echo .

done

File example.sh must have executable rights

bash example.sh

./example.sh

shell1
Shell
  • Interprété
  • Vrai langage de programmtion : test, itérations, récursion, variables, environnement, alias, variables typées, opérateurs logiques, arithmétiques et binaires, variables locales, gestion des tâches, historique et édition des commandes
shell variables
Shell : variables
  • Identificateur

Une suite quelconque de :

- lettres minuscules ou majuscules

- chiffres

- _ (underscore)

- ne commençant pas par un chiffre

  • Valeur : toujours une chaine de caractères
  • Opérateur d’affectation : « = »
  • Evaluation d’une variable :

$variable

  • Affichage de la valeur d’une variable :

echo $variable

shell compl ments syntaxiques
Shell : compléments syntaxiques
  • Commentaire

# la fin de la ligne est ignorée

  • Les commandes doivent être séparées par des retours chariot ou des points virgules
  • Séparateur implicite du shell = caractère espace
shell redirection des entr es sorties
Shell : redirection des entrées-sorties
  • Entrée

commande > fichier  commande 1> fichier

Associe le fichier au descripteur 1 (implicitement)

commande 2> fichier # erreur redirigée vers fichier

commande >&2 # stdout associé à stderr

commande 2>&1 # stderr associé à stdout

  • Ex :

commande 2>/dev/null 1>&2

commande 1>/dev/null 2>&1

shell saisie
Shell: saisie
  • Commande << EOF

# la commande lit l’entrée standard jusqu’à la reconnaissance d’une ligne constituée de la chaîne EOF

  • Ex:

Cat > compile << FIN

if [ $# -ne 2 ] ; then exit 1

fi

if [ -r $1 ]

then cc $1 –o $2 -0 ; size $2

else exit 2

fi

FIN

shell lecture de la valeur d une varaible dans un script shell
Shell : lecture de la valeur d’une varaible dans un script shell
  • Lecture de la valeur d’une variable :

read Variable1 …. Variablen

Val1 … Valn

Vali est liée à Variablei

  • Protection des variables préalablement

readonly Variable1 …. Variablen

shell d limiteurs de chaines de caract res
Shell : délimiteurs de chaines de caractères
  • 'chaine' : la chaîne est prise littéralement sans substitution
  • "chaine" : la chaîne est prise littéralement après substitution des caractères $ (évaluation des variables) et \.
  • ‘commande`: la chaine complète est remplacée par la valeur de la commande (la sortie standard de celle-ci).
shell d limiteurs de chaines de caract res exemple
Shell : délimiteurs de chaines de caractères (exemple)

x=toto

echo $x

toto

echo ' $x '

$x

echo " $x "

toto

X=pwd

echo $x

pwd

echo " $x = ‘$x` « 

pwd=/usr/vous

shell valuation des variables
Shell : évaluation des variables
  • $var : valeur de var; rien si var indéfinie
  • ${var} : idem
  • ${var:-val} : valeur de var si définie, val dans le cas contraire; var inchangée
  • ${var:=val} : valeur de var si définie, val dans le cas contraire; var devient val si indéfinie
  • ${var:?message} : valeur de var si définie, sinon la valeur de message est affichée et le shell se termine
  • ${var:+val} : valeur de var si définie, rien sinon.
shell visibilit des variables
Shell : visibilité des variables
  • Les variables sont locales à un shell
  • Les variables du père ne sont pas implicitement transmises à ses fils (export)
  • Le fils ne peut pas modifier les variables du père.
shell l environnement de l utilisateur
Shell : l’environnement de l’utilisateur
  • Certaines variables sont initialisées au début de la session par le shell lui-même qui exécute deux commandes :

/etc/profile

$HOME/.profile (ou $HOME/.bashrc)

  • ENV
shell principales variables d environnement
Shell : principales variables d’environnement
  • HOME : répertoire initial
  • PATH : chemin de recherche des exe (login)
  • TERM : le type de terminal
  • MAIL : la boite aux lettres
  • SHELL : le type de shell
  • LOGNAME : nom de connexion
  • HISTSIZE : le nombre de lignes d’historique
  • PWD : le répertoire courant
shell param tres de proc dure
Shell : paramètres de procédure
  • La valeur des paramètres est transmise à la procédure de la façon suivante :

$0 : le nom de la procédure

$i : le ième paramètre

$* : la liste de tous les paramètres

$# : le nombre paramètres fournis à la procédure

  • Opérateurs liés aux paramètres :

shift[n] : décale de n positions vers la gauche la liste des paramètres et décrémente $# de n

set paramètres : range de nouveaux paramètres dans l’environnement

shell param tres de proc dure exemple
Shell : paramètres de procédure (exemple)

set ‘who am i`

echo "Utilisateur : $1 "

echo " Terminal : $2 "

echo " Connexion : $4 $3 $5 "

shell case
Shell : case
  • Le choix multiple : case

case <chaine> in

<constante>) <liste de commandes>;;

<constante>) <liste de commandes>;;

esac

La constante peut-être de la forme :

constante1| constante2 | … |constanteN

shell case exemple
Shell : case (exemple)

# la commande « qui » avec la date en français

set ‘who am i`

echo "Utilisateur : $1 "

echo "Terminal : $2 "

case $3 in

Jan) m=Janvier;;

Feb) m=Fevier;;

Dec) m=Decembre;;

esac

echo " Connexion : $4 $m $5 "

shell for
Shell : for

for <var> in <chaine1> … <chaineN>

do <liste de commandes>

done

for <var>

do <liste de commandes>

done

for <var> in $*

do <liste de commandes>

done

Exemple :

#affichage des arguments de la ligne de commande

for arg in $*

do echo $arg

done

shell expr
Shell : expr
  • La commande expr :

effectue des opérations sur les expressions passées en paramètre

chaque paramètre est une expression ou un opérateur

  • Opérations arithmétiques entre chaînes numériques :

+ - / * %

  • Opérations de comparaions :

= != < > <= >=

  • Sélection d’expression

expr1 | expr2 vaut expr1 si non nul et n’est pas une chaine vide, expr2 sinon

expr1 & expr2 vaut expr1 si mes 2 expressions ne sont ni nulles ni vides, 0 sinon

shell autres variables
Shell : autres variables
  • Autres variables initialisées par le shell

$$ numéro du processus courant

$! Numéro du dernier processus background

$? Code retour de la dernière commande exécutée

  • Le code retour d’une liste de commande est le code retour de la dernière commande de la liste

0 : OK

!=0 : Problème

Ce code retour peut être utilisé dans les structures de contrôle à la manière d’un booléen

  • Initialisation explicite du code retour dans uns sipt shell

exit : le code retour de la procédure sera celui de la dernière commande exécutée avant exit

exit valeur : le code retour de la procédure sera valeur

shell if
Shell : if
  • L’alternative : if

if <expression>

then <liste de commandes>

else <liste de commandes>

fi

Exemple :

if cc _0 *.c

then pack *.c

else rm *.o

fi

shell et
Shell : || et &&
  • Exécution conditionnelle : || et &&

Pour éviter l’usage explicite du if

Exemple :

rm xx

ls –l xx || echo Echec

ls –l xx && echo Reussite

echo Reussi || ls –l xx

echo Pas de la && ls –l xx

la commande test
La commande test
  • La commande test permet :

D’exprimer des conditions sur des fichiers

D’effectuer des comparaisons

  • 2 formes

Test expression

[ expression ]

  • Le résultat d’un test est 0 si la condition est remplie et différente sinon. En shell, 0 est équivalent à vrai
la commande test1
La commande test
  • Conditions sur des fichiers

expr option nom

option :

-f : vrai si nom est un fichier

-d : vrai si nom est un répertoire

-r : vrai si nom est un fichier lisible

-w : vrai si nom est un fichier modifiable

-x : vrai si nom est un fichier exécutable

  • Comparaison de chaines

string1 = string2 égalité

string1 != string2 inégalité

-n string vraie si longueur de string != 0

la commande test2
La commande test
  • Comparaisons nmériques

n1 -eq n2 vrai si n1 = n2

-ne vrai si n1 != n2

-lt vrai si n1 < n2

-gt vrai si n1 > n2

-ge vrai si n1 >= n2

  • Connecteurs logiques

! : non

-a : and

-o : or

\( … \) : pour associer des expressions

shell while et until
Shell : while et until
  • While : tant que la condition est vraie

while <expression>

do <liste de commandes>

Done

  • Until : itération tant que la condition est fausse

until <expression>

do <liste de commandes>

done