Vous êtes sur la page 1sur 208

Unix- Linux : les bases indispensables

UX001
UX001 – V2.10 Show
Agenda théorique …

Jour 1 Jour 2

Chap 1 - Introduction TP 5
Connexion
Documentation  Chap 3 - Editeur VI
Syntaxe  Principes généraux
Premières commandes  Quelques usages
TPs 1 & 2  TP 6

Chap 2 - Systèmes de fichiers  Chap 4 - Process


File System  Attributs
Types et noms des fichiers  Signaux
Arborescence et répertoires  Redirections
TP 3  « Pipe »
Manipulations de fichiers  Arrière plan
TP 4  TP 7
Droits d’accès

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 2


… agenda théorique.
Jour 3  Jour 4

Chap 5 – Shell(s)  Chap 6 suite – Utilitaires suite


Historique  TP 10
Variables
Caractères spéciaux  Chap 7 – Réseau et X11
TP 8  Résolution @IP
Alias  Quelques applications
Historique des commandes  Environnement graphique
Fichiers de connexions
TP 9  Chap 8 – Bases programmation shell
 Tests,
Chap 6 – Utilitaires  Boucles,
file, nl, cmp  Case … esac
find  Fonctions,
tar, compression  Gestion des signaux
Impressions  TP 11
script, du, su, cut
sort, grep, …

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 3


1 - Introduction
Historique

1970 - Unics par K. Thompson & D. Ritchie chez ATT

1973 - Langage C → portabilité

Deux branches : ATT (System V) & Berkeley (BSD)

1983 - Projet GNU

1991 - OSF/1 + FreeBSD + Noyau Linux

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 5


Unix aujourd'hui

Types Utilisateurs non Utilisateurs Administrateurs


Développeurs
d'utilisateur informaticiens informaticiens Exploitants

Importance nul ( contexte


faible faible important
de la version logiciel )

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 6


Linux
https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

Debian → Ubuntu

slackware → SuSE

RedHat → RedHat Enterprise Linux → CentOS


1.2.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 7


Composants d'un système Unix

Process utilisateurs
commandes

Shell
Shell

Noyau
Noyau
(Kernel)
(Kernel)
APIsAPIs,
Scripts
pilotes,
pilotes,
réseaux...
réseaux...

Interpréteur de
commandes
Outils de Applications
développement

1.3.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 8


Connexion / session utilisateur ...

Entrée de
Login: nomUtilisateur /etc/passwd

Le '$‘ : Password :
symbole d'invite
de saisie de $ cmd1
commande
… Saisie sans écho

$ exit
Login:
Fin de
connexion

1.4

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 9


Un utilisateur → une ligne de /etc/passwd

Nom du compte
Zone mot de passe historique
Uid
Gid à la connexion
Commentaire
Répertoire d'accueil
Process lancé à la connexion → un shell
1.4.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 10


La documentation : man

Le manuel en ligne
aide sur le manuel lui même :

1.5.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 12


… man

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 13


Eléments de syntaxe ...

Casse : MAJUSCULE ≠ minuscule


Séparateur de mot : <espace>
Caractères génériques ( jokers )
$ cmde [ -/+options ] [ argument(s) ]
$ ls
$ ls –l
$ ls /dev
$ ls –l /dev

Il y a des exceptions ...


1.6

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 14


… éléments de syntaxe

Incorrecte Correcte
1. Séparation :
$ mail -f newmail
$ mail - f newmail
$ who -u
$ who-u
2. Ordre :
$ mail newmail -f $ mail -f newmail
$ stage01 mail $ mail stage01
$ -u who $ who -u
3. Options multiples :
$ who -m-u $ who -m -u
$ who -m u $ who -mu

4. Arguments multiples
$ mail stage01stage02 $ mail stage01 stage02

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 15


… session utilisateur

Ouverture de session :
login: stage01
stage01 Password: (le mot de passe n’apparaît pas)
$

Fin de session :

$ <Ctrl-d> (ou bien)


$ exit (ou bien)
$ logout
login:

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 16


Utilisation du clavier
•Se limiter à la partie principale gauche:
•pas de flèche,
•pas de pavé numérique.
•Quelques actions clavier:

<ctrl-c> Fin du process courant


<ctrl-\> Fin du process courant + core
<ctrl-z> Suspendre le process courant
<ctrl-u> Annuler la ligne saisie
<crtl-d> Terminer la saisie clavier
<entrée> Fin de saisie et envoie de la ligne de commande
<ctrl-s> Stopper le défilement
<ctrl-q> Poursuivre le défilement
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 17
Changer son mot de passe

$ passwd
Changing password for "stage01"
stage01's Old password:
stage01's New password:
Enter the new password again:
$

1.7.f

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 18


Date et calendrier

1.7.b
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 19
Qui a ouvert une session et identité ...

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 20


… identité et terminal

Liste résumée et nombre d'utilisateurs :


$ who -q
mike root mike
# users=3
$

Identité courante : Nom de la machine sur le réseau :


$ id $ hostname
uid=125(stage01)gid=200(stage) solaris9
$ $

Nom du terminal :

$ tty
/dev/pts/2
$
1.7.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 21


Affichage de texte
$ echo Bienvenue chez Global Knowledge
Bienvenue chez Global Knowledge
$
$ echo –e "\tPremiere ligne\n\tDeuxieme ligne"
Premiere ligne
Deuxieme ligne
$
\n → saut de ligne supplémentaire
\b → retour arrière
\c → annulation du saut de ligne final
\t → tabulation
\r → retour chariot
\0n → caractère de code ascii n (en octal)

Éventuellement l’option –e pour que les


caractères précédés par \ soient interprétés.

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 22


Pour pratiquer en TP – le courrier : mail 1/2

