18. 18
Langage de commandes
• SHELL (UNIX)
• Donner des ordres au Système d'exploitation
• "Interpréteur de commandes"
• 2 grandes familles
• Toute commande exécutée via une interface graphique
peut être faite textuellement.
Bourne Shell (sh) Cshell (csh)
Korn Shell (ksh) tcsh
Bourne Again Shell (bash)
19. 19
Le Shell
• Interface
§ Mode texte le plus souvent
§ Mode "ligne de commande"
§ "Terminal" , "xterm"
• Choix du shell activé lors de la connexion
• Syntaxe :
§ Nom_commande [options] [arguments]
§ Au moins un espace entre les différents éléments de
la commande
?>
$ firefox &
$ soffice &
$ ls –l /tmp
$
prompt
ou invite de commande
21. Fichiers (2)
• Texte
§ Affichable et compréhensible à l'écran
§ Gestion des accents, fin de ligne ?
§ Ex : code source, script shell
• Binaire
§ Exécutable
§ Données d’une application
§ Pas lisible à l’écran
§ Ex : fichier d'un éditeur de texte (OO, Word, mp3/4,
divx)
21
27. 27
Commandes (1)
$ ls list segments
$ cd change directory
$ pwd print working directory
$ ls
$ ls -al
$ cd /home/prof/loic
$ cd ..
$ cd $HOME
$ cd ~laurenco
$ cd
28. 28
Commandes (2)
$ mkdir make directory
$ rmdir remove directory
$ cp copy
$ tree
$ mkdir tps
$ rmdir tps
$ cp source destination
$ cp original copie
$ cp fic.txt ../sauv
$ cp –r * ../sauv
tps doit être VIDE
31. 31
Connexion
• Environnement multiutilisateur
• Connexion sécurisée
§ Identifiant : login
§ Mot de passe : password
• Sécurité des mots de passe
§ Dictionnaire
§ Fréquence des changements
§ Caractères "spéciaux" : chiffres majuscules @ # ~ –
• Session
On verra comment
changer de mot de
passe en TP
36. 36
Droits
• 3 niveaux
§ Propriétaire user u
§ Groupe du propriétaire group g
§ Autres others o
§ Tous les utilisateurs all a
• 3 types de droits
§ Lecture read r
§ Écriture write w
§ Exécution execute x
(a = u g o)
o
g
u
a
37. 37
Commandes
$ ls –l
$ chmod
$ chgrp
$ chown
Administrateur !
-rwxr--r-- 1 loic users 8699 Nov 15 2010 Xfloodit.c
drwxr-xr-x 2 loic users 4096 Nov 15 2010 xlib
-rwxr--r-- 1 loic users 7237 Nov 15 2010 xlib2.c
d rwx rwx rwx
u g o
38. 38
chmod
$ chmod –R a+r index.html
$ chmod –R u+rwx,go= *
$ chmod go-rwx fic.log
$ chmod +x dir
$ chmod 755 fic
d rwx rw- rw-
u
7
r w x
4 2 1
40. 40
Lien symbolique / Raccourci ?
• Fichier / répertoire
• 2 inodes différents
• Original effacé ? Lien invalide
• Passe la limite de la partition
• Très utilisé pour éviter la duplication de données
$ ln -s fichier raccourci
$ which firefox
$ ls –l /usr/local/bin/firefox
[…] firefox -> firefox9a1
44. 44
$ cat riri fifi loulou > famille
$ cat donald >> famille
$ ps –aux > res
$ more res
$ commande 2> fichier
$ wc < fic ó wc fic
$ moyenne < donnees
$ commande < fichier
Ne pas appeler un fichier test
45. 45
$ Moyenne ↩
15 ↩
20 ↩
13 ↩
-1 ↩
La moyenne est : 16 (3 éléments)
$
$ moyenne < liste1.txt ↩
Saisir un nombre (-1 pour arrêter)
La moyenne est : 16 (3 éléments)
$
Saisir un nombre (-1 pour arrêter)
15 ↩
20 ↩
13 ↩
-1 ↩
49. 49
Processus (2)
• Processus système ou daemon
§ Pas associé à un terminal
§ Propriétaire : administrateur
• Processus utilisateur
§ Tâche particulière
§ Durée de vie limitée
§ Généralement associé à un terminal
• Nombre de processus limité par le système
50. 50
Etats d'un processus
• Actif
• Ready
§ Prêt à être exécuté
• Terminé
• Endormi / suspendu
§ En attente d'une saisie par exemple
• Zombie (defunct)
§ Terminé mais toujours référencé (PID)
51. 51
Liste des processus
$ ps
$ ps –l
• PPID, UID
$ ps –aux ou ps aux
$ ps -ef
$ top
PID TTY TIME CMD
1224 pts/1 00:00:00 bash
3836 pts/1 00:00:00 ps
52. 52
Commande kill
• Demande de fin
$ kill -15 PID
• Mauvaise fin
$ kill -9 PID
• Arrêt temporaire
$ kill –STOP PID
• Reprise après arrêt
$ kill –CONT PID
$ kill PID
54. 54
Contrôle de processus (1)
$ commande É
$ commande & É
$ jobs
interactif
batch
$ vi options.txt
$ firefox &
[1] 1720
$ xeyes &
[2] 2345
[n° Job] PID
[1] En cours d’exécution firefox &
[2] En cours d’exécution xeyes &
57. 57
Exécution concurrente
Com 1
E S
Err
Com 2
E S
ErrTUBE ou PIPE
Idée : Lancer des processus "en parallèle"
communiquant entre eux
Com 2 peut commencer avant que Com 1 ne termine
Rediriger la sortie de l'un vers l'entrée de l'autre
?>Com1 | Com 2
?>ps –aux | less
cat fichier | grep loic
58. 58
NICE
$ nice +n commande &
• Valeurs du n dépendant du shell
§ À vérifier par la commande …
• 0 → 40 (défaut : 20)
• -20 → 20 (défaut : 10)
• Valeur faible, priorité forte
• Valeur haute, priorité faible
• Valeurs négatives pour le système
time processus
60. 60
Autres commandes
$ at heure
§ Exécuter les commandes de l'entrée std à la
date spécifiée
§ Droits : at.allow at.deny
$ cron
§ Tâches périodiques en arrière-plan
§ Fichier crontab
61. 61
$ rm *
§ Sans savoir où l'on est (pwd)
$ rm *;o
§ Au lieu de rm *.o
$ mv à 14h du mat
• Appeler un fichier du nom d'une
commande ou d'un périphérique : null,
test
64. 64
Édition
• Entrer en mode insertion
i a r
• Sortir du mode insertion : ESC
• Effacer : x
• Copier/couper/coller
yy ou <n>yy
dd ou <n>dd
P p
• Remplacer le mot courant : cw
80. 80
ssh / telnet (1)
• ssh
§ Communication sécurisée – Port 22
§ Pas dispo sous Windows < 10
• telnet
§ Connexion en clair
§ Port 23 - Démon telnetd
• Adresse IP ou nom logique
• Résolution nom via DNS ou /etc/hosts
•PuTTY
•Virtualisation
VIEUX
81. 81
ssh / telnet (2)
• Session distante texte
• Commandes identiques au shell
$ quit $ exit
$ who $who am i
$ last $hostname
$ ping
• Session distante graphique
$ xterm –e ssh machine
$ ssh –X machine
86. 86
Script shell (1)
• Liste de commandes dans un fichier texte
§ Fichier batch
• 2 familles de syntaxe
§ Bourne shell et dérivés (bash)
§ C-shell et dérivés (tcsh)
• Choisir le shell
§ Spécifié à la première ligne du script
• Scripts autorisés sont dans /etc/shells
90. 90
Chaines de caractères
• 'chaine'
§ Chaine non substituée
§ Plus aucun caractère spécial
• "chaine"
§ Les caractères spéciaux sont valables sauf
§ Variables évaluées
• `chaine`
§ Interprétée comme une commande
echo "$USER"
-> loic
echo '$USER'
-> $USER
echo `date`
91. Boucle simple
91
i=1
while [ $i -le 100 ]
do
echo $i
i=`expr $i + 1`
done
for i in `seq 1 100`
do
…
done
for i in un deux
do
echo $i
done
rep=""
while [ -z "$rep" ]
do
read $rep
done
Commande
92. Condition
92
if [ $i -le 100 ]
then
echo "trop petit"
fi
if test expression
then
[else]
fi
if [ expression ]
then
[ else ]
fi
if [ -n "$rep" ]
then
echo "non nul"
fi
94. 94
Commande mail - lecture
• n° : lire le mail numéroté
• x : sortir, messages gardés
• q : sortir, messages dans la mbox
§ var/spool/mail
• s n° <nom_fichier> : sauvegarder
• d n° : destruction du mail
§ d 1-3
Le SE peut vous envoyer des mails !!!
95. 95
Communiquer ?
• Site Internet perso
§ Charte sur le contenu
§ https://isima.fr/~login
§ Répertoire $HOME/public_html
§ Attention aux droits (a+rx) des répertoires et
des fichiers
§ Fichier index.html doit exister avec droit
• Transférer ses fichiers par sftp par le VPN
96. <html>
<head>
<title> Bienvenue sur ma page
</title>
</head>
<body>
<p>Bienvenue sur ma page</p>
</body>
</html>
96
Fichier texte : index.html