1
ATELIER SYSTÈMES 1
LES COMMANDES DE BASE
LINUX
Mr. Mohamed Salah MEDDEB
2
PLAN
1. Travailler en ligne de commande
2. L'éditeur historique du système UNIX
3. Gestion des fichiers
4. Contrôler des flux de texte à l'aide des filtres
5. Utilisation des flux, des tubes (pipes) et des
redirections
6. Recherche sur des fichiers texte avec des
expressions régulières
7. Création, surveillance et destruction de processus
8. Modifier la priorité d'exécution d'un processus
9. Commandes d’administration
3
Travailler en ligne de commande
4
Le système de gestion de fichiers
Les aspects essentiels à bien connaître afin d’appréhender
sereinement un système Linux :
1. « tout est fichier » : les fichiers, les répertoires, les liens, les
disques et autres périphériques,
2. chaque fichier est dans une arborescence unique, dont la
base / est appelée racine ou slash.
 / la racine
 /dev fichiers spéciaux parmi lesquels ceux qui permettent
d’accéder aux périphériques
 /etc ensemble des fichiers de configuration du système
 /lib bibliothèques communes utilisées par les logiciels
exécutables
 /root le répertoire de l’utilisateur privilégié (root).
 /home les répertoires personnels, maisons, des utilisateurs
non privilégiés.
 (….)
5
Le système de gestion de fichiers
6
Interpréteur de commandes
 L’interpréteur de commandes est l'interface entre
l'utilisateur et le système d'exploitation, d'où son nom
anglais «shell».
 Le shell est ainsi chargé de faire l'intermédiaire entre le
système d'exploitation et l'utilisateur grâce aux lignes de
commandes saisies par ce dernier. Son rôle consiste ainsi à
lire la ligne de commande, interpréter sa signification,
exécuter la commande, puis retourner le résultat sur les
sorties.
 Sur la plupart des systèmes, le shell mis à disposition des
utilisateurs est bash.
 Prompts :
[user1@localhost Bureau]$ echo $PS1
[u@h W]$
[root@localhost Bureau]# echo $PS1
[u@h W]$
7
Raccourcis de l’interpréteur de commandes
C fait référence à la touche <contrôle> et M à la touche <Alt>
 Commandes de déplacement — ← et → : déplacement d’un
caractère vers la gauche et la droite
o C-← et C-→ : déplacement d’un mot vers la gauche et la droite
o C-a : début de la ligne
o C-e : fin de la ligne
 Commandes « couper » — C-k : couper du curseur à la fin de la ligne
o C-u : couper du curseur au début de la ligne
o C-w : couper du curseur à l’espace précédent
 Commandes « coller » — C-y : coller le contenu du presse-papier
o M-y : circuler dans le contenu du presse-papier (ne peut être utilisé
qu’après C-y ou M-y)
 Autres commandes d’édition — C-_ : annuler la dernière
édition
o Tab : complète le nom de la commande ou du fichier
8
Notions générales
 Avant de commencer, il faut savoir que Linux est sensible à la
casse (case sensitive en anglais), c'est à dire qu'il distingue les
majuscules des minuscules.
 Toutes les commandes de base sont en minuscules.
 Sous Linux, les chemins sont séparés par des "slash" : /etc//init/xfs
mais jamais des "antislash" etcinitxfs.
 Sous Linux, les fichiers cachés commencent par un point. Par
exemple, ~/.bashrc est un fichier caché, dans le répertoire
personnel de l'utilisateur, qui contient la configuration de son
shell.
9
Chemin et répertoires spéciaux
Un chemin est une adresse d'une ressource. (La ressource étant un
document, une image, une musique, etc.), deux sortes de chemin :
 le chemin absolu (slash en préfixe du chemin): le chemin complet
du ficher à partir de la racine /
 le chemin relatif (absence de slash initial) par apport au dossier
courant ou répertoire personnel.
Répertoires spéciaux :
 « . » : représente le répertoire courant
 « .. » : représente le répertoire parent
 « ~ » : représente le répertoire maison (home) de l'utilisateur
Exemples :
o cat /home/user/Bureau/fichier.txt  Chemin complet
o cat fichier.txt  chemin relatif du répertoire courant (Bureau)
o cat ~/Bureau/fichier.txt  chemin relatif du répertoire personnel
de l’utilisateur user
10
Utiliser les wildcards
 Besoin de manipuler plusieurs fichiers à la fois,
 Par exemple : cas d'un développement en C et pour être sure de
recompiler tous les fichiers sources.
Wildcards Descriptions Exemples
* désigne 0 ou plusieurs caractères x*
? Désigne exactement un seul caractère x? x??
[caractères] Désigne un seul caractère de la liste
[caractères]
x[yz]
[!caractères] Désigne un seul caractère en dehors de la
liste [caractères]
x[!yz]
[a-z] Désigne un seul caractère appartenant à
l'intervalle de caractères défini entre [ ]
x[0-9] x[a-zA-Z]
[!a-z] Désigne un seul caractère n'appartenant pas
à l'intervalle de caractères défini entre [ ]
{frag1,frag2,..} brase expansion file_{one,two,
three}
11
Les droits des fichiers
 On peut distinguer 3 groupements dans rwx r-x r-x :
o les droits d’accès du propriétaire,
o les droits d’accès des membres du groupe du fichier,
o les droits des autres comptes du système.
 Signification :
o r le fichier est accessible en lecture,
o w le fichier est accessible en écriture,
o x le fichier est exécutable.
 Calcul des droits : en binaire en décimal
- - - 000 0
- - x 001 1
- w - 010 2
- w x 011 3
r - - 100 4
r - x 101 5
r w - 110 6
12
Séquences de commandes
 Exécuter séquentiellement des commandes l'une après l'autre :
– cmd1 ; cmd2
 Exécuter cmd2 si et seulement si cmd1 s'est exécutée sans erreur
– cmd1 && cmd2
 Exécuter cmd2 si et seulement si cmd1 a renvoyé une erreur :
– cmd1 || cmd2
 & en fin de commande permet de lancer cette commande en tâche
de fond (background)
– firefox &
13
Variables
 Variables d'environnement : connues de toutes les commandes
