Chapitre 1 : Introduction au système d’exploitation Linux
I) Notions générales
Le système d’exploitation Linux est un système de type UNIX. Il a été créé par le Finlandais
Linus Torvalds. Le système est Open Source et gratuit pour la plupart des distributions.
1. Système Unix
Il s'agit de système d'exploitation Multitâche et Multiutilisateurs. Conçu à l'origine des
mainframes, il permet donc à de multiples utilisateurs de travailler sur le même ordinateur.
Sur les micros ordinateurs, historiquement, les systèmes étaient plutôt mono-tâche et mono-
utilisateur. C'est Windows 3.x qui a introduit la notion de multitâche (et encore, assez mal
géré), et il a fallu attendre Windows 95 pour un vrai multitâche préemptif. Là encore,
l'observateur attentif a pu remarquer qu'une simple tache "plantée" suffit à cracher
entièrement l'OS. Dans le monde Microsoft, seul Win NT est plus sécurisé (utilisation des
Ring 0 et 3 du processeur, voir cependant la problématique de la carte VGA). Malgré toutes
ces avancés, le mode multiutilisateur est toujours absent des solutions Microsoft (Il faut
reconnaître que cela n'apporte qu'un petit plus).
Il est écrit en C, ce qui permet un portage, ou une adaptabilité. Il suffit parfois de recompiler
son OS (si vous disposez des sources bien sûr !!!) avec les bonnes options pour l'adapter
parfaitement à votre machine. Un autre point important est l'optique générique choisie. Tout
ce que peut gérer l'OS doit l'être de façon identique. On a coutume de dire que sous UNIX
tout est fichier... La gestion des périphériques (disquette, clavier souris écran, disque dur,
réseau, etc.) est identique à la gestion des fichiers. Cette notion très troublante quand on vient
d'un autre monde permet dès son appropriation la réalisation d'action pour le moins étonnante
(duplicata de disque dur, "formatage" de fichier, transferts insolites comme par exemple la
copie de l'entrée son d'un PC sur la sortie haut parleur d'un autre PC en réseau, etc...)
UNIX est un système d'exploitation. Il permet de faire fonctionner un ordinateur, et lui permet
d'assurer un certain nombre de services. Parmi ces services, le shell, ou interpréteur de
commandes, va permettre à un utilisateur de lancer des commandes de façon interactif. C'est
le programme chargé d'assurer le dialogue avec l'utilisateur. Sous UNIX, vous disposez de
plusieurs Shell, vous choisirez celui qui est le plus pratique pour vous. La tendance actuelle
est à l'utilisation du BASH (Bourne Again Shell). Les autres shells connus sont le SH (le
1
Bourne Shell), le Korn shell, le C shell... Tous ces shells sont capables d'assurer l'exécution
d'une suite de commandes, ce que l'on appelle un script. Tous ces shells sont de véritables
langages de programmation...
2. Système Linux
Linux est un produit libre, développé par des étudiants et maintenant des entreprises (dont
IBM, Corel, etc) qui est né en 1991. Très en vogue actuellement (en réaction au monopole de
Microsoft), il est très répandu sur Internet, dans les écoles et Universités, et entre petit à petit
dans le monde de l'entreprise.
Ses avantages : Toutes les sources sont fournies, il est libre, très stable, très réactif (la
détection d'un bug est très rapidement corrigée), il est gratuit. C’est un challenger et une
alternative très sérieuse en ce qui concerne les serveurs, il est très lié au hardware (on peut
recompiler les programmes pour les adapter parfaitement à sa machine), il est multi-plate-
forme (Alpha, PowerPC, Macintosh, IBM BULL etc), et enfin il offre des performances très
impressionnantes...
Ses inconvénients : Il n'y a pas tous les drivers. En effet, très peu de fabricants développent
des pilotes pour Linux, il faut donc attendre que des bénévoles hyper compétents les réalisent
et parfois, sans aucune documentation du fabricant. Plusieurs actions sont effectuées par ligne
de commandes.
II) Les commandes de base
En règle générale, les commandes Linux respecte la casse. Ce qui signifie que les majuscules
diffèrent des minuscules. Il faut faire très attention à cette règle, surtout par rapport aux
options car les résultats de la commande sont très différents en fonction du fait qu’on a écrit
en majuscule ou en minuscule.
1. Les commandes d’aides
man commande permet d'avoir accès à l'aide sur cette commande : toujours présenté selon une
norme (NOM, SYNOPSYS, DESCRIPTION, OPTIONS, BUGS), elle est assez complète
(souvent plusieurs pages écrans). On peut se déplacer grâce aux touches de directions, ou
Espace et Entrée pour avancer, rechercher un mot avec la touche / suivi du mot, et on sort
avec la touche Q.
2
En général, les programmeurs ont prévu une aide succincte dans la commande, accessible par
l'option --help
2. Les commandes sur les fichiers
Elle permet de créer un fichier vide tel que la syntaxe est : touch nom_du_fichier
Exemple : touch fichier1
Elle permet de supprimer un fichier tel que la syntaxe est : rm nom_du_fichier
Exemple : rm fichier1
Pour avoir les différentes options, on utilise man rm
Attention : Ne jamais faire rm –rf / car ceci va détruire le dossier racine.
Ces commandes permettent d’afficher le contenu d’un fichier.
La syntaxe est : cat nom_du_fichier
Exemple : cat fichier1
On fait de même pour l’utilisation de more et less.
En réalité vim est un éditeur de texte qui est une évolution de l’éditeur vi. La commande vim
permet de créer et d’écrire à l’intérieur d’un fichier. La syntaxe est : vim nom_du_fichier
Exemple : vim fichier1
Cela nous permet d’arriver à l’intérieur du fichier nommé fichier1.
vim possède plusieurs modes dont le mode COMMANDE, le mode INSERTION, le mode
REMPLACEMENT et le mode VISUEL.
3
Le mode COMMANDE : qui s’ouvre lorsqu’on a accès au fichier. Dans ce mode, on
ne peut pas écrire à l’intérieur du fichier mais il faut basculer en mode insertion pour
pouvoir écrire. C’est à l’intérieur de ce mode qu’on tape les différentes commandes. Si
on était dans un autre mode et qu’on souhaitait revenir dans le mode COMMANDE,
on tape alors sur ECHAP.
Le mode INSERTION : c’est le mode qu’on utilise si on veut écrire. Pour y accéder,
on tape sur la touche « i » ou sur la touche INSER.
Le mode REMPLACEMENT : c’est le mode qu’on utilise si on veut remplacer du
texte. Pour y accéder, on tape sur la touche « r » ou 2 fois sur la touche INSER.
Le mode VISUEL : ce mode nous permet de faire des sélections.
Dans l’éditeur vim, les touches de raccourcis qu’on utilise habituellement sous Windows ne
fonctionnent pas. On utilise alors les raccourcis suivants :
yy: pour copier
dd : pour couper
p : pour coller
Nyy : pour copier N lignes. Ce qui signifie que si on veut copier 2 lignes, on tape 2yy
Ndd : pour couper N lignes.
u : pour un retour (équivalent du Ctrl+z de Windows)
ctrl+r : pour annuler le retour (équivalent du Ctrl+y de Windows)
y pour une copie utilisée avec le mode VISUEL
d pour couper avec le mode VISUEL
:h pour accéder à l'aide
:w pour enregistrer
:w nomfichier enregistre nomfichier
:q pour quitter l'éditeur
:wq ou:x pour enregistrer et quitter
:q! pour quitter sans enregistrer les modifications
:r pour inclure le contenu d'un autre fichier
:numero_de_ligne_ pour aller directement à la ligne indiquée
4
3. Les commandes sur les dossiers
Elle permet de créer un dossier. La syntaxe est : mkdir nom_du_fichier
Exemple : mkdir fichier1
Elle permet de supprimer un dossier. La syntaxe est : rmdir nom_du_fichier
Exemple : rmdir fichier1
4. Commande de lecture
La commande ls permet de lire le contenu d’un dossier. En particulier, l’option –l permet de
faire la lecture avec des détails. En général, on peut utiliser ls sans aucune suite mais on peut
aussi l’accompagner du chemin ou du nom du dossier.
Exemple : ls /home/avo/Documents/
5. Commande de changement de dossier
Sous Windows, le nombre de dossiers racine est identique au nombre de partitions. Mais sous
Linux, il existe un seul dossier racine « / ». Tous les répertoires de bases se trouvent en
dessous du dossier racine.
Pour passer d’un emplacement à un autre, on utilise la commande « cd ». Voici un exemple
d’architecture.
home Doc2 Doc4
Doc1 Doc3
5
Si par exemple, on se trouve dans /home/Doc1 et qu’on veut se déplacer vers Doc3, on a le
choix parmi les méthodes suivantes :
cd /Doc2/Doc3
cd ../../Doc2/Doc3
Si par exemple, on se trouve dans /home et qu’on veut se déplacer vers Doc1, on a le choix
parmi les méthodes suivantes :
cd Doc1
cd /home/Doc1
6. Les commandes sur les utilisateurs
Même si on n’entre pas encore dans la gestion des utilisateurs, il est important que dans
Linux, il y a ce qu’on appelle l’utilisateur simple et le superutilisateur. L’utilisateur simple est
généralement l’utilisateur qu’on utilise qu’on ouvre la machine (même si dans certaines
distributions, le superutilisateur est ouvert par défaut). Le supertutilisateur qu’on appelle aussi
« root » est un utilisateur qui a plus de droits que l’utilisateur simple. Il y a même des
commandes qui ne sont pas utilisées par l’utilisateur simple mais qui sont exploitées par le
superutilisateur. Egalement, il existe des dossiers ou des fichiers auxquels seuls l’utilisateur
« root » peut accéder.
Le signe de l’utilisateur simple est le $ tandis que le signe de root est le #. Pour basculer vers
l’utilisateur root, on utilise soit la commande su soit la commande sudo. On peut également
utiliser su root ou sudo root. Pour revenir dans l’utilisateur simple, on tape la commande exit
ou on fait su suivi du nom de l’utilisateur. Si, par exemple, l’utilisateur s’appelle « avo », on
tape su avo.
7. Commandes pour éteindre ou redémarrer
Pour la plupart des distributions, on éteint ou on redémarre la machine en étant en mode
superutilisateur. Voici les commandes les plus utilisées :
halt et init 0 pour éteindre la machine
reboot pour redémarrer la machine
6
III) Installation de nouveaux logiciels
1. Par commande
Généralement, on utilise la commande apt-get install dans la plupart des distributions.
Ex : apt-get install filezilla permet d’installer le logiciel Filezilla
On utilise la commande apt-get remove pour désinstaller un logiciel.
Ex : apt-get remove filezilla permet de désinstaller le logiciel Filezilla
2. Avec l’interface graphique
Quand on utilise l’interface graphique, selon la distribution, il existe généralement un
gestionnaire de paquet dans lequel on peut sélectionner le logiciel en question et l’installer
directement, en tenant compte que l’on dispose de la source si on n’est pas connecté à
Internet. Voici un exemple de cas où on veut installer le bind9.
7
Chapitre 2 : Les caractères spéciaux et génériques
I) Les caractères spéciaux
On rappelle que la commande echo permet d'afficher un texte ou les résultats d'une
commande.
Exemple : echo « meilleure journée » affiche meilleure journée
1. Chaînes de caractères
'…' (simple quote ou apostrophes) : texte considéré comme un seul mot
\c : caractère c non interprété
« ... » (double quote) : interprète les caractères $ \ et `
Noms de fichiers
[abc][a-z][!a-z] : définition d'un ensemble de caractères
2. Autres
; séparateur de commande
~ représente le dossier de connexion
. représente le dossier courant
.. représente le dossier parent (directement supérieur)
`...` donne le résultat de la commande
$(...) donne le résultat de la commande
Exemple
#echo 'pwd' affiche pwd
#echo « pwd » affiche pwd
#echo `pwd` affiche le dossier courant
#echo $pwd n'affiche rien
#echo $(pwd) affiche le dossier courant
8
II) Les caractères génériques
1. Utilisation des jokers
Les caractères génériques sont en général les jokers * et ?
? correspond à un caractère dont la présence est obligatoire
* correspond à zéro, un ou plusieurs caractères
Le modèle [ ] permet de sélectionner un élément de la liste ou de l'intervalle spécifié. Aucun
espace ne doit être mis au début ou à la fin. Un modèle de la forme X[abc-z]Y désigne
l'ensemble des fichiers de la forme XaY XbY XcY XdY … XzY
Ex : Considérons les fichiers suivants :
ABCDEF a grrr prog prog.c Q.R.S aa hel.l.o prog.o
u.v.w g
1er groupe de commande
ls A* : tous les fichiers qui commencent par A
ls *.c : tous les fichiers qui se terminent par c
ls *g* : tous les fichiers qui contiennent g
ls *.[a-z].* : tous les fichiers contenant 2 caractères points et entre les 2 points un caractère
alphabétique minuscule ou majuscule (car intervalle)
ls *[hg] : fichiers qui se terminent par h ou g
ls [hg]* : fichiers qui commencent par h ou g
ls *g : fichiers qui se terminent par g
ls a ?: 2 caractères qui commencent par a
ls [!a]* : tous les fichiers qui ne commencent pas par a
2è groupe de commandes
ls *[!g]* : affiche tous les fichiers qui contiennent un caractère autre que g
ls *[r][!o]* : fichiers qui contiennent un caractère r suivi immédiatement de caractère autre
que o
ls *[!rj]* : tous les fichiers qui contiennent des caractères autres que r et j
9
ls *[!r][!r]* : contiennent au moins 2 caractères dont le 1er est autre que r et le 2è est autre
que r
2. Autres écritures
echo {a..z} affiche les caractères alphabétiques de a à z
echo [a-z] affiche a et g (dans notre exemple)
echo '{a..z}' affiche {a..z}
echo « {a..z} » affiche {a..z}
echo {1..5} affiche 1 2 3 4 5
10