Ecrire :

TP1&2

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 23


Pour pratiquer en TP – le courrier : mail 2/2

Ouvrir sa b.à l., et gérer son courrier :

Supprimer le message courant


Quitter sa b. à l.
TP1&2

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 24


Pour pratiquer en TP – messagerie instantanée :
write

Stage01 écrit à stage02 :


$ whoami
stage01
$ write stage02 Stage02 reçoit :
Bien le bonjour,
Ok pour ce midi ? $
<Ctrl-d> Message de stage01 sur pts/2 à 16:16 ...
$ Bien le bonjour,
Ok pour ce midi ?
EOF

En complément – refuser / accepter de recevoir des messages par write :


Refuser :
$ mesg n
Accepter :
$ mesg y TP1&2

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 25


Récapitulatif de quelques commandes

banner* → Affichage en gros caractères


cal → Affichage d'un calendrier
clear → Effacement de l'écran
date → Affichage de la date et de l'heure
echo → Affichage de texte
hostname → Affichage du nom réseau
id → Identification d'un utilisateur
passwd → Choix d'un mot de passe
tty → Affichage du nom du terminal
who → Liste des utilisateurs connectés

* banner n’est pas toujours installé par défaut 1.7.h

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 26


mise en pratique ...

TPs 1 & 2 :
Ouverture de session
et
premières commandes

1.8.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 27


2 – Systèmes de fichiers
Pour unix « tout est fichier »

volume physique → un disque découpé en partition(s)

volume logique → { volume(s) physique(s) }

système de fichiers → organisation d'un volume logique:


• table descriptive des fichiers

• blocs des fichiers

• [ données de journalisation ]

2.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 29


… « tout est fichier »

Fichiers pour l’accès aux matériels → /dev


Exemples :
• /dev/sda1 → 1er disque SATA ou SCSI, 1ere partition (Linux)
• /dev/dsk/c0d0s0 → accès au disque dur (AIX, Solaris, ...)
– c0 → 1er contrôleur
– d0 → 1er disque
– s0 → 1ere partition

• /dev/cdrfs, /dev/iso9660 → cdrom

• /dev/tty01 → terminal utilisateur

• /dev/pts/1 → pseudo terminal (réseau, graphique)


2.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 30


Quelques Files Systems

Non journalisés :
• System V (n'est plus utilisés)
• UFS (Unix File System)
• ext2 (EXTended)
Journalisés :
• jfs (Journal File System)
• ext3, ext4, xfs
En réseau :
• NFS (Network File System)
Pseudo-FS :
• procfs, tmpfs …

2.2.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 31


Un fichier c'est :

- Un ensemble de données,

- Une suite de caractères ou d'octets divers ,

- Une adresse de début, une longueur,

- Aucune structure n'est imposée par l'OS.

2.2.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 32


Les différents type de fichier
- Fichiers ordinaires
• texte, image, binaires exécutable, script, …

- Répertoires
• contiennent les noms pour accéder aux fichiers.

- Spéciaux
• associés au pilote (driver) des matériels.

- Liens symboliques
• références vers FS différents, vers répertoire.
2.3
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 33
Noms de fichiers

- minuscules ≠ MAJUSCULES

- pas d'extension .xxx

- seul caractère « interdit » : le '/'

- le '.' au début du nom → fichier « caché »

- chaîne de caractère stockée dans répertoire contenant et


est associé au n° inode du fichier ...

2.3
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 34
… inode d'un fichier
- identifiée par son numéro unique par FS,
- dans un répertoire son numéro est associé au nom,
- contient les caractéristique d'un fichier :
• type,
• droits d'accès,
• nombre de liens physiques,
• utilisateur et groupe propriétaire,
• taille,
• adresse des blocs qui constituent le fichier,
• date de dernière modification,
• date de dernier accès,
• date de dernière modification de l'inode. 2.3.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 35


Fichiers répertoires

- table qui associe n° inode ↔ nom de fichier

- au moins deux entrées :

'.' le répertoire courant lui même

'..' le répertoire parent contenant le répertoire courant

- l’ancêtre commun est la racine d'arborescence → '/'


( rem : racine → root en anglais )

2.3

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 36


Fichier – chemin d'accès

Deux façons de nommer un fichier:

- référence absolue: commence par '/' et contient tous les


répertoires intermédiaires :
/home/stage01/monfichier

- référence relative: à partir du répertoire courant :


./monfichier

monfichier
2.3.b
. ./. ./usr/bin/date
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 37
Parcourir l'arborescence

Où suis – je ?

$ pwd
/home/stage01/perso
$

Me déplacer mode absolu


$ cd /usr
$ pwd
/usr

Me déplacer mode relatif Retour à la maison


$ pwd $ pwd
/usr /usr/bin
$ cd bin $ cd
$ pwd $ pwd
/usr/bin /home/stage01

2.4.a
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 38
Liste des fichiers

Syntaxe :
ls [ -l d i t a R ] [ fichiers(s) ]
- affiche la liste des fichiers cités.
- si nom de répertoire(s), alors leur(s) contenu(s).
- si pas de fichier cité, alors contenu du répertoire courant.

Exemple :

2.4.a
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 39
Liste des attributs : ls -l
$ ls -l /etc
total 504
................................................
lrwxrwxrwx 1 root root 14 Jan 14 2004 aliases -> ./mail/aliases
drwxr-xr-x 2 root bin 512 Jan 14 2004 apache
................................................
-r-------- 1 root sys 478 Sep 12 11:01 shadow
................................................

2.4 .*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 40


Arborescence

2.4.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 41


Gestions des répertoires
mkdir → création d'un répertoire,
rmdir → suppression d'un répertoire à condition qu'il soit vide

2.4.e

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 42


mise en pratique ...

TP 3 – Nommage des fichiers


et répertoires

2.5.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 43


2.6 Manipulations de
fichiers ordinaires

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 44


Visualiser le contenu d'un fichier texte

cat → flux de texte sans pause d'affichage

/texte → recherche de texte en avant


pg
!commande → lancement de commande unix
more
<rc> ou <espace> → avance d'une page
less q → quitte
… autres options à découvrir via le man
Ces commandes sont très utiles pour contrôler l'affichage
d'autres commandes.

2.6.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 45


Copie de fichiers : cp
Syntaxe :
cp [options] source cible
ou
cp [options] fic1 fic2 fic3 ... Repertoire

Exemple :

-i : demande de confirmation

2.6.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 46


… cp

cible : un répertoire

2.6.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 47


Liens : ln
Syntaxe :
ln [-s] source cible
ou
ln [-s] fic1 fic2 fic3 ... repertoire

a) Lien physique.
Intéret : différents chemins (noms de fichier) pour l'accès à une même entité physique.