lancées depuis le shell.
[user1@localhost Bureau]$ PS1="[t][u]$"
[05:37:53][user1]$
 variable simple :
formation="lpi"
echo $formation
lpi
 Rendre la variable visible pour les shells fils :
export formation
 Afficher toutes les variables d'environnements : env
 Afficher les variables simples et les variables d'environnement :set
 Effacer une variable : unset formation
14
Quelques variables d'environnement bash
Variable Fonction
USER le nom de l'utilisateur courant
UID UID de l'utilisateur courant
HOME Le répertoire de connexion de l'utilisateur courant
? Le code d'erreur de la dernière commande
# Le nombre de paramètres à l'appel du script
1,2.... les paramètres du script
0 le nom du script
PS1 Personnaliser le prompt
15
Quotes et variables
 Quote double : Permet la substitution des variables
$ echo "mon repertoire est $HOME"
mon repertoire de connexion est /home/user
 Quote simple : Désactive l'interprétation des caractères
spéciaux
$ echo 'mon repertoire de connexion est $HOME'
mon repertoire est $HOME
 Quotes inversées : Permet la substitution des commandes
$ echo "mon repertoire courant est `pwd`"
mon repertoire courant est /tmp
16
Raccourcies claviers
 history
 HISTSIZE
 HISTFILE
17
Les commandes d’aide
 apropos Permet de rechercher des pages de manuel par
mot-clé.
Exemple : apropos permissions,
 whatis Affiche la description des pages de manuels.
Exemple : whatis chown,
 man Permet de consulter une page de manuel.
Exemple : man chmod.
18
L'éditeur historique du système
UNIX
19
L'éditeur historique du système UNIX
 x : supprimer caractère
 dd : supprimer la ligne
 u : undo
 ctrl-R : redo
 / : recherche
 n : résultat suivant
 ● w :enregistrer
 ● wq : enregistrer et quitter
Mode Commande
Mode Edition
Mode Exécution
i,a esc
20
Gestion des fichiers
21
Gestion des fichiers
Gestion
des
fichiers
pwd
cd
ls
mkdir
rmdir
touch
cp
mv
rm
22
pwd
La commande pwd affiche le nom absolu du répertoire
courant, En effet, elle permet de répondre à la question «
Où suis-je ? ».
23
ls
La commande ls liste le contenu de répertoires.
Syntaxe: ls [­
options] [ré pertoire1] [répertoire2]
Cette commande accepte un très grand nombre d'options pouvant
être combinées.
 ls : liste les entrées du répertoire courant.
 ls -­
R : liste récursivement tous les répertoires.
 ls -­
a : liste toutes les entrées y compris les entrées cachées.
 ls -­
l : liste les entrées et affiche toutes les informations.
 ls -­
F : liste les entrées et ajoute / derrière les noms de répertoires.
 ls ­
­
--color : liste les entrées avec une couleur différente suivant le
type (fichier exécutable, texte, répertoire, liens...).
24
cd
La commande cd permet le positionnement sur un répertoire
 cd / : positionnement à la racine
 cd .. : positionnement sur le répertoire parent
 cd /usr/X11R6/bin : positionnement depuis la racine sur le
répertoire /usr/X11R6/bin.
 cd ../lib : positionnement à partir du répertoire parent sur le
répertoire /lib.
 cd cd~ ou cd $HOME : positionnement depuis n'importe où sur le
répertoire personnel.
 cd - : positionnement sur le répertoire précédent.
25
mkdir / rmdir
 La commande mkdir permet la création de répertoires.
o mkdir perso créé le répertoire perso dans le répertoire
courant.
o mkdir ../perso créé le répertoire perso dans le répertoire
parent.
o mkdir -p /root/Bureau/a/b/c : créé le répertoire c et réer
les répertoires parents s’ils manquent.
 La commande rmdir permet de supprimer des
répertoires vides
26
cp
La commande cp sert à copier des fichiers.
 -f Effacer les fichiers cibles existants.
 -i Interroger l’utilisateur avant d’écraser des fichiers existant.
 -p Conserver le propriétaire, le groupe, les permissions d’accès
du fichier original
 -R Copier récursivement les répertoires, et gérer correctement
les copies des fichiers spéciaux ou des FIFOs.
 -r Copier récursivement les répertoires mais la gestion
des fichiers spéciaux n’est pas définit
Exemples :
[root@localhost ~]# cp /etc/passwd ./
[root@localhost ~]# cp /etc/passwd /root/Desktop/passwd2
[root@localhost ~]# cp *txt /root/Desktop/fichiersTexte/
[root@localhost ~]# cp –r /et c backUpConfig
27
mv
La commande mv sert soit à déplacer un fichier soit à le
renommer.
 -f Écraser les fichiers de destination existants sans
demander confirmation à l’utilisateur.
 -i Demander la confirmation pour écraser tout fichier
existant
Exemples :
[root@localhost ~]# mv helloWorld.c CodesSources/
[root@localhost ~]# mv -f *.c CodesSourcesC/
28
rm
rm permet de supprimer fichiers et répertoires.
 Parmi les options de cette commande, deux sont intéressantes: ‘r’
permet la Suppression d'un répertoire même non vide et ‘i’
demande confirmation avant suppression. Cette commande est très
dangereuse, c'est pourquoi en général un alias est créé, forçant la
demande de confirmation. Vérifiez qu'il est créé sur votre système
en tapant alias, Vous devriez voir apparaître alias rm='rm -i'. si cet
alias n'existe pas, un bon conseil créez-le. (voir la commande alias).
 L’option -f permet de forcer la suppression
 Exemples:
[root@localhost Bureau]# rm splitout_*
rm : supprimer fichier « splitout_aa » ?
[root@localhost Bureau]# rm –r fich*
rm: détruire `mes-docs/doc2'? y
rm: détruire `mes-docs/doc1'? Y
[root@localhost Bureau]# rm -rf mes_fichiers/
29
Inodes
 Associer à chaque objet du système de fichier un inode (The
identification information for filesystem object)
 Un inode regroupe des informations sur l'objet du système de
fichiers : localisation, date de modification, paramètres de
sécurité....
 Chaque système de fichier ext2 est crée avec un nombre fini
