Vous êtes sur la page 1sur 11

Faculté des sciences

Département d’informatique
Document de Synthèse sur Linux
élaboré par l’équipe du module réseaux 2005-2006

1. Commandes fondamentales
• La commande man : manuel en ligne d’une commande
Pour avoir de l’aide sur une commande, on tape la commande suivie de --help (Exemple :$ ls --help).
On peut aussi consulter les pages de manuel (qui sont plus complètes) en tapant man suivi du nom de
la commande (Ex: $man ls ).
• La commande pwd : où suis-je ?
La commande pwd affiche le répertoire courant.
• La commande ls : lister les fichiers d'un répertoire
Elle permet de lister le contenu d'un répertoire. Beaucoup d'options sont disponibles dont certaines
sont très intéressantes:
$ls (Sans option) liste les fichiers en plusieurs colonnes.
$ls -l liste des fichiers avec les permissions d'accès.
$ls -a liste des tous les fichiers, y compris les fichiers cachés (les fichiers cachés
sont
ceux dont le nom commence par un point).
$ls -s affiche la taille de chaque fichier en bloc de 1Ko
$ls -i affiche le n° d’index (i-node) de chaque fichier à gauche de son nom
$ls | more liste écran par écran.
• La commande cat : affichage ininterrompu d'un fichier texte
La commande cat permet d’afficher sans interruption un fichier ou plusieurs fichiers.
$ cat fichier1 fichier2 (affiche fichier1 et fichier2)
• La commande tail : afficher la dernière partie (par défaut : 10 lignes) de chacun des fichiers
indiqués.
• La commande head : afficher la 1ère partie (par défaut : 10 lignes) de chacun des fichiers
indiqués.

• La commande more : affichage page par page d'un fichier