Exemples :

2.6.j

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 48


Lien symbolique : ln -s

b) Liens symboliques.
Intérets :
- créer des liens entre FS ≠
- créer des liens vers des répertoires

Exemples :

2.6.j

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 49


Renommer, déplacer des fichiers : mv
Syntaxe :

mv [options] source cible


ou
mv [options] fic1 fic2 fic3 ... repertoire

Exemple :

2.6.k

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 50


Renommer répertoire et lien symbolique

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 51


Suppression de fichiers : rm
Syntaxe :

rm [options] fichier(s)

-i : demande de confirmation,
-f : force sans confirmation si il manque le droit d'écriture,
-r : suppression récursive de répertoire.

Exemple :

2.6.l

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 52


Suppression de lien symbolique et de
répertoire
Suppression de lien symbolique :

-r : suppression récursive de répertoire

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 53


En tête de fichier : head

Exemple :

2.6.n

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 54


Fin de fichier : tail

Exemple :

2.6.o

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 55


Comptage : wc

Exemples :

2.6.p

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 56


mise en pratique ...

TP 4 – Manipulations de fichiers

2.7.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 57


2.8 – Droits d’accès

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 58


Droits d'accès ...

Tous les fichiers ont des droits d'accès.

trois attributs rwx : trois entités concernés :


r : lecture, - utilisateur propriétaire,
w : écriture , - groupe propriétaire,
x : exécute. - tous les autres.

2.8.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 59


… droits d'accès

Fichiers ordinaires :
r → droit de lire le contenu
w → droit de modifier le contenu
x → droit d'exécution (si script alors besoin du droit r )