d'inodes calculé selon la taille du système de fichier et d'autres
options passées à la commande mke2fs.
 plusieurs objets du système de fichiers peuvent partager le même
inode : lien physique.
30
Contrôler des flux de texte à
l'aide des filtres
31
Fichier Texte, les filtres
cat, less, more : Afficher le contenu
tail / head Afficher l'enête / enqueue
Sort : Trier les lignes
wc : Afficher le nombre d'octets, de mots et de lignes
nl : Numéroter les lignes
grep : filtrer un fichier
cut : Extraire des champs
32
cat et tac
 Affiche le contenu d'un fichier.
 Exemple fichier1
1 un
2 deux
3 trois
 $ cat fichier1
 $ tac fichier1
33
head et tail
 head : Afficher le début d'un fichier (par défaut les 10
premiers lignes)
Exemple
$ head -3 /var/log/messages
 tail : Afficher la dernière partie d'un fichier (par défaut
les 10 derniers lignes)
Exemples :
$ tail -20 /etc/passwd
$ tail -f /var/log/messages
34
sort
 Trier les lignes d'un fichier texte
 options
o -d : Trier dans l'ordre alphabétique
o -n : Trier dans l'ordre numérique
o -r : Inverser l'ordre
 Exemples :
$ sort /etc/passwd
 trier selon le champs RSS (resident size)
$ ps aux | sort -k 6 -n
35
wc
 Afficher le nombre d'octets, de mots et de lignes d'un
fichier.
 Options
-c : Afficher uniquement le nombre d'octets
-m : Afficher uniquement le nombre de caractères
-l : Afficher uniquement le nombre de lignes
-w : Affiche uniquement le nombre de mots
 Exemples :
$ wc -l fich
$ wc -w fich
$wc fich
36
nl
Numéroter les lignes d'un fichier.
Exemples :
$ nl /etc/passwd
$ nl fichier1 -s')'
37
grep
Afficher uniquement les lignes d’un fichier qui contiennent une
expression particulière et l’afficher selon l’ordre d’apparition dans le
fichier.
 –v afficher toutes les lignes qui ne contiennent pas le motif.
 –n afficher le numéro de ligne dans le fichier auquel on a trouvé le
motif
 –c permet d’afficher uniquement le nombre total de lignes
correspondant au motif
 –l permet d’afficher juste les noms des fichiers dans lesquels un motif
apparaît, sans afficher les occurrences trouvées.
 –m NUM permet de s’arrêter après NUM solutions trouvées
38
cut
 Cette commande extrait des colonnes (option -c) ou des
champs (option -f ) des lignes d’un fichier ou de l’entrée
standard. Dans le cas de l’option -f, il est possible de lui
spécifier le délimiteur à chercher en utilisant l’option -
d. Le délimiteur par défaut est la tabulation.
o Format de la liste :
o n le nième.
o n,m le nième et mième.
o n-m du nième au mième.
o n- du nième à la fin
o -n du 1er au nième
39
Fichier Texte, les filtres (2)
Fichier
Texte
paste:
Regrouper les
lignes
join:
Jointure des
lignes
split :
Découper un
fichier
expand:
Convertir les
tabulations en
espaces
tr: Convertir
des
caractères
40
paste
Regrouper les lignes de différents fichiers.
Exemple :
–file1
1
2
3
– file2
A
B 
C
$ paste file1 file2
1 A
2 B
3 C
$ paste -d'@' file1 file2
1@A
2@B
3@C
$ paste -s file1 file2
1 2 3
A B C
41
join
Fusionner les lignes de deux fichiers ayant un champ commun.
Exemple :
– file1 :
1 one
2 two
3 three
– file2 :
1 11
2 22
3 33
$ join -j 1 file1 file2
1 one 11
2 two 22
3 three 33
42
split
Découper un fichier en différentes partie.
 Exemple1 :
– file1 :
1 one
2 two
3 three
4 four
5 five
6 six
$ split -2 file1 splitout_
 créer trois fichiers splitout_aa, splitout_ab, et splitout_ac
 Exemple 2 : Découper un fichier en plusieurs de taille maximale
d'une
disquette :
$ split -b 1.4m grosfichier petitfichier_
43
expand
 Convertir les tabulations d'un fichier en espaces.
 unexpand fait le processus inverse.
Exemple : convertir les tabulations en 2 espaces:
$ expand -t 2 monfichier
44
tr
Pour effectuer des conversions de caractères (exp
minuscule/majuscule, ...)
Exemples :
$ cat file1 | tr 'a-z' 'A-Z' OU $ cat file1 | tr '[:lower:]' '[:upper:]‘
o la suppression des accents d'un texte :
$ cat file1 | tr 'àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ' 'aceeeeiioouuACEEEEIIOOUU‘
o Convertir les séquences de sauts de lignes en un seul saut de ligne
(ceci supprime les lignes blanches) :
$ cat file1 | tr -s 'n'
45
Utilisation des flux, des tubes
(pipes) et des redirections
46
Les tubes (pipes)
 Les tubes Unix permettent de combiner des commandes en
envoyant le résultat d’une commande à une autre.
 Linux possède des mécanismes permettant de rediriger les entrées-
sorties standards vers des fichiers. Ainsi, l'utilisation du caractère
«>» permet de rediriger la sortie standard d'une commande située à
gauche vers le fichier situé à droite. La redirection «>» a pour but
de créer un nouveau fichier. Ainsi, si un fichier du même nom
existait, celui-ci sera écrasé. L'emploi d'un double caractère «>>»
permet de concaténer la sortie standard vers le fichier.
 De manière analogue, le caractère «<» indique une redirection de
l'entrée standard.
 Trois types d'entrées / sorties
o Entrée standard (stdin) : Descripteur 0
o Sortie standard (stdout) : Descripteur 1
o Sortie d'erreur standard (stderr) : Descripteur
47
Redirection
Fonction de redirection Syntaxe
Envoyer stdout vers file $ cmd > file ou $ cmd 1> file
Envoyer stderr vers file $ cmd 2> file
Envoyer stdout et stderr vers file $ cmd > file 2>&1
Envoyer stdout vers file1 et stderr
vers file 2
$ cmd > file1 2>file2
Recevoir stdin à partie de file $cmd < file
Ajouter stdout à la fin du file $ cmd >> file ou $ cmd 1>> file
Envoyer stderr à la fin du file $ cmd 2>> file
Envoyer stdout et stderr à la fin du
file
$ cmd >> file 2>&1
48
Les tubes (pipe)
 La sortie d'une commande devient l'entrée d'une autre.
 Tubes et redirections peuvent être combinées sur une ligne