Permet d'afficher un fichier page par page, ainsi que d'autres fonctions spéciales. Les principales
commandes sont :
q pour sortir
Entrée pour passer à la ligne suivante
Espace pour passer à la page suivante
b pour remonter à la page précédente
n pour poursuivre la recherche d'une chaîne
/ suivi d'une chaîne et de la touche Entrée: pour rechercher une chaîne
h aide
• La commande cd : se déplacer dans les répertoires
La commande cd permet de se déplacer dans les répertoires tant que les permissions le permettent.

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique
$cd /home entrer dans le répertoire /home s’il existe.
$cd.. remonte au répertoire parent.
$cd / remonte à la racine.
$cd revenir au répertoire par défaut de l'utilisateur, ~ ou $HOME.
• La commande mkdir : créer un répertoire
• La commande cp : copier un fichier
• la commande rm : destruction d'un fichier
La commande rm permet de détruire un ou plusieurs fichier ou liens physiques du répertoire courant.
Un fichier supprimé sous Linux ne peut pas être récupéré.
$rm fichier efface un fichier
$rm * efface tous les fichiers du répertoire.
$rm -i fichier1 fichier2 fichier3 demande confirmation de l'effacement de chaque fichier.
$rm -r NomRep suppression récursive du répertoire NomRep et de tous ses sous-répertoires,
• La commande mv : déplacer ou renommer un fichier
• La commande find : rechercher des fichiers
La commande find permet de trouver des fichiers depuis une racine spécifiée suivant plusieurs
critères (-name, Nom; -mode, dernière modification, ...).
$find . / -name ‘*f*’ –print Recherche les fichiers ayant un f dans leur nom dans
tout le disque (/)
• La commande grep : recherche de motif dans un fichier
grep est une commande permettant de trouver rapidement et facilement des motifs (expressions
régulières) dans un ou plusieurs fichiers.
Pour trouver la chaîne root dans le fichier /etc/passwd, on écrira
$grep root /etc/passwd
L'option -i permet d'ignorer la casse, ce qui est parfois bien pratique.
• La commande alias : définir des synonymes de commandes
Exemple : $alias cdh = "cd /home"
• La commande unalias
• L’éditeur de texte vi : éditer un fichier (***commande de l’éditeur vi***)
• La commande ln : ajout de liens sur un fichier
La commande ln permet d'ajouter un lien physique ou symbolique sur un fichier.
$ln Fichier.origine Nom.lien Crée un lien physique
$ln -s Fichier.origine Nom.lien Crée un lien symbolique.
Cette fonction est particulièrement intéressant- Elle permet d'avoir un seul fichier physique sur le
disque est de le désigner sous plusieurs noms logiques. Cela peut, dans certains cas faciliter les
opérations de mises à jour ou de maintenance d'applications.
• La commande du : usage disque
Cette commande permet de connaître l'espace disque utilisé par un sous-répertoire. L'unité dépend du
système (parfois 512 octets, parfois 1 Koctet, ou d'autres valeurs). Le paramètre -s * est souvent
utilisé, il permet d'obtenir la taille de tous les objets du répertoire courant.
• La commande df : disponibilité des systèmes de fichiers
Cette commande donne des informations sur les disques du système, leurs capacités, l'espace
disponible.
• La commande ps : liste des processus actifs

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique
Cette commande permet de lister les processus actifs,
Exemple:
$ps liste des processus courant.
$ps -u présente le nom de l'utilisateur user.
$ps -aux liste de tous les processus du système.
• La commande top : connaître les processus gourmands en puissance de calcul.
• La commande kill et killall: destruction d'un processus
Cette commande permet de détruire un processus.
Exemple: Si le processus cible est le numéro 546,
$kill 546 Tente de détruire le processus 546
$kill -9 546 Force la destruction du processus 546
Un aspect intéressant de cette commande est la possibilité de détruire un groupe de processus. Par
exemple, pour détruire tous les processus vous appartenant, sauf le shell courant, il suffit de donner
les commandes suivantes:
$kill -15 -1 Tente de détruire tous vos processus
$kill -9 -1 Force la destruction de tous vos processus
• La commande pstree
• La commande tar : archivage de données : utilitaire de gestion des archives
Exemples :
$tar -cvf files_reda.tar /home/reda Effectue l’archivage de tous les fichiers du rép.
/home/reda dans le fichier indiqué files_reda.tar
$tar -cvzf files_reda.tar.gz /home/reda Effectue une compression en plus

Options :
-x Extraire le contenu d’une archive
-c Créer une nouvelle archive
-t Afficher seulement la liste du contenu de l’archive
-f Indiquer le nom du fichier archive
-v mode bavard (verbose)
-z Dé/compresse en faisant appel à l’utilitaire gzip
• La commande gzip : compacte et décompace des fichiers au format .gz
Exemples :
$gzip files_reda.tar /home/reda Compresse le fichier files_reda.tar et le remplace par
files_reda.tar.gz d’une taille plus réduite
$gzip *.txt Compresse chaque fichier d’extension .txt du répertoire
courant et le remplace par le fichier compressé .txt.gz
Options :
-d Décompresse
-c Ecrit sur la sortie standard
-l Affiche les informations sur la dé/compression
-r Dé/compresse tous les fichiers du répertoire passé en argument
-1..-9 Fixe le niveau de compression
-h Aide

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique

2. Quelques commandes d'administration système


• La commande adduser ou useradd : ajoute un compte utilisateur
Cette commande permet de créer un compte utilisateur si vous êtes Root. Les informations
concernant chaque utilisateur se trouvent dans le fichier /etc/passwd.
• La commande passwd : spécifier ou modifier un mot de passe
• La commande su : changer d’utilisateur
• La commande chmod : changement des droits d'accès d'un fichier
chmod permet de changer les droits d'accès d'un fichier ou d'un répertoire si vous en êtes le
propriétaire ou root. La syntaxe de chmod est:
$chmod [a,u,g,o) [+.-] [r.w,x] [nomdefichier]

L'argument donne les droits: a = (all) à tous les utilisateurs


u = (user) au propriétaire
g = (group) aux utilisateurs du groupe
o = (other) aux autres groupes
La valeur + ajoute
- enlève
Les permissions autorisées r = la lecture
w = l'écriture
x = l'exécution

• la commande chown : désigner l'utilisateur et le groupe propriétaire des fichiers


• la commande deluser ou userdel : détruit un compte utilisateur
Cette commande permet supprimer un compte utilisateur, si cette commande est disponible sur le
système, sinon on fera manuellement.
• La commande mount : utiliser votre CD-ROM, votre lecteur de disquette
$mount /mnt/cdrom Monter un cd rom
$moun t /mnt/floppy Monter une disquette
• La commande rpm : gérer des paquetages
Rpm (RedHat Package Manager) est un utilitaire permettant d’installer et de désinstaller des
applications disponibles sous forme d’un fichier « paquetage ». La syntaxe générale d’un paquetage
(ou package) est nom.version.i386.rpm
$rpm -i fichier_package.rpm Installer un package
$rpm -ivh fichier_package.rpm Installer avec une barre de
progression
$rpm -e nom_package.rmp Désinstaller un package
$rpm -U fichier_package ou rpm -Uvh fichier_package Mettre à jour
$rpm -q nom_package.rpm Demander des informations sur le
package désigné
$rpm -qa Liste des packages installés
$rpm -ql nom_package.rpm Demander la liste des fichiers installés avec le
package désigné
$rpm -V nom_package.rpm Vérifier l´intégrité d´un package

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique

• la commande shutdown : arrêter le système de manière sécurisée.


$shutdown -r Redémarrer la machine après arrêt du système
$shutdown -h Arrêter la machine après arrêt du système

3. L’éditeur vi
vi (en fait vim) est un éditeur de texte installé par défaut sur l’ensemble des machines Linux et il est
nécessaire pour un administrateur ou un utilisateur de Linux de connaître un peu son fonctionnement.
L’éditeur vi dispose de deux modes : le mode commande pour passer des commandes (sauver, quitter,
etc.) et le mode insertion pour saisir du texte. Par défaut, vi démarre en mode commande ; pour passer
du mode commande en mode insertion, on utilise la touche i (vous constaterez alors le mot
INSERTION en bas de l’écran) et on utilise la touche Esc (Echappe) pour passer du mode insertion en
mode commande.
En voici les principales commandes vi :
:help Aide sur vi
:q! Quitter vi sans enregistrer
:w! Enregistrer le fichier, si celui-ci n’a pas encore de nom, celui indique
un no name file
:w /home/reda/file.txt Enregistre le fichier dans /home/reda sous le nom file.txt
:wq! ou ZZ ou x ! Enregistre et quitte
u Annule le dernier changement

h Déplacement du curseur de 1 caractère à gauche


j Déplacement du curseur de 1 caractère vers le bas
k Déplacement du curseur de 1 caractère vers le haut
l Déplacement du curseur de 1 caractère à droite
w Déplacement du curseur au début du mot suivant
b Déplacement du curseur au début du mot courant ou précédent
e Déplacement du curseur à la fin du mot suivant

X Efface le caractère à gauche du curseur


x Efface le caractère sous le curseur
dd Supprime la ligne entière
d$ ou D Supprime tous les caractères après le curseur
d0 Supprime tous les caractères avant le curseur
dw Supprime les caractères d’un mot se trouvant après le curseur
db Supprime le début du mot

yy ou Y Copie une ligne complète


y$ Copie tous les caractères de la ligne placés après le curseur
y0 Copie tous les caractères de la ligne placés avant le curseur
yw Copie les caractères se trouvant après le curseur
yb Copie le début du mot

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique
P Place ce qui a été copié après le curseur
p Place ce qui a été copié avant le curseur

/micro Recherche le mot micro et s’arrête au premier trouvé


/ Entrée Poursuit la recherche vers le bas
/? Poursuit la recherche vers le haut
/m.cro* Recherche les mots micro, macro, microsoft, etc. Le point représente
n’importe quel caractère
/m[ia]cro Ne recherche que les mots micro et macro

d /micro Recherche et supprime micro


:g/microsoft/s//linux Remplace microsoft par linux dans tout le texte, sauf si microsoft
existe plusieurs fois dans une même ligne alors seul le premier est
remplacé
:g/microsoft/s//linux/c Idem mais avec demande de confirmation
:g/microsoft/s//linux/gc Idem mais avec remplacement de tous les mots microsoft de la même
ligne

4. Redirection des entrées/sorties et pipes:


La plupart des commandes Unix prennent leurs entrées du terminal (entrée standard par défaut) et
dirigent la sortie vers le terminal également (sortie standard par défaut).
Mais on peut agir de telle façon que la commande puisse lire des valeurs d’un fichier (ou le résultat
d’une commande) et diriger la sortie vers un fichier (ou l’entrée d’une commande).
Exemples :
$ who > fichier.users le résultat de la commande who est envoyé dans le fichier nommé
fichier.users
$ who >> fichier.users le résultat de la commande who est ajouté à la fin du fichier nommé
fichier.users
$ read a,b < fichiers.users les variables a et b seront lues à partir du fichier fichiers.users

$ who | sort le résultat de la commande who est utilisé comme entrée de la commande sort qui
trie le contenu ligne par ligne par ordre alphabétique. il s’agit ici d’un pipe (comme un pipeline).
on peut agrandir le pipe : $ who | grep bou | sort > utilisateurs_bou
le résultat de who est utilisé par grep pour trouver les utilisateurs qui commencent par la chaîne bou,
le résultat de celle-ci est trié par sort pour enfin être sauvegardé dans un fichier nommé
utilisateurs_bou.

- On peut capturer la sortie (quelque part) dans un pipe .


$ who | grep bou | tee utilisateurs_bou_non_tries | sort > utilisateurs_bou_tries
On obtient deux fichiers d’utilisateurs qui commencent par « bou » l’un est trié et l’autre ne l’est pas.

5. Le shell(Bourne shell sh) :

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique
Le « Shell » désigne le programme qui interprète les commandes de l’utilisateur et les soumet à
l’exécution par le système unix qu’il accompagne (c’est lui qui affiche le prompt $ ou #).
Il interprète donc toutes les commandes unix mais aussi des programmes (des scripts conçus
par l’utilisateur) écrits dans un langage de programmation dont la syntaxe est proche de C. En
voici un résumé :

- On peut définir des variables et leur assigner des valeurs. Ex : $ longueur = 80


$ message= " on va arrêter le système "

- Le type des variables est exclusivement « chaîne de caractères »

- On peut travailler avec le contenu d’une variable et le passer comme argument à une commande. Si
on veut l’afficher par exemple :
$ echo le message est $message et $ echo la longueur est $longueur

- On peut également utiliser les variables du shell pour désigner des répertoires :
$ chemoi=/home/user1/personnel
$ cd $chemoi

- Les quottes simples et les doubles quottes :


Observer la différence entre
$ echo " $message" ( $message est évaluée)
et $ echo ‘ $message’ ( $message n’est pas évaluée )

- Les quottes inversées ( ` ` ) : lorsqu’une commande est incluse entre deux quottes de ce genre,
son résultat est inséré exactement à cet endroit. exemple :
$ echo la date d’aujourd’hui est `date`
$ echo mon répertoire actuel est `pwd`
$ users = `who | wc -l`
$ echo il y’a $users utilisateurs dans le système

- Le backslash (\) : permet de neutraliser les caractères spéciaux quand il les précède.
exemple : $ echo \$message affiche sur l’écran $message.

- Passage d’arguments à un programme (script) shell : On peut récupérer les paramètres dans un
script en y faisant référence par les variables spéciales : $1 , $2, $3, …..etc.
- Le shell a également deux variables qui sont instanciés automatiquement au moment de l’exécution
d’un script : $# (qui contient le nombre d’arguments passés au script) et $* (la liste des arguments )

-Opérations arithmétiques avec les variables du shell :


$ v= 0
$ v= $v + 1
$ echo $v cette commande affiche alors 0+1 (il s’agit d’une concaténation)
Pour remédier à ça, on utilise la commande expr (qui permet d’évaluer les expressions
arithmétiques) :

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique
$ result = `expr 1+2`
$ echo $result cette commande affichera donc 3

-Quelques variables prédéfinies :


Lorsque on se « logue » dans le système, un environnement est initialisé, il comprend entre autres des
variables qui sont initialisées :
HOME : qui par défaut est initialisée à votre répertoire de travail, mais qui peut être changée.
PATH : qui définit les chemins de recherche pour l’exécution d’une commande. (les répertoires
susceptibles d’abriter la commande que l’on tente d’exécuter)
PS1 : définit le prompt affiché par le shell pour nous inviter à entrer une commande.
PS2 : définit le deuxième prompt affiché par le shell, lorsque la commande s’étend sur plus d’une
ligne.
Exemple :

$ PS1 = "Entrez votre commande >"


cEntrez votre commande >
Entrez votre commande > PS2 = " ….> "
Entrez votre commande >cat
…> fichier
……………..
…………….
Entrez votre commande >

- La portée d’une variable du shell :


Lorsqu’on exécute un script le shell crée un environnement propre pour que ce script s’exécute dans
le contexte de cet environnement; à la fin de l’exécution, cet environnement est détruit.
Par conséquent, une variable définie dans un script n’est connue que dans ce script, à moins que la
commande export soit exécutée sur cette variable. L’inverse est également vrai .

exemple : $ cat > affiche $ echo $x


echo :$x : 100
ctrl-d $ export x
$ chmod +x affiche $ affiche
$ x = 100 :100 :
$ echo $x $
100
$ affiche
::
$

-Lecture des données à partir du terminal :

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique
read liste-de-variables

exemple : $ read a b c
un deux trois quatre cinq

un sera affecté à a, deux sera affecté à b et le reste (trois quatre cinq) à c.

Les instructions de contrôle de boucles:

-La boucle for : for variable in list exemple for index in 1 2 3 4


do do
command echo $index
command done
………….
done

- Les variantes de l’instruction if :

if [ condition ] exemple if [ $user = Mohamed ]


then then
command echo bienvenue, Mohamed
command done
…………
fi

if [ condition ] exemple if [ $user != Mohamed ]


then then
command echo je m’attendais à Mohamed
command done
…………
else else
command echo bienvenue, Mohamed
command done
…………
fi

exemple:
heure = `date | cut -c12-13`
if [ condition ] if [ $hour -ge 0 -a $hour -lt 12 ]
then then

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique
command echo “Sbah-el-khir”
command elif [ $hour -ge 12 -a $hour -lt 18 ]
………… then echo “mesaa-el-khir”
elif
then else
command echo “tesbah-b-khir”
command fi
…………
elif
then
command
command
…………
elif
……………..
else
command
command
…………
fi

- l’instruction while:
exemple compteur = 1
while [ condition ] while [ “$compteur” -le 10 ]
do do
command echo $compteur
command compteur = `expr $compteur +
1`
…………. done
done

- l’instruction case:

case valeur exemple case $1


in in
chaine1) command 0) echo sifron
command 1) echo wahidoun `
…………. 2) echo ithnani
chaine2) command ………………………………
command ………………………………
…………. 9) echo tisaatoun
………………………….. *) echo argument non valide
chaine n ) command esac
command
………….

Equipe du module Réseaux 2005/2006


Faculté des sciences
Département d’informatique
esac

- Voici le résumé des opérateurs relationnels :

Opérateur Utilisé pour tester si Exemple

= Deux chaînes sont égales “$user” = Mohamed


!= Deux chaînes ne sont pas égales “$groupe” ! = etudiants
-n Une chaîne n’est pas de longueur zéro -n “$fichier”
-z Une chaîne est de longueur zéro -z “$nom”
-eq Deux entiers sont égaux “$compteur” -eq 10
-ne Deux entiers ne sont pas égaux “$ligne” -ne 0
-lt Un entier est inférieur à l’autre “$i” -lt 100
-le Un entier est inférieur ou égal àl’autre “$i1” -le “$i2”
-gt Un entier est supérieur à l’autre “$compteur” -gt 0
-ge Un entier est supérieur ou égal à l’autre “$a” -ge “$b”
-f Un fichier est un fichier ordinaire -f fichier.users
-d Un fichier est un répertoire -d “$rep”
-s Un fichier est de longueur zéro -s utilisateurs_bou_tries
-r Un fichier est accessible en lecture -r fichier.users
-x Un fichier est accessible en exécution -x fichier.users
-w Un fichier est accessible en écriture -w fichier.users

deux expressions peuvent être jointes avec l’opérateur logique –a (pour and) et -o (pour or)
exemples:
[ $i -gt 5 -a $i -le 100 ]
[ $env = UNIX -o $groupe = etudiants]

Equipe du module Réseaux 2005/2006

Vous aimerez peut-être aussi