Répertoires :
r → lister le contenu
w → modifier le contenu (création et suppression d'entrée)
x → droit de passage

2.8.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 60


Modifier les droits des fichiers existants : chmod

Syntaxes :

Mode octal : Mode symbolique :

r → 22 = 4 u | | r
w → 21 = 2 g | + | w
x → 20 = 1 o | - | x

2.8.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 61


chmod – exemples 1

2.8.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 62


chmod – exemples 2

supprimer un fichier → droit w sur le répertoire qui le contient

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 63


Changer de propriétaire(s) – chown, chgrp

Condition: être user propriétaire, et membre group cible


(rem: ces commandes peuvent être réservées à l’usage de root.)

• Changement du groupe propriétaire:

$ chgrp nveauGrpe fic(s)

 Changement de l’utilisateur propriétaire:

$ chown nveauUser fic(s)

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 64


Récapitulatif des commandes … part 1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 65


Récapitulatif des commandes … part 2

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 66


mise en pratique ...

TP5 – Droits d'accès

2.10.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 67


3 – Editeur vi
Editeur vi

- Editeur commun à toutes les distributions Unix

- Pour la création, la modification de fichiers de texte

- 3 modes de fonctionnements :

 mode commande (mode actif au lancement),


 mode écriture (dit aussi mode insertion)
 mode commande syntaxique (mode ligne de commande)

3.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 69


vi – pratique globale

3.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 70


vi – principes généraux

- la plupart des commandes peuvent être multipliées


exemple: r → remplace 1 caractère
3r → remplace 3 caractères

- la commande en majuscule a une portée plus grande


exemple: a → écriture après la position courante du curseur
A → écriture à la fin de la ligne courante

- la plupart des commandes doublées concernent toute la ligne courante


exemple: dw → détruit le mot courant
dd → détruit la ligne courante

- toute destruction (suppression) est stockée dans un buffer (couper) qui pourra être
inséré ensuite (coller)

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 71


vi – déplacement du curseur – part 1

3.2.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 72


vi – déplacement du curseur – part 2

3.2.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 73


vi – insertions, modifications, suppressions part 1

3.2.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 74


vi – insertions, modifications, suppressions part 2

3.2.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 75


vi – recherche et substitution

3.2.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 76


vi – copier / coller et autres commandes utiles

3.2.e

3.2.f

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 77


vi – sauve et quitte, et insertion fichier

3.2.g

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 78


vi - paramétrage

Détails des paramètres via :


$ man ex

Exemple de paramétrage permanent via $HOME/.exrc :

3.2.i

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 79


mise en pratique ...

TP6 – Editeur vi

2.10.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 80


4 – Processus et mécanismes de
redirections
Définitions
- un programme :
→ fichier ordinaire muni du droit x

- un process (ou tâche) :


→ un objet système
→ un programme en cours d'exécution + son
environnement
→ peut comprendre plusieurs threads

- l'accès aux ressources est géré par le noyau qui octroie


un temps partagé aux process.

- l'espace mémoire d'un process peut être copié dans un


fichier nommé core (mécanisme de dump). 4.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 82


Attributs d'un process

- PID → Process IDentifier, numéro d'un process.

- PPID → Parent Process IDentifier, numéro du process parent.

- UID → User IDentifier et ...

- GID → ...Group IDentifier utilisés pour les droits d'accès.

- TTY → TeleTYpe terminal, identifie l'écran/clavier associé.


- NI → NIce value – intervient sur le calcul de la priorité initiale.
- STIME → Start TIME - heure de lancement.
- TIME → Temps CPU cumulé.

4.3

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 83


Visualiser les attributs de process : ps – part 1

Attributs simples des process associés au terminal courant :

Attributs détaillés des process associés au terminal courant :

4.4

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 84


Visualiser les attributs de process : ps – part 2

process de l'utilisateur mike et leurs attributs :

4.4

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 85


Visualiser les attributs de process : ps – part 3

Tous les process et leurs attributs :

4.4

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 86


Signaux, interruption des process

$ kill [ -n°signal] PID1 PID2 ...

N° signal :

- SIGINT (2) → <Ctrl>C

- SIGQUIT (3) → <Ctrl>\, idem signal 2 + création fichier « core »

- SIGTERM (15) → valeur par défaut. Arrêt normal « Soft »

- SIGKILL (9) → arrêt « Hard », NON détournable

- SIGHUP (1) → émit par le Shell qui se termine

4.5.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 87


Redirections
le terminal courant ...

$ tty
/dev/pts/2
$

… comprend 3 canaux de communications :

- entrée standard → canal 0 → La commande peut y lire des données.

- sortie standard → canal 1 → La commande peut y écrire des résultats.

- erreur standard → canal 2 → La commande peut y écrire des messages d'erreur.

remarque : pour savoir si une commande qui n'affiche rien s'est déroulée sans erreur, on testera son
code retour $? (cf le chapitre base de la programmation shell)

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 88


Entrée / sortie standard

Exemple :
-la commande cat est faite pour afficher (écrire sur la sortie
standard) le contenu de fichier(s) énumérés en argument d 'entrée.

- si aucun fichier n'est fourni en entrée, alors c'est l'entrée standard


(le clavier) qui est lu en entrée.

4.6

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 89


Redirections depuis / vers fichier ordinaire

entrée :

$ cmde < fic

sorties en création : sorties en ajout:

$ cmde > fic $ cmde >> fic

$ cmde 2> ficerr $ cmde 2>> ficerr

4.6

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 90


Redirection d'entrée

4.6.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 91


Redirection de sortie

4.6.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 92


Redirection sortie en ajout

4.6.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 93


Redirections divers

A « NE PAS » faire :

4.6.d

Élimination de la sortie – fichier « trou noir » /dev/null

4.6.e

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 94


Création de fichier par redirection

4.6.f

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 95


Protection contre l'écrasement accidentel

4.6.g

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 96


Redirection de l'erreur standard

4.6.h

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 97


Redirection simultanée sortie et erreur

« danger » :
pas d'espace avant le & ...

4.6.h

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 98


Processus séquentiels

4.7

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 99


Redirection processus séquentiels

4.7

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 100
Mécanismes du pipe ...

4.8

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 101
Mécanismes du pipe

4.8

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 102
Résultats intermédiaires : tee ...

4.8.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 103
Résultats intermédiaires : tee

4.8.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 104
Processus en arrière plan

4.9

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 105
Arrière plan mode détaché: nohup

4.9.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 106
Contrôle des tâches – jobs, fg et bg.

jobs → Liste des tâches suspendues ou lancées en tâche de fond ( & ).

fg → Reprise de la dernière commande suspendue (par SIGTSTP, i.e. <Ctrl>Z)

fg %n → Reprise d’un processus désigné par son numéro dans la liste des tâches.

bg %n → Reprise, en arrière plan.

$ jobs
[1]- ls -lR / &
[2]+ Stoppé sleep 20

$ fg %1
ls -lR /
lrwxrwxrwx. 1 root root 7 21 avril 2016 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 21 avril 2016 boot
...
4.9.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 107
Contrôle des tâches - exemples

4.9.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 108
Récapitulatif

grep → recherche d'expression


kill → envoie d'un signal à un process
nohup → protection contre le signal HUP (logout)
ps → liste des process
tee → dupplication sortie standard
write → messagerie instantanée

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 109
mise en pratique ...

TP7 – Gestion des process


et redirections

4.11.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 110
5 – Utilisation du shell
Les différents shell - chronologie
- Bourne shell (sh ou bsh)
→ le plus ancien,
→ créé par Steve Bourne,
→ peu confortable pour un usage interactif (pas d'alias, pas de rappel de commandes…).

- C shell (csh)
→ issu des versions Unix Berkeley,
→ écrit par Bill Joy,
→ a apporté de nettes améliorations par rapport au Bourne shell (alias, rappel de commandes),
→ syntaxe des scripts semblable au langage C.

- Korn shell (ksh)


→ créé par David Korn.
→ compatibilité ascendante avec le Bourne shell,
→ fonctionnalités de programmation étendues (tableaux ...),
→ propose des améliorations qu'avaient apportées le C shell,
→ en production les scripts sont écrits aujourd'hui le plus souvent en Korn shell.

- Bourne again shell (bash)


→ logiciel libre, 5.1
→ shell par défaut des distributions Linux,
→ syntaxe très proche de celle du Korn shell.
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 112
Les variables ...

Leur nom :
- alphanumérique,
- celui des variables « système » sont en majuscule,
- on accède à leur contenu en le préfixant du ''$''.
- NE commence PAS par un chiffre,
- NE commence PAS par $.

Déclaration, initialisation, valorisation :


- le signe ''='', sans espace.

5.2.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 113
… Les variables

Si ambiguïté, alors ${nomVar} au lieu de $nomVar :

5.2.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 114
Les variables : set, env et export

Modification de l’environnement du shell courant:


$ . ./monscript
(sera détaillé plus loin)

5.2.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 115
Variables ''système''

HOME → Nom complet du répertoire de connexion

LOGNAME → Nom de connexion de l'utilisateur

OLDPWD → Nom du répertoire courant précédent, "cd -" pour y retourner

PATH → Liste des répertoires pour la recherche des commandes par le shell

PS1 → Prompt principal (par défaut : $ )

PS2 → Prompt secondaire (par défaut : > )

PWD → Nom du répertoire courant

TERM → Type du terminal (émulation) utilisé notamment par l'éditeur vi

TMOUT → Nombre de secondes d'inactivité du shell avant déconnexion


5.2.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 116
Variables d'invite PS1 et PS2

5.2.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 117
Variable TERM

5.2.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 118
Variable PATH

en complément : les commandes whence ou whereis :

5.2.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 119
Les caractères spéciaux

< → Redirection de l'entrée standard

> et >> → Redirections de la sortie standard (écrasement ou ajout)

2> et 2>> → Redirections de l'erreur standard (écrasement ou ajout)

; → Processus séquentiels

| → Mécanisme du pipe

& → Mode arrière-plan

( ) → Groupement de commandes

= → Affectation de variable

$ → Contenu de variable

{} → Contenu de variable et bloc de fonction

5.3.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 120
Noms fichiers : jokers-caractères génériques ...
* → remplace n'importe quelle suite de caractères (même vide),
→ seul, il désigne tous les noms de fichiers du répertoire courant, sauf ceux qui
commencent par ‘.’ (point).

? → un caractère quelconque (non vide).

[ ] → un caractère parmi l'ensemble énuméré entre [ ],


le signe - (moins) pour un intervalle dans le code ascii (exemple: [a-z] désigne
une lettre minuscule).

[! ] → un caractère différent de l'ensemble énuméré entree [ ! ] (la négation de [ ])

5.3.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 121
… Noms de fichier - jokers

5.3.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 122
Substitution de commande

- But : dans une phrase de texte, remplacer une commande par son résultat.
- Deux syntaxes possibles :

`commande`
→ la commande est encadrée par deux ` (quotes inverses).
→ syntaxe historique du Bourne Shell.

$(commande)
→ depuis le Korn Shell : commande encadrée de parenthèses précédées du $.
→ fait mieux apparaître l'analogie avec la substitution de variable.

5.3.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 123
Caractères de protection

\ → antislash : annule l'interprétation du seul caractère placé après lui.

' ' → apostrophe : tous les caractères situés entre deux simples quotes perdent leur rôle
fonctionnel (excepté bien sur la quote elle-même).

" "→ guillemets : tous les caractères situés entre deux doubles quotes perdent leur
rôle fonctionnel, excepté la double quote et les trois caractères : $, `commande` et \.

5.3.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 124
mise en pratique ...

TP8 – Eléments du Shell


variables et jokers

5.4.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 125
personnalisation de l’environnement

•Alias

•Historique des commandes

•Fichiers scripts de connexion

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 126
Alias : alias …

Rem : apport du Korn Shell vis à vis du Bourne Shell.

5.5.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 127
Alias : alias et unalias

5.5.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 128
Historique des commandes

HISTFILE→ Nom du fichier d'historique - $HOME/.sh_history par défaut

HISTSIZE→ Nombre de commandes mémorisées - 128 par défaut

5.5.b et 5.4.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 129
Historique des commandes : alias fc & r

Affichage des dernières commandes :


fc -l → Afficher les 16 dernières commandes avec un numéro d’ordre

history → Alias prédéfini pour fc -l, puis alias personnel : alias h=history
fc -l n1 n2→ Afficher les commandes de numéro n1 à n2

Relancer des commandes :


r → Relancer la dernière commande (r est un alias pour fc -e - )
r num → Relancer la commande d'indice num dans la liste
r string → Relancer la commande la plus récente commençant par string
r st1=str2 → Relancer la dernière commande en remplaçant str1 par str2

5.5.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 130
Historique des commandes – éditeur intégré

$ EDITOR=vi ; export EDITOR

ou bien :
$ set -o vi

5.5.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 131
Fichiers de connexion : $HOME/.profile

Exemple de fichier .profile :

5.6

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 132
Fichiers de connexion : ~/.kshrc

Exemple de fichier ~/.kshrc :

5.6

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 133
Fichiers de connexions – prise en compte
des modifications

Pour éviter de se déconnecter / reconnecter

→ exécution dans le shell courant :

5.6.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 134
mise en pratique ...

TP9 – Personnaliser son


environnement

5.7.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 135
6 - Sélection de commandes
Type d'un fichier : file

6.1.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 137
Numérotation des lignes : nl

6.1.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 138
Comparer le contenu : cmp

Contenu identique → $? = 0

Contenu différent → arrêt à la première différence

6.1.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 139
Diverses commandes complémentaires

comm → Comparaison de fichiers triés

diff → Comparaison de fichiers

fold → Découpage de lignes

join → Jointure entre deux fichiers triés

od → Visualisation de fichiers sous différents formats

paste → Concaténation de lignes entre plusieurs fichiers

pr → Mise en forme de fichiers pour impression

split → Éclatement d'un fichier en plusieurs fichiers

6.1.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 140
Recherche de fichiers : find ...

Syntaxe :

find repertoire(s) [ option(s) ] action(s)

Options :
-name fichier → Recherche sur le nom
-perm mode → Recherche sur les permissions
-newer fichier → Recherche des fichiers plus récents qu’un fichier donné
-user nomUser → Recherche sur le propriétaire
-mtime +n → Fichiers modifiés depuis plus de n jours
-mtime -n → Fichiers modifiés depuis moins de n jours
-atime +n → Fichiers consultés depuis plus de n jours
-atime -n → Fichiers consultés depuis moins de n jours
-inum num → Recherche sur un numéro d'inode
-type t → Recherche sur le type de fichier (t = b, c, d, f ou l) 6.2.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 141
… find

Actions :

-print → Affichage du nom des fichiers

-exec → Exécution d'une commande pour chaque fichier trouvé

-ok → Exécution d'une commande avec demande de confirmation

6.2.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 142
… find – exemples ...

6.2.a
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 143
… find – exemples

6.2.a
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 144
Sauvegardes – commandes de compression

Origine System V Origine Berkeley Logiciel libre

Commande de
pack compress gzip
compression

Extension des
fichiers .z .Z .gz
compressés
Commande de
unpack uncompress gunzip
décompression
Décompression
pcat zcat
sur sortie standard

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 145
Sauvegardes

archivage vers :
→ fichier spécial – device de sauvegarde
→ fichier ordinaire
→ sortie standard en vue de pipe
→ avec noms relatifs pour plus de souplesse

restauration :
→ avec les noms (path) archivés
→ nom relatifs pour liberté de choisir le répertoire de
restauration

6.2.b
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 146
Sauvegardes : tar

Création d'archive :

tar -cvf ficArchive fichier(s)

Liste du contenu d'archive :

tar -tvf ficArchive

Restauration :

tar -xvf ficArchive [ fichier(s) ]

6.3.c
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 147
… tar - exemples

Sauvegarde :

Listing :

6.3.c
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 148
… tar – exemple ...
Restauration complète:

6.3.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 149
… tar – exemple ...

Restauration partielle :

6.3.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 150
… tar - exemple
tar + compression / décompression :

Versions plus récentes : options –z ou –j  compression directement par tar


$ tar cvzf /tmp/montar.gz rep

6.3.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 151
Impressions

Spooler Spooler Spooler


System V Berkeley IBM/AIX
Requêtes
lp lpr qpr
d'impression

Etat des files


lpstat lpq qchk
d'attente

Etat des files


cancel lprm qcan
d'attente

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 152
Trace d'une session : script

6.5.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 153
Utilisation du disk : du

6.5.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 154
Changer d'identité : su

6.5.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 155
Extraction de champs : cut ...
Rappel, format de /etc/passwd :

nomLogin : pwd : UID : GID : commentaire : répertoireAccueil : processConnexion

6.5.e

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 156
… cut

Plusieurs caractères séparateurs ...

Extraction mode caractères -c

6.5.e

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 157
Tris : sort ...

Par défaut : tri le contenu par début de ligne, en mode ascii.

Exemple : tri numérique inversé entre les 2e et 3e délimiteurs de champs '':''

6.6.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 158
… tris

Après avoir éliminé la ligne de titre de ls -l,


tri principal numérique inverse sur la taille,
et tri secondaire sur le nom :

6.6.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 159
Transformation de caractères : tr

Transformation d'une plage de valeurs :

Suppression d'un caractère :

6.6.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 160
Filtre – Sélection – de lignes : grep, egrep ...

Syntaxes :

grep [ options ] expression fichier(s)

egrep [ options ] expr1 | expr2 fichier(s)

Principales options :
-i → confond minuscules / Majuscules,
-v → négation : affiche les lignes qui NE contiennent PAS expression(s) ,
-c → (compte) affiche le nombre de lignes trouvées,
-l → affiche uniquement le nom de fichier,
-f → expressions écrites dans un fichier ...

6.6.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 161
…grep – Expressions régulières ...

^ → Début de ligne
$ → Fin de ligne (se place en fin d'expression)
. → Présence d’un caractère quelconque
[ ] → Un caractère parmi un ensemble
[^ ] → Un caractère ne figurant pas dans l’ensemble
* → Un nombre quelconque d'apparitions d'un caractère (y compris aucun)
^$ → Ligne vide (un début et une fin tout de suite)
.* → Reste de la ligne ou ligne complète suivant le contexte
| → Le caractère | signifie OU et relie deux expressions (egrep seulement)

6.6.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 162
… grep, egrep - exemples

Les lignes qui commencent par une lettre majuscule :


grep '^[A-Z]' fichier

Les lignes qui se terminent par 'cd1' et un nombre quelconque de '' '' :
grep 'cd1 *$' fichier

Lignes qui commencent par une majuscule ou bien qui se terminent par cd1 :
egrep '^[A-Z]|cd1$' fichier

Lignes qui commencent par une majuscule et qui se terminent par la chaîne cd1 :
grep '^[A-Z].*cd1$' fichier
6.6.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 163
Récapitulatif des commandes … 1/3

cmp → Comparaison de deux fichiers

comm → Comparaison de fichiers triés

compress, uncompress → Compression, décompression de fichiers


cpio → Archivage et restauration de fichiers

cut → Sélection de caractères ou de champs

diff → Comparaison de fichiers

du → Informations sur l'espace disque utilisé

file → Détermination du type de contenu

find → Recherche de fichiers

fold → Découpage de lignes

grep, egrep → Recherche d'expressions

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 164
Récapitulatif des commandes … 2/3

gzip, gunzip → Compression, décompression de fichiers

join → Jointure entre deux fichiers triés

lp, lpstat, cancel → Commandes d'impression du spouleur System V

lpr, lpq, lprm → Commandes d'impression du spouleur Berkeley

nl → Numérotation de lignes

od → Visualisation de fichiers sous différents formats

pack, unpack → Compression, décompression de fichiers

paste → Concaténation de lignes entre plusieurs fichiers

pr → Mise en forme de fichiers pour impression

qprt, qchk, qcan → Commandes d'impression du spouleur AIX

script → Capture d'une session sur un terminal

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 165
Récapitulatif des commandes ... 3/3

sort → Utilitaire de tri

split → Éclatement d'un fichier en plusieurs fichiers

su → Changement d'identité

tar → Archivage et restauration de fichiers

tr → Transformation de caractères

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 166
mise en pratique ...

TP10 – Utilitaires

5.4.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 167
7 – Commandes réseau,
environnements graphiques
Interfaces physiques : ifconfig
Exemple HP-UX :

Exemple AIX:

Exemple Linux :

7.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 169
Interfaces physiques : ifconfig, netstat -i

Exemples Solaris :

7.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 170
Résolution des noms – résolution locale

Fichier /etc/hosts :

7.2.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 171
Résolution des noms – Domain Name System
- Client DNS - Fichier /etc/resolv.conf :

- Ordre de recherche entre /etc/hosts (files) et


/etc/resolv.conf (dns) : /etc/nsswitch.conf

- Commandes d'interrogation interactive :


nslookup, dig 7.2.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 172
Terminal virtuel : telnet

7.3.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 173
Les ''remotes commands''

rlogin → connexion distante,

rsh (rcmd) → commandes distantes,

rcp → copie de fichiers

- Spécifiques aux environnements Unix,


- Présence d'un fichier $HOME/.rhosts sur machine distante,
- Eventuellement /etc/hosts.equiv.

Rem : Intérêt historique uniquement. Premières commandes réseau


de Berkeley. Remplacées par ssh et scp pour des raisons de 7.3.b
sécurité essentiellement .

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 174
Commande distante : rsh ou rcmd

$rsh solaris9 cal 2004 > toto


→ fichier créé sur la machine locale

$rsh solaris9 'cal 2004 > toto'


→ fichier créé sur la machine distante

7.3.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 175
Copie de fichiers : rcp

7.3.e

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 176
Transfert de fichier : ftp …

Syntaxe :
ftp [ options ] host

Exemple de démarrage d'une session ftp :

7.3.f

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 177
Transfert de fichier : ftp – les commandes 1/2

Commandes liées à l'environnement :

help ou ? → Aide en ligne


status → Affichage de l'état courant de la session
ascii → Transferts en mode texte (bonne conversion entre Unix et Windows)
→ binary → Transferts en mode binaire (recommandé entre deux systèmes Unix)
pwd → Nom du répertoire courant sur la machine distante

→ cd rep → Changement de répertoire sur la machine distante

→ ls → Liste des noms de fichiers sur la machine distante


!pwd → Affichage du nom du répertoire courant sur la machine locale

→ lcd rep → Changement de répertoire sur la machine locale

→ !ls → Liste des noms de fichiers sur la machine locale

7.3.f

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 178
Transfert de fichier : ftp – les commandes 2/2

Commandes de transfert de fichiers et de fin de session ftp :

get f1 f2 → Récupération d'un fichier distant f1 vers fichier local f2


recv f1 f2 → Récupération d'un fichier (synonyme de get)
put f1 f2 → Émission d'un fichier local f1 vers un fichier distant f2
send f1 f2 → Émission d'un fichier (synonyme de put)
glob → Réactive ou inhibe la résolution des caractères spéciaux
prompt → Activation du mode interactif pour un transfert multiple
mget fichiers → Récupération de fichiers vers le répertoire local courant
mput fichiers → Émission de fichiers vers le répertoire distant courant
bye → Sortie de ftp
quit → Sortie de ftp (synonyme de bye)
7.3.f

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 179
Session ftp - exemple

7.3.f

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 180
Alternative sécurisée ssh

SSH : Secure SHell


→ mot de passe chiffré
→ communication chiffrée
→ possibilité d'authentification par certificat

Commandes Commandes
historiques alternatives ssh
telnet
rlogin ssh
rsh
rcp scp
ftp sftp
7.3.g

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 181
Environnement graphique – X11 / X-Window

- Protocole XWindow / X11

- Serveur X :
→ un process accessible par le
réseau,
→ une machine spécialisée :
terminal X,
→ @IP et N° mémorisés dans la
variable DISPLAY.

7.4.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 182
Environnement – Desktop …

- Environnement intégré 'Desktop' :

. service de connexion → fenêtre de login / password

. gestionnaire de fenêtres

. accessoires → émulateur de terminal, horloge, calculette,


agenda, éditeur de texte …

. clients élaborés → gestionnaire de fichier, outils de


documentation, menu d'administration,

7.4.a

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 183
Différents Desktops

 CDE (Common Desktop Environment)


→ construit par IBM, HP, Novell et Sun, membres de
l'Open Group,
→ déposé sur SourceForge,
→ puis utilisé par RedHat.

 Environnement Linux :
→ KDE → GNOME

7.4.a
Et d'autres …
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 184
Options standards des clients X :

-fg → Couleur de premier plan


-bg → Couleur d'arrière plan
-title → Titre de la fenêtre
-geometry → Choix de la taille et de la position
-display → Choix du serveur X

Exemples :
xterm -fg yellow -bg blue -title "Emulation de terminal"
xterm -geometry +100+100
xclock -geometry 90x80-0+0

7.4.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 185
Choix du serveur X – variable DISPLAY

→ définit le serveur X par défaut,


→ évite l'utilisation de l'option standard -display

Format :
[host]:server[.screen]

où :
host → Nom du système (@ IP) sur lequel s’exécute le serveur X
server → Numéro du serveur
screen → Numéro d'écran

7.4.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 186
8 – Les bases de la
programmation Korn Shell
Procédures …

- Rédaction et exécution d'une procédure (ou script) :

Exécution explicite: Exécution implicite:


$ vi proc $ vi proc
$ ksh proc $ chmod +x proc
$ ./proc

→ début du texte : #! Nom_complet_de_l'interpréteur


exemple : #! /usr/bin/ksh
→ dans les deux cas exécution dans un shell enfant.

Exécution par le shell courant:


$ . ./proc
8.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 188
… et paramètres
- Paramètres automatiques :

$0 → Nom de la procédure elle-même,

$1, $2, $3 … → Valeurs des paramètres reçus,

$* → Liste complète des paramètres,

$# → Nombre de paramètres,

$? → Code retour de la dernière commande appelée,

$$ → PID courant.

Exemple :

8.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 189
… exécutions conditionnelles

cmde1 && cmde2


→ Lancer cmde2 si cmde1 a réussi.
Exemple :
$ls -l fic1 && cat fic1

cmde1 || cmde2
→ Lancer cmde2 si cmde1 a échoué.
Exemple :
$ls -l fic1 || echo ''il y a un pb ...''

8.1

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 190
Instructions et contrôles, tests simples : if - fi

Syntaxes :
if cmde if cmde

then then

cmde(s) cmde(s)

fi else
cmdes(s)
fi
Exemple :

8.2.b

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 191
… tests séquentiels : else if, elif

if commande if commande
then then
commande(s) commande(s)
else if commande elif commande
then then
commande(s) commande(s)
else if commande elif commande
then then
commande(s) commande(s)
[else [else
commande(s) ] commande(s) ]
fi fi
fi
fi

8.2.c

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 192
… commande test - syntaxe 1/2 ...
Syntaxe : test expression
ou
[ expression ]

Opérateurs : -r fichier → Droit de lecture sur le fichier


-w fichier → Droit d’écriture sur le fichier
-x fichier → Droit d’exécution sur le fichier
-f fichier → Il s’agit d’un fichier ordinaire
-d fichier → Il s’agit d’un répertoire
-L fichier → Il s’agit d’un lien symbolique
-z "chaine" → La chaîne est de longueur nulle
-n "chaine" → La chaîne est de longueur non nulle
chaine1 = chaine2 → Les deux chaînes sont identiques
chaine1 != chaine2 → Les deux chaînes sont différentes 8.5.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 193
… commande test – syntaxe 2/2 ...

Opérateur sur les entiers :


entier1 -eq entier2 → Les deux entiers sont égaux

Autres opérateurs sur les entiers :


-ne -gt -ge -lt -le → ≠ > ≥ < ≤

Opérateurs logiques :

! Négation
-o OU
-a ET

8.5.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 194
… commande test – exemples 1/2 ...

8.5.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 195
… commande test – exemple 2/2

8.5.d

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 196
Boucle : for do - done
Syntaxe : for variable in liste_de_valeurs
do
cmde(s)
done

Exemples : Boucler sur tous les paramètres de la


procédure

Boucler sur tous les noms de


fichiers du répertoire courant

Faire cinq fois un traitement


8.5.f
© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 197
Boucles – while et until do - done

Syntaxes : while commande until commande


do do
cmde(s) cmde(s)
done done

Exemple :

8.5.i

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 198
Instructions de branchement : break, continue

do

break

continue

done

8.5.h

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 199
Lecture au clavier - read

Syntaxe :
read liste_de_variables

Exemples :

8.5.i

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 200
Expressions arithmétiques – let, (( ))

x=10
let x=x+1 → pas d'espace avec la commande let

(( x = x + 2 )) → les doubles parenthèses permettent les espaces


(( x = ( x – 2 ) * 3 )) → les parenthèses modifient les priorités des opérateurs

i=0
while (( i < 100 ))
do
...
let i=i+1
done
8.5.g

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 201
Expressions arithmétiques, manipulations de
chaines de caractères - expr
Syntaxe :
expr opérande1 opérateur opérande2
expr expression

Opérateurs : + - / * %
= != < <= > >=
substr length …

Exemples : $ v1=10 ; v2=15


$ expr $v1 + $v2
25
$ expr length ’’bonjour’’
7
$

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 202
Aiguillage : case - esac

Syntaxe :

case valeur in
| → pour énumération de motif,
motif1 )
* → autre cas, doit être placé en dernier.
cmdes(s) ;;
motif2 )
cmdes(s) ;;
… Exemple :
esac

8.5.i

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 203
Fonctions
Syntaxe déclarative :

function nomFonction → s'exécute dans le shell courant,


{ → reçoit les arguments $1, $2, …
cmde(s) → renvoie une valeur $? via l'instruction return
}

Exemple : $function mcd


>{
> cd $1
> PS1=`pwd` ''> ''
}
$ pwd
/home/stage01
$ mcd .. 8.3.a
/home> mcd
/home/stage01> _

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 204
Autres commandes internes ':'

. (point) Interpréter la procédure sans créer de shell fils.

: (deux points) Commande 'toujours vraie' (pour des boucles infinies).

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 205
Autres commandes : printf et caractères
de présentation
printf en alternative à la commande echo.

Accepte les caractères conventionnels suivants :


\a Signal sonore
\b Retour arrière
\c Pas de saut de ligne
\f Effacement d'écran ou saut de page
\n Saut de ligne
\r Retour chariot
\t Tabulation
\v Tabulation verticale

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 206
… printf et caractères de présentation

$ printf "\t\t texte précédé de deux <tab>,\n deuxième ligne, puis 2 <rc>.\n\n"
texte précédé de deux <tab>,
deuxième ligne, puis 2 <rc>.

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 207
mise en pratique ...

TP11 – Les bases de la programmation


shell

5.4.*

© 2018 Global Knowledge Training LLC. All rights reserved. Diapo 208
Des questions ?