de commande selon les résultats qu'on veut obtenir.
 Pipe stdout de cmd1 vers cmd2 :
$ cmd1 | cmd2
 Pipe stdout et stderr de cmd1 vers cmd2.
$ cmd1 2>&1 | cmd2
 Afficher les 6 premières lignes du fichier /etc/passwd une fois
ce fichier trié par ordre alphabétique
$ sort /etc/passwd | head -6
 La commande tee permet de dupliquer le flux de données en
sortie :
$ sort /etc/passwd | tee res1 | head -6
49
tee
 tee permet de lire depuis l'entrée standard et écrire sur la
sortie standard tout en écrivant dans des fichiers. Elle est
notamment utile dans des tubes pour relayer la sortie à une
nouvelle commande tout en la sauvegardant dans un fichier.
50
xargs
 cmd1 | xargs cmd2
Permet de passer en arguments de la commande cmd2, le
résultat de la commande cmd1.
Exemples :
$ find /tmp -name core -type f -print | xargs /bin/rm -f
$ find /etc/ -name *.conf | xargs grep 'Linux'
51
Recherche sur des fichiers
texte avec des expressions
régulières
52
Expression régulière
 Recherche (texte) sur le contenu des fichiers, selon un modèle
(motif) : « les expressions régulières » regex
 Une expression régulières (regular expression) est un motif qui
permet de décrire un ensemble de chaînes.
 Outils : grep, egrep, sed, awk, Perl, java ...
 grep [options] regex [fichiers]
 options :
o -c : Afficher le nombre de lignes qui satisfait regex, pas les lignes
o -h :Ne pas afficher le nom des fichiers dans les résultats lorsque
plusieurs fichiers sont parcourus.
o -i : Ignorer les différences majuscules/minuscules dans la
recherche.
o -n : Ajouter à chaque ligne de sortie un préfixe contenant son
numéro dans le fichier
o -v : Afficher les lignes qui ne satisfait pas regex
o -E : Interpréter regex comme une expression régulière étendu.
egrep
53
Expression régulière : position
54
Expression régulière : groupe de caractères
55
Expression régulière : Les modificateurs
56
Filesystem Hierarchy Standard
 Norme de la hiérarchie des systèmes de fichiers .
 Définit l'arborescence et le contenu des principaux
répertoires des systèmes de fichiers des systèmes
d'exploitation GNU/Linux.
 Version 2.3 http://www.pathname.com/fhs/
 Principe : Les données sur un système peuvent être
classées selon deux catégories :
o Données partagées versus non partagées.
o Données statiques versus dynamiques.
57
Filesystem Hierarchy Standard : Boite d'outils
 find : commande classique, n'utilise pas de base de
données indexée
 locate, slocate : utilise une base de données (plus
rapide que find)
 which : recherche l'emplacement d'un programme par
rapport au contenu de la variable PATH.
 whereis : Rechercher les fichiers exécutables, les
sources et les pages de manuel d'une commande.
 whatis : utilise une base de données qui contient une
courte description.
58
find
# find /bin -perm -4001 -exec ls -lad {} ;
59
locate et slocate
 Utilisent une base de données, mis à jour automatiquement
par cron ou manuellement par la commande updatedb
 les options de la commande updatedb sont décrit dans le
fichier updatedb.conf :
o les types de systèmes de fichiers à exclure (PRUNEFS)
o les fichiers à exclure (PRUNEPATHS)
o etc ..
 slocate : est la version sécurisé de locate, elle n'affiche pas
dans le résultat les fichiers auxquels l'utilisateur n'auraient
pas accès
60
locate et slocate : exemples
# locate csh
/home/jdean/.tcshrc
/root/.cshrc
/root/.tcshrc
/usr/bin/sun-message.csh
/usr/doc/tcsh-6.08.00
/usr/doc/tcsh-6.08.00/FAQ
61
which
 Utiliser PATH pour trouver l'emplacement d'un
programme.
 Utile pour le troubleshooting
 Exemple :
# which java
/usr/bin/java
62
whereis
Rechercher les fichiers exécutables, les fichiers de
configuration, les sources et les pages de manuel
d'une commande.
Exemple :
$ whereis pam
pam: /etc/pam.d
/usr/include/pam.h
/usr/share/man/man5/pam.5.gz
/usr/share/man/man8/pam.8.gz
63
whatis
Syntaxe :
whatis motclés
Rechercher exactement motsclés dans une base données.
Exemple
$ whatis pam ls
pam (5) - see
http://netpbm.sourceforge.net/doc//pam.html
PAM (8) - Pluggable Authentication Modules for Linux
pam (8) - Pluggable Authentication Modules for Linux
ls (1) - list directory contents
ls (1p) - list directory contents
makewhatis : création de la base de données (root)
64
Commandes de connexion et d'administration
 exit
Cette commande permet d'interrompre une session en
cours, elle déconnecte l'utilisateur du système. La
combinaison de touches ''CTRL+D'' joue le même rôle.
 id
Permet de connaître les renseignements identifiant
l’utilisateur.
 who et whoami
La commande who permet de savoir qui est connecté à
votre machine. Avec l'option «-q» le nombre d'utilisateurs
connectés est fourni.
[root@localhost ~]# who
root :0 2013-04-17 14:47
root pts/2 2013-04-17 16:30 (:0.0)
65
Commandes de connexion et d'administration
 su
Permet à tout utilisateur de passer en mode Super
Utilisateur. Avec l'option''- '' les fichiers profile sont pris
en compte.
 passwd
Permet de changer le mot de passe de l’utilisateur.
[root@localhost ~]# passwd suptech
Changing password for user suptech.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
66
Commandes d'info. sur le matériel et le système
 df
df (disk free) affiche l'espace libre sur les systèmes de
fichiers montés
root@localhost ~]# df -m
Sys. de fich. 1M-blocs Occupé Disponible Capacité
Monté sur
/dev/sda1 17849 3542 13387
21% /
Tmpfs
 du
