Chapitre 1 : Introduction et commandes de base - Fichier

publicité
Master Pro. Géo.
Cours Unix/Linux
Chapitre 1 :
Introduction et commandes
de base
Prérequis
: Cours Systèmes d'exploitation
Connaître les caractéristiques fondamentales du système
Objectifs du chapitre
:
Unix/Linux.
Comprendre les procédures de connexion et déconnexion
du système Linux.
Introduction
Historique
Distributions
Eléments de contenu
:
La licence GPL de GNU
Le noyau
Connexion
Déconnexion
Commandes de base
- Page 1 -
Master Pro. Géo.
Cours Unix/Linux
1. Introduction
Ce manuel, présente le système d'exploitation Linux. Un système ayant les fondements de
celui du système Unix, l'un des premiers systèmes d'exploitation multi-utilisateurs, multitâches. Les caractéristiques fondamentales de Linux que nous allons aborder (système de
fichiers, gestion de la mémoire, gestion des processus, langages de commandes, …), seront
ceux du système Unix également.
1. Historique du système LINUX
Linus Torvalds, étudiant à l'université d'Hélsinki, travaille sur un projet du nom de Minix
permettant d'exploiter les fonctionnalités multi-tâches du processeur i386. Ce système
s'avérant trop limité, Linus Torvalds décida de développer un système d'exploitation.
Ce système vu le jour en août 1991 sous le nom de LINUX/UNIX. Linus Torvald est le
propriétaire de LINUX/UNIX mais le code source est gratuitement distribué selon les termes
du GPL (General Public Licence). Cela signifie que tout le monde peut utiliser ou même
commercialiser ce système à condition de rendre à leur tour disponible toutes les
modifications apportées. De ce fait, LINUX/UNIX appartient au monde du "logiciel libre".
2. Les caractéristiques de Linux :
Linux est un système multi plate-forme (pouvant tourner sur des machines ayant des
architectures différentes, intel x86, Sun Sparc, etc…). Il est également multi-utilisateurs
(plusieurs personnes peuvent en même temps travailler sur le même ordinateur), mais aussi
multi-tâches (plusieurs applications peuvent être lancées en même temps sans qu'aucune
n'affecte les autres) et multi-processeurs (il peut être installé sur des machines ayant plus
qu'un processeur).
C'est un système fiable, robuste, puissant et efficace. Il utilise très peu de ressource et
fonctionne quasiment aussi bien sur un ordinateur bas de gamme que sur un haut de gamme. Il
est distribué gratuitement avec son code source, basé sur le principe du logiciel libre et
selon le terme de la licence GPL. Il est développé par de nombreux programmeurs (la plupart
bénévoles) impliquant une évolution rapide et un résultat de qualité.
3. Les différentes distributions
Une distribution se présente sous forme de fichiers téléchargeables sur des sites ftp ou sous
forme d’un ou plusieurs CD-ROM (ou DVD-ROM). Une distribution est un ensemble
composé du noyau, d’applications et de documentations. Il existe beaucoup de distributions
sur le marché, en voici quelques une commentées :
- Page 2 -
Master Pro. Géo.
Cours Unix/Linux
RedHat
Les programmes installés sont le plus souvent directement utilisables, elle convient donc
parfaitement aux débutants qui bénéficient également d'interfaces graphiques pour la
configuration et l'administration. Les utilisateurs avertis trouvent également leur compte dans
la cohérence, la qualité et le dynamisme de cette distribution. L'apport principal de RedHat est
le concept de paquetage (.rpm) qui comprend le logiciel ainsi que tous les utilitaires
permettant sa configuration, son installation, sa désinstallation ainsi que sa mise à jour.
Debian
C'est la distribution d'un groupe de bénévoles. Ses adeptes reconnaissent l'esprit GNU qui
anime depuis toujours le développement de LINUX/UNIX. Très complète et conçue de façon
efficace, cette distribution permet de tout dimensionner selon ses besoins. D'importants
intervalles de temps séparent cependant parfois deux mises à jour stables et sa prise en main
est parfois délicate, surtout pour les débutants. Debian possède son propre format de
paquetage (.deb).
Mandrake
Distribution française bien finie. Tout Son installation reprend celle de RedHat. Les
paquetages sont des .rpm. Elle est à recommander à tous ceux qui veulent utiliser leur
machine rapidement sans passer trop de temps à jouer le rôle de l'ingénieur système.
S.u.S.E
La SuSE est une distribution de choix pour celui qui souhaite installer et utiliser rapidement
LINUX/UNIX mais ne souhaite pas s'intéresser de trop près aux détails de son
fonctionnement. Distribution commerciale de grande qualité, incluant de nombreuses
applications pré-configurées. L'installation et l'administration sont grandement facilitées par
les outils fournis. Convient à la fois aux utilisateurs novices qui auront peu de mal à l'installer,
et aux utilisateurs expérimentés.
Slackware
Destinée à ceux qui souhaitent acquérir en douceur une bonne maîtrise d'Unix, qui veulent
mettre en place un serveur, et ceux pour qui la facilité de déploiement est particulièrement
importante. Elle compte encore de très nombreux adeptes parfois convaincus mais semble en
perte de vitesse et les mises à jour se font rares. De plus sa conception ancienne lui confère
quelques défauts.
Corel LINUX/UNIX
Corel LINUX/UNIX est une distribution basée sur Debian et faite par Corel (Wordperfect,
etc.). Elle s'adresse aux débutants et se veut très facile d'installation.
- Page 3 -
Master Pro. Géo.
Cours Unix/Linux
Caldera
Ressemble beaucoup à RedHat. Les paquetages sont des .rpm. Dès le départ le noyau est
configuré pour une utilisation réseau : IPX, SMB, IP, NFS. Très peu de modifications des
fichiers de configuration sont nécessaires. La détection automatique du matériel fonctionne
assez bien.
D'autres distributions existent, fedora core, ubuntu sont des exemples. Il y a celles qui
permettent de démarrer linux à chaud, sans préalable installation (Knoppix, par exemple).
4. La licence GPL de GNU
Le code source de LINUX/UNIX est accessible gratuitement, ce qui fait que ce système peut
être compilé sur d'autres plates-formes que le PC. Afin de permettre la distribution de
programmes exempts de droits, la fondation FSF (Free Software Foundation, traduisez
Fondation pour les logiciels libres) a développé un projet nommé GNU (pour la petite
histoire, GNU est un acronyme récursif signifiant GNU is Not Unix). Les utilitaires GNU sont
soumis à une licence d'utilisation de LINUX/UNIX (GPL, General Public Licence),
expliquant les dispositions légales vis-à-vis de l'utilisation, la distribution et la modification
de LINUX/UNIX.
Voici à titre indicatif quelques aspects de cette licence permettant de la comprendre:
•
La licence permet la modification du programme original, et sa diffusion (sous licence
GPL).
•
La licence autorise la vente du logiciel libre sous sa forme originelle ou modifiée, à
condition que le vendeur autorise la diffusion (même gratuite) de ce logiciel.
•
La licence autorise l'utilisation du logiciel à des fins lucratives (permettant des
bénéfices).
•
Les logiciels sous la licence GPL appartiennent à leurs auteurs et personne ne peut
s'approprier une partie ou l'intégralité des droits d'auteur.
•
La licence n'implique aucune forme de rémunération des auteurs.
Cette licence est parfois appelée copyleft, en opposition à copyright, un mot anglais qui
signifie "droits d'auteur" (right signifie droite tandis que left signifie gauche).
5. Le Noyau
Le noyau joue le rôle d'intermédiaire entre les programmes et le matériel. Il gère la mémoire
pour tous les programmes en cours d'exécution (processus), et s'assure qu'ils occupent tous
une part équitable (ou non) du temps processeur. En plus, il fournit une interface aux
programmes pour communiquer avec votre matériel.
- Page 4 -
Master Pro. Géo.
Cours Unix/Linux
Démarrage du noyau
Après le chargement du bios, il y a exécution du chargeur de système LILO (Linux/Unix
Loader) ou GRUB, installé le plus souvent dans le MBR). Le prompt du chargeur s'affiche, et
au bout de quelques secondes (durée réglable), le système par défaut se charge.
Usuellement, cette initialisation s'effectue en mode multi-utilisateurs avec les services réseau
activés (niveau d'exécution par défaut et qui est réglable dans un fichier de configuration
appelé /etc/inittab).
La numérotation des noyaux LINUX/UNIX :
La numérotation du noyau LINUX/UNIX est basée sur trois nombres, par exemple : 2.0.12.
• Le premier nombre (dans notre cas le "2") indique la version majeure du noyau.
Aujourd'hui, le noyau en est à sa deuxième version.
• Le deuxième nombre peut être considéré comme un numéro de version mineure.
Attention, les versions mineures impaires indiquent une version de développement.
Actuellement, la version stable est la 2.6.
• Le dernier numéro indique les évolutions mineures. Dans un noyau stable, il s'agit
souvent de corrections ; dans un noyau instable, il peut s'agir de nouvelles
fonctionnalités.
Remarque : Le numéro de version de votre noyau est obtenu en tapant la commande
uname –a
6. Connexion
Travailler sous le système LINUX/UNIX, même en dehors de tout contexte réseau, implique
une connexion au système.
Une session monoposte n'est jamais anonyme.
Le processus d'identification est classique :
•
Donner le nom d'utilisateur (login :)
•
puis le mot de passe (password :)
•
Si le compte est authentifié sur la machine, il y a rappel de la précédente connexion
sous le même nom.
•
Observer le prompt [user@machine rép-perso]
•
celui-ci est modifiable; sa notation symbolique, [\u@\h \W]\$, est donnée par echo
$PS1(voir sa définition dans le fichier /etc/profile).
Lorsque l'utilisateur est authentifié, il disposera des ressources du système selon les
permissions (les droits des fichiers) que l'administrateur (le "root") lui a accordées.
- Page 5 -
Master Pro. Géo.
Cours Unix/Linux
Multi-connexions
Le système LINUX/UNIX est multi-utilisateurs
Comment
le
voir
si
on
ne
dispose
que
d'une
seule
machine
?
On peut se connecter plusieurs fois sur une même machine sous des identités différentes.
Pour cela on peut ouvrir des terminaux ou consoles virtuelles avec Ctrl-Alt-Fx, x=1 à 6, puis
passer de l'une à l'autre avec la même commande.
7. Déconnexion et arrêt (volontaire)
•
Pour se déconnecter, à partir de l'invite des commandes, taper l'une des commandes
suivantes : exit, logout ou ctrl D.
Cela relance l'attente de login.
•
Evidemment, il ne faut pas éteindre brutalement ou rebooter sauvagement ! Chaque
processus actif doit recevoir du noyau du système la directive de s'arrêter proprement, les
systèmes de fichiers doivent être démontés.
•
En cas de coupure brutale, le système effectuera des réparations au prochain démarrage, à
l'aide de l'utilitaire fsck, avant de procéder à l'initialisation du système.
•
Un utilisateur quelconque peut se connecter au démarrage, en tapant son login et son mot de
passe. L'arrêt est une tâche d'administration.
•
Pour arrêter le système, l'administrateur root lance l'une des commandes suivantes :
o Arrêt
immédiat
halt (ou shutdown -h now ou init 0).
o Arrêt différé
shutdown -h <nb mn>
il s'écoule <nb min> minutes entre l'avertissement et l'arrêt.
o Redémarrrage
:
shutdown -r [<nb mn> | now] ou reboot ou ctrl-alt-del ou init 6.
8. Introduction aux commandes
•
Interpréteur de commandes
L'utilisateur peut taper des commandes lorsqu'il l'invite du système apparaît. Toute commande
entrée sera interprétée par l'interpréteur de commandes (ou shell). Le terme shell veut dire
coquille pour exprimer l'idée d'interface entre utilisateurs et système UNIX et a été introduit
par opposition au noyau du système.
Il existe des dizaines d'interpréteurs de commandes sous UNIX mais les 2 principaux (que
nous retrouvons sur la plupart des systèmes) sont le Bourne-shell (sh) et le C-shell (csh).
Le choix de l'interpréteur activé à la connexion est fait à l'enregistrement de l'utilisateur dans
le système. Dans la plupart des cas, c'est le C-shell.
- Page 6 -
Master Pro. Géo.
Cours Unix/Linux
Par défaut, il s'agit ici du shell BASH, le plus utilisé, lancé par la commande /bin/bash
Pour connaître le shell et ses commandes internes, consulter son manuel : man bash
La syntaxe générale d’une commande :
commande [options] paramètres
En général, les options sont précédées du symbole '-' et peuvent être groupées
(ex : rpm -ivh <nom-package>). Les paramètres précisent les fichiers concernés.
Historique des commandes :
•
Les touches flèches haut et bas permettent de parcourir les dernières commandes de
l'utilisateur,
stockées
dans
le
répertoire
personnel
dans
le
fichier
/home/etudiantx/.bash_history.
Rôle des alias
o Grâce
aux alias des commandes, l'utilisateur peut créer des noms de commandes,
construites bien sûr par combinaison des commandes standard, et même renommer les
commandes de base (ne pas en abuser !)
o Exemples
d'alias, destinés à simplifier la vie, comme ll à la place de ls -l), cd.. à la place
de cd ..
o Pour
en voir la liste, commande alias
o Pour
en ajouter en cours de session, par exemple : alias x="startx"
Importance des options
[etudiantx@p0x ] cd
se placer dans son rép personnel
Comparer les effets de :
ls
ls -l liste avec les attributs des fichiers
ls -a liste complète, y compris les fichiers cachés, qui commencent par un point
ls -la
ls -R liste "récursive" des contenus des sous-rép.
ls --help pour tout savoir !
Manuel des commandes
Si on veut de l'aide sur les règles d'utilisation ou encore sur les fonctionnalités d'une
commande, on peut utiliser l'aide en ligne grâce à la commande man (comme MANual pages)
de la façon
suivante : man nom_commande
Exemple :
man ls
- Page 7 -
Master Pro. Géo.
Cours Unix/Linux
man man
Note : L'affichage des "manual pages" se fait à l'aide de la commande more, afficheur page
par page dont on verra l'utilisation plus loin. Pour faire avancer l'affichage, il suffit de taper la
barre d'espace.
Si on ne connaît pas la syntaxe de la commande, il est possible de faire une recherche par
mot-clé dans le système de "manual pages") à l'aide de la commande suivante :
man -k mot-clé
Exemple : man -k list ; man -k directories
Créer et consulter des fichiers textes
•
touch fich1 fich2 crée les 2 fichiers vides
•
On peut lire, créer ou modifier des fichiers de textes (par ex. des scripts, des fichiers de
configuration) avec vi, l'éditeur apparemment rustique mais irremplaçable, qui reste le
préféré de beaucoup d'administrateurs Unix.
Pour seulement consulter un fichier texte, le plus simple consiste à utiliser les commandes
•
cat (texte court) ou less (texte long). Par exemple, examiner le fichier d'initialisation par
less /etc/inittab
En mode graphique, sous X-KDE (lancer startx), l'éditeur kedit est automatiquement
•
appelé quand on ouvre un fichier texte dans l'explorateur kfm
Connaître les utilisateurs
La
commande
fondamentale
est
id
qui
donne
(par
défaut
d'options)
l'uid (N° identifiant), le gid (N° de son groupe primaire), et la liste de tous ses groupes.
Exemple : [etudiant1@p01 ] id
uid=501(etudiant1) gid=501(etudiant1) groups=501(etudiant1), 504(etudiants)
•
id toto renseigne sur toto
•
id -u
•
id -gn
donne l'uid (le numéro de l'utilisateur)
donne le nom de login
- Page 8 -
Téléchargement