Mandrake Linux 8.2: Manuel de référence | ||
---|---|---|
Page précédente | Chapitre 1. Concepts de base des systèmes UNIX | Page suivante |
La ligne de commande est le moyen le plus direct pour donner des ordres à la machine. Si vous utilisez la ligne de commande de GNU/Linux, vous découvrirez vite qu'elle est bien plus puissante et polyvalente que d'autres lignes de commande que vous avez déjà pu utiliser. La raison en est que vous avez non seulement accès à toutes les applications de X, mais aussi à des milliers d'utilitaires en mode console (par opposition au mode graphique) qui n'ont pas d'équivalents graphiques, ou dont les nombreuses options et combinaisons possibles seront difficilement accessibles sous la forme de boutons ou de menus.
Mais, il faut bien l'admettre, cette ligne de commande nécessite un peu d'aide pour débuter. C'est le but de ce chapitre. La première chose à faire, si vous utilisez KDE, est de lancer un émulateur de terminal. Vous avez une icône qui l'identifie clairement sur le tableau de bord (figure 1-3).
Le shell est le nom du programme avec lequel vous entrez en relation. Vous êtes devant cette invite (prompt en anglais) :
[reine@localhost] ~ $ |
# Entrez le mot de passe root ; il n'apparaîtra pas à l'écran [pierre@localhost] ~ $ su Password: # exit vous fera revenir à votre compte utilisateur normal [root@localhost] pierre # exit [pierre@localhost] ~ $ |
Quand vous lancez le shell pour la première fois, vous vous retrouverez normalement dans votre répertoire personnel. Pour savoir, à tout moment, dans quel répertoire vous vous situez, tapez la commande pwd (pour Print Working Directory, soit afficher le répertoire de travail) :
$ pwd /home/reine |
Nous allons maintenant examiner quelques commandes de base, et vous verrez bientôt que vous ne pourrez rien faire sans elles.
La commande cd est exactement la même que celle sous DOS, avec quelques fonctionnalités en plus. Elle fait exactement ce qu'énonce son acronyme : elle change le répertoire de travail. Vous pouvez utiliser . et .., qui sont respectivement le répertoire courant et son répertoire parent. Taper simplement cd vous ramènera à votre répertoire personnel. Taper cd - vous renverra dans le dernier répertoire visité. Et enfin, vous pouvez spécifier le répertoire de l'utilisateur pierre en tapant ~pierre (~ seul signifie votre propre répertoire personnel). Notez qu'en tant qu'utilisateur normal, vous ne pouvez, en général, pas accéder au répertoire d'un autre utilisateur (à moins qu'il ne l'ait explicitement autorisé ou que tel soit le réglage de la configuration par défaut du système), sauf si vous êtes root, donc soyons root et entraînons-nous :
$ pwd /root $ cd /usr/share/doc/HOWTO $ pwd /usr/share/doc/HOWTO $ cd ../FAQ-Linux $ pwd /usr/share/doc/FAQ-Linux $ cd ../../../lib $ pwd /usr/lib $ cd ~pierre $ pwd /home/pierre $ cd $ pwd /root |
Maintenant, redevenons un utilisateur ordinaire.
Tous les processus ont en fait leurs variables d'environnement. Le shell vous permet de les visualiser directement avec la commande echo. Voici quelques variables intéressantes :
HOME : cette variable d'environnement contient une chaîne de caractères désignant votre répertoire personnel.
PATH : elle contient la liste de tous les répertoires dans lesquels le shell doit chercher des exécutables quand vous tapez une commande (notez que, contrairement à DOS, par défaut, le shell n'ira pas chercher les commandes dans le répertoire courant !).
USERNAME : cette variable contient votre nom de login.
UID : elle contient votre identifiant utilisateur.
PS1 : cette variable abrite la définition de votre invite. C'est souvent une combinaison de séquences spécifiques, et vous pouvez lire la page de manuel de bash(1) pour plus de renseignements.
Pour que le shell affiche la valeur d'une variable, vous devez mettre un $ devant son nom. Ici, echo va vous être utile :
$ echo Bonjour Bonjour $ echo $HOME /home/pierre $ echo $USERNAME pierre $ echo Bonjour $USERNAME Bonjour pierre $ cd /usr $ pwd /usr $ cd $HOME $ pwd /home/pierre |
Vous constaterez que le shell substitue la valeur de la variable avant d'exécuter la commande, sinon notre cd $HOME n'aurait pas fonctionné. En fait, le shell a en premier lieu remplacé $HOME par sa valeur, soit /home/pierre ; la ligne est donc devenue cd /home/pierre, ce que nous recherchions. Même chose pour echo $USERNAME, etc.
Peu de choses à dire, si ce n'est que cette commande fait simplement et littéralement ce qu'elle énonce : afficher le contenu d'un ou de plusieurs fichiers sur la sortie standard, donc l'écran en temps normal :
$ cat /etc/fstab /dev/hda5 / ext2 defaults 1 1 /dev/hda6 /home ext2 defaults 1 2 /dev/hda7 swap swap defaults 0 0 /dev/hda8 /usr ext2 defaults 1 2 /dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0 none /proc proc defaults 0 0 none /dev/pts devpts mode=0620 0 0 /dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0 $ cd /etc $ cat modules.conf shells alias parport_lowlevel parport_pc pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq #pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start #alias char-major-14 sound alias sound esssolo1 keep /bin/zsh /bin/bash /bin/sh /bin/tcsh /bin/csh /bin/ash /bin/bsh /usr/bin/zsh |
Son nom est un jeu de mots sur le premier pager existant sous UNIX, qui se nommait more[1]. Un pager est un programme dont le but est d'autoriser la visualisation de longs fichiers page par page (plus précisément, écran par écran). Nous parlons de less plutôt que de more car son utilisation est beaucoup plus intuitive. Utilisez donc less pour voir des gros fichiers, qui sont trop gros pour l'écran. Par exemple :
less /etc/termcap |
Pour naviguer dans le fichier, utilisez simplement les touches fléchées haut et bas, et q pour quitter. En fait, less peut faire bien plus : tapez simplement h pour avoir de l'aide (en anglais), et lisez. Mais de toute façon, l'objectif de cette section était de vous permettre de lire de longs fichiers et, nous l'espérons, cet objectif est maintenant atteint :-)
Cette commande est équivalente à celle nommée dir sous DOS, mais elle peut accomplir beaucoup plus de choses. Ceci est dû en grande partie au fait que les fichiers, eux-mêmes, font nettement plus ! La syntaxe de la commande ls est comme suit :
ls [options] [fichier|répertoire] [fichier|répertoire...] |
Si aucun fichier ou répertoire n'est mentionné sur la ligne de commande, ls fera la liste des fichiers du répertoire courant. Ses options sont très nombreuses, et nous n'en citerons que quelques-unes :
-a : fait une liste de tous les fichiers, y compris les fichiers cachés (rappelons que sous UNIX, les fichiers cachés sont ceux dont le nom commence par un point (.)) ; l'option -A fait une liste de « presque » tous les fichiers, à savoir tous les fichiers qu'afficherait l'option -a sauf « . » et « .. ».
-R : fait une liste récursivement, par exemple, tous les fichiers et sous-répertoires des répertoires mentionnés sur la ligne de commande.
-s : affiche la taille en kilo-octets à côté de chaque fichier.
-l : affiche des informations supplémentaires sur les fichiers.
-i : affiche le numéro d'inœud (le numéro unique du fichier sur un système de fichiers, voir le chapitre Le système de fichiers Linux) en face de chaque fichier.
-d : traite les répertoires comme des fichiers normaux au lieu de lister leur contenu.
Quelques exemples :
ls -R : fait une liste récursive des fichiers du répertoire courant.
ls -is images/ .. : fait une liste des fichiers du répertoire images/ et du répertoire parent, avec pour chaque fichier son numéro d'inœud et sa taille en kilo-octets.
ls -al images/*.png : fait une liste de tous les fichiers (y compris les fichiers cachés) du répertoire images/ dont le nom se termine par .png. Notez que cela comprend aussi le fichier .png, si celui-ci existe.
Beaucoup de séquences de touches sont disponibles, lesquelles peuvent vous faire gagner du temps précieux. Nous vous proposons une liste de celles qui sont essentielles. Nous supposons ici que vous utilisez le shell par défaut de Mandrake Linux, soit bash. Toutefois, ces séquences de touches devraient aussi fonctionner avec d'autres shells.
D'abord, les touches fléchées : bash maintient un historique des commandes que vous tapez, dans lequel vous pouvez vous déplacer avec les flèches haut et bas. Vous pouvez remonter jusqu'à un nombre de lignes définies dans la variable d'environnement HISTSIZE. De plus, l'historique est persistant d'une session à l'autre, donc vous ne perdrez pas les commandes que vous avez tapées lors d'une session précédente.
Les flèches gauche et droite déplacent le curseur dans le sens indiqué. Vous pouvez ainsi éditer vos lignes de cette façon. Mais il y a plus en matière d'édition : Ctrl+a et Ctrl+e, par exemple, vous amèneront respectivement au début et à la fin de la ligne courante. Les touches Backspace et Suppr fonctionneront comme on s'y attend. Un équivalent de Backspace est Ctrl+h et un équivalent de Suppr est Ctrl+d. Ctrl+k effacera toute la ligne depuis la position du curseur jusqu'à la fin de la ligne, et Ctrl+w effacera le mot qui précède la position du curseur.
Taper Ctrl+d sur une ligne vide fermera la session actuelle, ce qui est un vrai raccourci par rapport à la commande exit. Ctrl+c interrompra la commande en cours d'exécution, sauf si vous étiez en train d'éditer une ligne. Dans ce cas, ce sera l'édition en cours qui sera interrompue et vous serez ramené à l'invite. Ctrl+l nettoie l'écran.
Enfin, il parlons un peu de Ctrl+s et Ctrl+q : ces séquences de touches servent respectivement à suspendre et à restaurer le flux de caractères sur un Terminal. Elles sont très peu utilisées, mais il peut arriver que vous tapiez Ctrl+s par inadvertance (après tout, les touches s et d sont très proches l'une de l'autre sur un clavier...). Donc, si vous appuyez sur des touches mais ne voyez rien apparaître à l'écran, essayez Ctrl+q d'abord et faites attention : tous les caractères que vous avez tapés entre le Ctrl+s non désiré et le Ctrl+q apparaîtront alors sur l'écran.
[1] | More signifie « plus » et less signifie « moins » |
Page précédente | Début | Page suivante |
Les processus | Remonter | Introduction à la ligne de commande |