Affiche l'espace mémoire utilisé par un fichier ou un
répertoire..
[root@localhost ~]# du -h /etc/passwd
4,0K /etc/passwd

Presentation_N1_Introduction aux systèmes d’exploitation.ppt

  • 1.
    1 ATELIER SYSTÈMES 1 LESCOMMANDES DE BASE LINUX Mr. Mohamed Salah MEDDEB
  • 2.
    2 PLAN 1. Travailler enligne de commande 2. L'éditeur historique du système UNIX 3. Gestion des fichiers 4. Contrôler des flux de texte à l'aide des filtres 5. Utilisation des flux, des tubes (pipes) et des redirections 6. Recherche sur des fichiers texte avec des expressions régulières 7. Création, surveillance et destruction de processus 8. Modifier la priorité d'exécution d'un processus 9. Commandes d’administration
  • 3.
  • 4.
    4 Le système degestion de fichiers Les aspects essentiels à bien connaître afin d’appréhender sereinement un système Linux : 1. « tout est fichier » : les fichiers, les répertoires, les liens, les disques et autres périphériques, 2. chaque fichier est dans une arborescence unique, dont la base / est appelée racine ou slash.  / la racine  /dev fichiers spéciaux parmi lesquels ceux qui permettent d’accéder aux périphériques  /etc ensemble des fichiers de configuration du système  /lib bibliothèques communes utilisées par les logiciels exécutables  /root le répertoire de l’utilisateur privilégié (root).  /home les répertoires personnels, maisons, des utilisateurs non privilégiés.  (….)
  • 5.
    5 Le système degestion de fichiers
  • 6.
    6 Interpréteur de commandes L’interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell».  Le shell est ainsi chargé de faire l'intermédiaire entre le système d'exploitation et l'utilisateur grâce aux lignes de commandes saisies par ce dernier. Son rôle consiste ainsi à lire la ligne de commande, interpréter sa signification, exécuter la commande, puis retourner le résultat sur les sorties.  Sur la plupart des systèmes, le shell mis à disposition des utilisateurs est bash.  Prompts : [user1@localhost Bureau]$ echo $PS1 [u@h W]$ [root@localhost Bureau]# echo $PS1 [u@h W]$
  • 7.
    7 Raccourcis de l’interpréteurde commandes C fait référence à la touche <contrôle> et M à la touche <Alt>  Commandes de déplacement — ← et → : déplacement d’un caractère vers la gauche et la droite o C-← et C-→ : déplacement d’un mot vers la gauche et la droite o C-a : début de la ligne o C-e : fin de la ligne  Commandes « couper » — C-k : couper du curseur à la fin de la ligne o C-u : couper du curseur au début de la ligne o C-w : couper du curseur à l’espace précédent  Commandes « coller » — C-y : coller le contenu du presse-papier o M-y : circuler dans le contenu du presse-papier (ne peut être utilisé qu’après C-y ou M-y)  Autres commandes d’édition — C-_ : annuler la dernière édition o Tab : complète le nom de la commande ou du fichier
  • 8.
    8 Notions générales  Avantde commencer, il faut savoir que Linux est sensible à la casse (case sensitive en anglais), c'est à dire qu'il distingue les majuscules des minuscules.  Toutes les commandes de base sont en minuscules.  Sous Linux, les chemins sont séparés par des "slash" : /etc//init/xfs mais jamais des "antislash" etcinitxfs.  Sous Linux, les fichiers cachés commencent par un point. Par exemple, ~/.bashrc est un fichier caché, dans le répertoire personnel de l'utilisateur, qui contient la configuration de son shell.
  • 9.
    9 Chemin et répertoiresspéciaux Un chemin est une adresse d'une ressource. (La ressource étant un document, une image, une musique, etc.), deux sortes de chemin :  le chemin absolu (slash en préfixe du chemin): le chemin complet du ficher à partir de la racine /  le chemin relatif (absence de slash initial) par apport au dossier courant ou répertoire personnel. Répertoires spéciaux :  « . » : représente le répertoire courant  « .. » : représente le répertoire parent  « ~ » : représente le répertoire maison (home) de l'utilisateur Exemples : o cat /home/user/Bureau/fichier.txt  Chemin complet o cat fichier.txt  chemin relatif du répertoire courant (Bureau) o cat ~/Bureau/fichier.txt  chemin relatif du répertoire personnel de l’utilisateur user
  • 10.
    10 Utiliser les wildcards Besoin de manipuler plusieurs fichiers à la fois,  Par exemple : cas d'un développement en C et pour être sure de recompiler tous les fichiers sources. Wildcards Descriptions Exemples * désigne 0 ou plusieurs caractères x* ? Désigne exactement un seul caractère x? x?? [caractères] Désigne un seul caractère de la liste [caractères] x[yz] [!caractères] Désigne un seul caractère en dehors de la liste [caractères] x[!yz] [a-z] Désigne un seul caractère appartenant à l'intervalle de caractères défini entre [ ] x[0-9] x[a-zA-Z] [!a-z] Désigne un seul caractère n'appartenant pas à l'intervalle de caractères défini entre [ ] {frag1,frag2,..} brase expansion file_{one,two, three}
  • 11.
    11 Les droits desfichiers  On peut distinguer 3 groupements dans rwx r-x r-x : o les droits d’accès du propriétaire, o les droits d’accès des membres du groupe du fichier, o les droits des autres comptes du système.  Signification : o r le fichier est accessible en lecture, o w le fichier est accessible en écriture, o x le fichier est exécutable.  Calcul des droits : en binaire en décimal - - - 000 0 - - x 001 1 - w - 010 2 - w x 011 3 r - - 100 4 r - x 101 5 r w - 110 6
  • 12.
    12 Séquences de commandes Exécuter séquentiellement des commandes l'une après l'autre : – cmd1 ; cmd2  Exécuter cmd2 si et seulement si cmd1 s'est exécutée sans erreur – cmd1 && cmd2  Exécuter cmd2 si et seulement si cmd1 a renvoyé une erreur : – cmd1 || cmd2  & en fin de commande permet de lancer cette commande en tâche de fond (background) – firefox &
  • 13.
    13 Variables  Variables d'environnement: connues de toutes les commandes lancées depuis le shell. [user1@localhost Bureau]$ PS1="[t][u]$" [05:37:53][user1]$  variable simple : formation="lpi" echo $formation lpi  Rendre la variable visible pour les shells fils : export formation  Afficher toutes les variables d'environnements : env  Afficher les variables simples et les variables d'environnement :set  Effacer une variable : unset formation
  • 14.
    14 Quelques variables d'environnementbash Variable Fonction USER le nom de l'utilisateur courant UID UID de l'utilisateur courant HOME Le répertoire de connexion de l'utilisateur courant ? Le code d'erreur de la dernière commande # Le nombre de paramètres à l'appel du script 1,2.... les paramètres du script 0 le nom du script PS1 Personnaliser le prompt
  • 15.
    15 Quotes et variables Quote double : Permet la substitution des variables $ echo "mon repertoire est $HOME" mon repertoire de connexion est /home/user  Quote simple : Désactive l'interprétation des caractères spéciaux $ echo 'mon repertoire de connexion est $HOME' mon repertoire est $HOME  Quotes inversées : Permet la substitution des commandes $ echo "mon repertoire courant est `pwd`" mon repertoire courant est /tmp
  • 16.
  • 17.
    17 Les commandes d’aide apropos Permet de rechercher des pages de manuel par mot-clé. Exemple : apropos permissions,  whatis Affiche la description des pages de manuels. Exemple : whatis chown,  man Permet de consulter une page de manuel. Exemple : man chmod.
  • 18.
  • 19.
    19 L'éditeur historique dusystème UNIX  x : supprimer caractère  dd : supprimer la ligne  u : undo  ctrl-R : redo  / : recherche  n : résultat suivant  ● w :enregistrer  ● wq : enregistrer et quitter Mode Commande Mode Edition Mode Exécution i,a esc
  • 20.
  • 21.
  • 22.
    22 pwd La commande pwdaffiche le nom absolu du répertoire courant, En effet, elle permet de répondre à la question « Où suis-je ? ».
  • 23.
    23 ls La commande lsliste le contenu de répertoires. Syntaxe: ls [­ options] [ré pertoire1] [répertoire2] Cette commande accepte un très grand nombre d'options pouvant être combinées.  ls : liste les entrées du répertoire courant.  ls -­ R : liste récursivement tous les répertoires.  ls -­ a : liste toutes les entrées y compris les entrées cachées.  ls -­ l : liste les entrées et affiche toutes les informations.  ls -­ F : liste les entrées et ajoute / derrière les noms de répertoires.  ls ­ ­ --color : liste les entrées avec une couleur différente suivant le type (fichier exécutable, texte, répertoire, liens...).
  • 24.
    24 cd La commande cdpermet le positionnement sur un répertoire  cd / : positionnement à la racine  cd .. : positionnement sur le répertoire parent  cd /usr/X11R6/bin : positionnement depuis la racine sur le répertoire /usr/X11R6/bin.  cd ../lib : positionnement à partir du répertoire parent sur le répertoire /lib.  cd cd~ ou cd $HOME : positionnement depuis n'importe où sur le répertoire personnel.  cd - : positionnement sur le répertoire précédent.
  • 25.
    25 mkdir / rmdir La commande mkdir permet la création de répertoires. o mkdir perso créé le répertoire perso dans le répertoire courant. o mkdir ../perso créé le répertoire perso dans le répertoire parent. o mkdir -p /root/Bureau/a/b/c : créé le répertoire c et réer les répertoires parents s’ils manquent.  La commande rmdir permet de supprimer des répertoires vides
  • 26.
    26 cp La commande cpsert à copier des fichiers.  -f Effacer les fichiers cibles existants.  -i Interroger l’utilisateur avant d’écraser des fichiers existant.  -p Conserver le propriétaire, le groupe, les permissions d’accès du fichier original  -R Copier récursivement les répertoires, et gérer correctement les copies des fichiers spéciaux ou des FIFOs.  -r Copier récursivement les répertoires mais la gestion des fichiers spéciaux n’est pas définit Exemples : [root@localhost ~]# cp /etc/passwd ./ [root@localhost ~]# cp /etc/passwd /root/Desktop/passwd2 [root@localhost ~]# cp *txt /root/Desktop/fichiersTexte/ [root@localhost ~]# cp –r /et c backUpConfig
  • 27.
    27 mv La commande mvsert soit à déplacer un fichier soit à le renommer.  -f Écraser les fichiers de destination existants sans demander confirmation à l’utilisateur.  -i Demander la confirmation pour écraser tout fichier existant Exemples : [root@localhost ~]# mv helloWorld.c CodesSources/ [root@localhost ~]# mv -f *.c CodesSourcesC/
  • 28.
    28 rm rm permet desupprimer fichiers et répertoires.  Parmi les options de cette commande, deux sont intéressantes: ‘r’ permet la Suppression d'un répertoire même non vide et ‘i’ demande confirmation avant suppression. Cette commande est très dangereuse, c'est pourquoi en général un alias est créé, forçant la demande de confirmation. Vérifiez qu'il est créé sur votre système en tapant alias, Vous devriez voir apparaître alias rm='rm -i'. si cet alias n'existe pas, un bon conseil créez-le. (voir la commande alias).  L’option -f permet de forcer la suppression  Exemples: [root@localhost Bureau]# rm splitout_* rm : supprimer fichier « splitout_aa » ? [root@localhost Bureau]# rm –r fich* rm: détruire `mes-docs/doc2'? y rm: détruire `mes-docs/doc1'? Y [root@localhost Bureau]# rm -rf mes_fichiers/
  • 29.
    29 Inodes  Associer àchaque objet du système de fichier un inode (The identification information for filesystem object)  Un inode regroupe des informations sur l'objet du système de fichiers : localisation, date de modification, paramètres de sécurité....  Chaque système de fichier ext2 est crée avec un nombre fini d'inodes calculé selon la taille du système de fichier et d'autres options passées à la commande mke2fs.  plusieurs objets du système de fichiers peuvent partager le même inode : lien physique.
  • 30.
    30 Contrôler des fluxde texte à l'aide des filtres
  • 31.
    31 Fichier Texte, lesfiltres cat, less, more : Afficher le contenu tail / head Afficher l'enête / enqueue Sort : Trier les lignes wc : Afficher le nombre d'octets, de mots et de lignes nl : Numéroter les lignes grep : filtrer un fichier cut : Extraire des champs
  • 32.
    32 cat et tac Affiche le contenu d'un fichier.  Exemple fichier1 1 un 2 deux 3 trois  $ cat fichier1  $ tac fichier1
  • 33.
    33 head et tail head : Afficher le début d'un fichier (par défaut les 10 premiers lignes) Exemple $ head -3 /var/log/messages  tail : Afficher la dernière partie d'un fichier (par défaut les 10 derniers lignes) Exemples : $ tail -20 /etc/passwd $ tail -f /var/log/messages
  • 34.
    34 sort  Trier leslignes d'un fichier texte  options o -d : Trier dans l'ordre alphabétique o -n : Trier dans l'ordre numérique o -r : Inverser l'ordre  Exemples : $ sort /etc/passwd  trier selon le champs RSS (resident size) $ ps aux | sort -k 6 -n
  • 35.
    35 wc  Afficher lenombre d'octets, de mots et de lignes d'un fichier.  Options -c : Afficher uniquement le nombre d'octets -m : Afficher uniquement le nombre de caractères -l : Afficher uniquement le nombre de lignes -w : Affiche uniquement le nombre de mots  Exemples : $ wc -l fich $ wc -w fich $wc fich
  • 36.
    36 nl Numéroter les lignesd'un fichier. Exemples : $ nl /etc/passwd $ nl fichier1 -s')'
  • 37.
    37 grep Afficher uniquement leslignes d’un fichier qui contiennent une expression particulière et l’afficher selon l’ordre d’apparition dans le fichier.  –v afficher toutes les lignes qui ne contiennent pas le motif.  –n afficher le numéro de ligne dans le fichier auquel on a trouvé le motif  –c permet d’afficher uniquement le nombre total de lignes correspondant au motif  –l permet d’afficher juste les noms des fichiers dans lesquels un motif apparaît, sans afficher les occurrences trouvées.  –m NUM permet de s’arrêter après NUM solutions trouvées
  • 38.
    38 cut  Cette commandeextrait des colonnes (option -c) ou des champs (option -f ) des lignes d’un fichier ou de l’entrée standard. Dans le cas de l’option -f, il est possible de lui spécifier le délimiteur à chercher en utilisant l’option - d. Le délimiteur par défaut est la tabulation. o Format de la liste : o n le nième. o n,m le nième et mième. o n-m du nième au mième. o n- du nième à la fin o -n du 1er au nième
  • 39.
    39 Fichier Texte, lesfiltres (2) Fichier Texte paste: Regrouper les lignes join: Jointure des lignes split : Découper un fichier expand: Convertir les tabulations en espaces tr: Convertir des caractères
  • 40.
    40 paste Regrouper les lignesde différents fichiers. Exemple : –file1 1 2 3 – file2 A B  C $ paste file1 file2 1 A 2 B 3 C $ paste -d'@' file1 file2 1@A 2@B 3@C $ paste -s file1 file2 1 2 3 A B C
  • 41.
    41 join Fusionner les lignesde deux fichiers ayant un champ commun. Exemple : – file1 : 1 one 2 two 3 three – file2 : 1 11 2 22 3 33 $ join -j 1 file1 file2 1 one 11 2 two 22 3 three 33
  • 42.
    42 split Découper un fichieren différentes partie.  Exemple1 : – file1 : 1 one 2 two 3 three 4 four 5 five 6 six $ split -2 file1 splitout_  créer trois fichiers splitout_aa, splitout_ab, et splitout_ac  Exemple 2 : Découper un fichier en plusieurs de taille maximale d'une disquette : $ split -b 1.4m grosfichier petitfichier_
  • 43.
    43 expand  Convertir lestabulations d'un fichier en espaces.  unexpand fait le processus inverse. Exemple : convertir les tabulations en 2 espaces: $ expand -t 2 monfichier
  • 44.
    44 tr Pour effectuer desconversions de caractères (exp minuscule/majuscule, ...) Exemples : $ cat file1 | tr 'a-z' 'A-Z' OU $ cat file1 | tr '[:lower:]' '[:upper:]‘ o la suppression des accents d'un texte : $ cat file1 | tr 'àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ' 'aceeeeiioouuACEEEEIIOOUU‘ o Convertir les séquences de sauts de lignes en un seul saut de ligne (ceci supprime les lignes blanches) : $ cat file1 | tr -s 'n'
  • 45.
    45 Utilisation des flux,des tubes (pipes) et des redirections
  • 46.
    46 Les tubes (pipes) Les tubes Unix permettent de combiner des commandes en envoyant le résultat d’une commande à une autre.  Linux possède des mécanismes permettant de rediriger les entrées- sorties standards vers des fichiers. Ainsi, l'utilisation du caractère «>» permet de rediriger la sortie standard d'une commande située à gauche vers le fichier situé à droite. La redirection «>» a pour but de créer un nouveau fichier. Ainsi, si un fichier du même nom existait, celui-ci sera écrasé. L'emploi d'un double caractère «>>» permet de concaténer la sortie standard vers le fichier.  De manière analogue, le caractère «<» indique une redirection de l'entrée standard.  Trois types d'entrées / sorties o Entrée standard (stdin) : Descripteur 0 o Sortie standard (stdout) : Descripteur 1 o Sortie d'erreur standard (stderr) : Descripteur
  • 47.
    47 Redirection Fonction de redirectionSyntaxe Envoyer stdout vers file $ cmd > file ou $ cmd 1> file Envoyer stderr vers file $ cmd 2> file Envoyer stdout et stderr vers file $ cmd > file 2>&1 Envoyer stdout vers file1 et stderr vers file 2 $ cmd > file1 2>file2 Recevoir stdin à partie de file $cmd < file Ajouter stdout à la fin du file $ cmd >> file ou $ cmd 1>> file Envoyer stderr à la fin du file $ cmd 2>> file Envoyer stdout et stderr à la fin du file $ cmd >> file 2>&1
  • 48.
    48 Les tubes (pipe) La sortie d'une commande devient l'entrée d'une autre.  Tubes et redirections peuvent être combinées sur une ligne de commande selon les résultats qu'on veut obtenir.  Pipe stdout de cmd1 vers cmd2 : $ cmd1 | cmd2  Pipe stdout et stderr de cmd1 vers cmd2. $ cmd1 2>&1 | cmd2  Afficher les 6 premières lignes du fichier /etc/passwd une fois ce fichier trié par ordre alphabétique $ sort /etc/passwd | head -6  La commande tee permet de dupliquer le flux de données en sortie : $ sort /etc/passwd | tee res1 | head -6
  • 49.
    49 tee  tee permetde lire depuis l'entrée standard et écrire sur la sortie standard tout en écrivant dans des fichiers. Elle est notamment utile dans des tubes pour relayer la sortie à une nouvelle commande tout en la sauvegardant dans un fichier.
  • 50.
    50 xargs  cmd1 |xargs cmd2 Permet de passer en arguments de la commande cmd2, le résultat de la commande cmd1. Exemples : $ find /tmp -name core -type f -print | xargs /bin/rm -f $ find /etc/ -name *.conf | xargs grep 'Linux'
  • 51.
    51 Recherche sur desfichiers texte avec des expressions régulières
  • 52.
    52 Expression régulière  Recherche(texte) sur le contenu des fichiers, selon un modèle (motif) : « les expressions régulières » regex  Une expression régulières (regular expression) est un motif qui permet de décrire un ensemble de chaînes.  Outils : grep, egrep, sed, awk, Perl, java ...  grep [options] regex [fichiers]  options : o -c : Afficher le nombre de lignes qui satisfait regex, pas les lignes o -h :Ne pas afficher le nom des fichiers dans les résultats lorsque plusieurs fichiers sont parcourus. o -i : Ignorer les différences majuscules/minuscules dans la recherche. o -n : Ajouter à chaque ligne de sortie un préfixe contenant son numéro dans le fichier o -v : Afficher les lignes qui ne satisfait pas regex o -E : Interpréter regex comme une expression régulière étendu. egrep
  • 53.
  • 54.
    54 Expression régulière :groupe de caractères
  • 55.
    55 Expression régulière :Les modificateurs
  • 56.
    56 Filesystem Hierarchy Standard Norme de la hiérarchie des systèmes de fichiers .  Définit l'arborescence et le contenu des principaux répertoires des systèmes de fichiers des systèmes d'exploitation GNU/Linux.  Version 2.3 http://www.pathname.com/fhs/  Principe : Les données sur un système peuvent être classées selon deux catégories : o Données partagées versus non partagées. o Données statiques versus dynamiques.
  • 57.
    57 Filesystem Hierarchy Standard: Boite d'outils  find : commande classique, n'utilise pas de base de données indexée  locate, slocate : utilise une base de données (plus rapide que find)  which : recherche l'emplacement d'un programme par rapport au contenu de la variable PATH.  whereis : Rechercher les fichiers exécutables, les sources et les pages de manuel d'une commande.  whatis : utilise une base de données qui contient une courte description.
  • 58.
    58 find # find /bin-perm -4001 -exec ls -lad {} ;
  • 59.
    59 locate et slocate Utilisent une base de données, mis à jour automatiquement par cron ou manuellement par la commande updatedb  les options de la commande updatedb sont décrit dans le fichier updatedb.conf : o les types de systèmes de fichiers à exclure (PRUNEFS) o les fichiers à exclure (PRUNEPATHS) o etc ..  slocate : est la version sécurisé de locate, elle n'affiche pas dans le résultat les fichiers auxquels l'utilisateur n'auraient pas accès
  • 60.
    60 locate et slocate: exemples # locate csh /home/jdean/.tcshrc /root/.cshrc /root/.tcshrc /usr/bin/sun-message.csh /usr/doc/tcsh-6.08.00 /usr/doc/tcsh-6.08.00/FAQ
  • 61.
    61 which  Utiliser PATHpour trouver l'emplacement d'un programme.  Utile pour le troubleshooting  Exemple : # which java /usr/bin/java
  • 62.
    62 whereis Rechercher les fichiersexécutables, les fichiers de configuration, les sources et les pages de manuel d'une commande. Exemple : $ whereis pam pam: /etc/pam.d /usr/include/pam.h /usr/share/man/man5/pam.5.gz /usr/share/man/man8/pam.8.gz
  • 63.
    63 whatis Syntaxe : whatis motclés Rechercherexactement motsclés dans une base données. Exemple $ whatis pam ls pam (5) - see http://netpbm.sourceforge.net/doc//pam.html PAM (8) - Pluggable Authentication Modules for Linux pam (8) - Pluggable Authentication Modules for Linux ls (1) - list directory contents ls (1p) - list directory contents makewhatis : création de la base de données (root)
  • 64.
    64 Commandes de connexionet d'administration  exit Cette commande permet d'interrompre une session en cours, elle déconnecte l'utilisateur du système. La combinaison de touches ''CTRL+D'' joue le même rôle.  id Permet de connaître les renseignements identifiant l’utilisateur.  who et whoami La commande who permet de savoir qui est connecté à votre machine. Avec l'option «-q» le nombre d'utilisateurs connectés est fourni. [root@localhost ~]# who root :0 2013-04-17 14:47 root pts/2 2013-04-17 16:30 (:0.0)
  • 65.
    65 Commandes de connexionet d'administration  su Permet à tout utilisateur de passer en mode Super Utilisateur. Avec l'option''- '' les fichiers profile sont pris en compte.  passwd Permet de changer le mot de passe de l’utilisateur. [root@localhost ~]# passwd suptech Changing password for user suptech. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully.
  • 66.
    66 Commandes d'info. surle matériel et le système  df df (disk free) affiche l'espace libre sur les systèmes de fichiers montés root@localhost ~]# df -m Sys. de fich. 1M-blocs Occupé Disponible Capacité Monté sur /dev/sda1 17849 3542 13387 21% / Tmpfs  du Affiche l'espace mémoire utilisé par un fichier ou un répertoire.. [root@localhost ~]# du -h /etc/passwd 4,0K /etc/passwd