[69 :: Cette page]
|
Console sous Linux |
1. Introduction
Vous allez ? travers ce tutoriel apprendre ? évoluer progressivement dans le mode console, passage inévitable lors de l'utilisation d'une distribution Gnu Linux.
Pour que tout soit clair, il faut que vous sachiez que Windows et Linux divergent radicalement dans leur conception. Les applications Microsoft m?lent intivement traitement et affichage. Ce mod?le interdit la combinaison de programmes en vue de réaliser une tache originale.
Les applications graphiques Gnu Linux ne sont que des frontaux masquant des appels ? des commandes ou ? des biblioth?ques Open source largement documentées. Tout est la pour que l'utilisateur puisse avoir acc?s au coeur du syst?me.
2. Les terminaux virtuels
La combinaison de touches [alt] + [Fn] (pour le mode texte) ou [Ctrl] + [alt] + [Fn] (pour le mode graphique) commute vers l'un des terminaux virtuels offerts par Linux. En général, il y'en ? 6 par default mais Linux peut en gérer jusqu'? 64 ! Vous pouvez ainsi mener plusieurs sessions de front si vous le désirer.
Le terme "console" désigne le moniteur de votre Station Linux (quel jeu de mots !). La console affiche les messages du syst?me et est associée au fichier de périphérique /dev/tty0 vers lequel pointe le lien symbolique /dev/console. Un seul terminal virtuel y est rattaché ? un instant donné.
2.1 Les émulateurs de terminaux
Heureusement il existe des émulateurs de terminaux. Il en existe plusieurs comme Xterm, Aterm, Eterm etc... Xterm est l'émulateur de terminal X standard. Il simule le fonctionnement des terminaux DEC VT102 et Tektronix 4014. Les terminaux VT fonctionnent en mode texte alors que les Tektronix en mode graphique. Vous pouvez donc grace ? ces émulateurs simuler un terminal virtuel tout en restant en mode graphique.
Le propriétaire d'une session ouvert dans un emulateur de terminal est le propriétaire de l'environement graphique. Le prompt confirme si l'utilisateur poss?de ou non un acc?s privilégié au syst?me. Le signe $indique une session ordinaire, le signe # une session root.
3. Saisir des commandes
Pour saisir des commandes, il faut que vous vous placiez dans un terminal virtuel ou bien ouvrez un émulateur de terminal (le plus souvent) que j'apellerai dorénavant un terminal ou une console m?me si c'est un abus de langage. En ouvrant la console, vous pouvez remarquer que la session concerne un utilisateur de base grace au signe $ sur le prompt.
Une commande est tapée au clavier puis validée par la pression de la touche [Enter]. Commencez par une commande simple :
Citation :
Vous obtenez alors la sortie suivante :
Citation :
Sortez de la session en tapant exit. N'oubliez pas de valider en pressant la touche [Enter].
3.1 L'edition
Vous pouvez éditer la commande en cours de saisie. Bash comprend un tampon géré par la biblioth?que Gnu Readline. Les touches fléchées agissent sur la position du curseur. Voici un petit récapitulatif des touches de controle Readline :
Fl?che gauche : recule le curseur d'une position.
Fl?che droite : avance le curseur d'une position.
[Debut] : déplace le curseur en début de ligne.
[Fin] : déplace le curseur en fin de ligne.
[Backspace] : efface le caract?re placé avant le curseur.
[Suppr] : efface le caract?re placé sous le curseur.
La touche [Enter] valide la ligne tapée indépendamment de la position du curseur. Des combinaisons de touches communes ? tous les mod?les de terminaux compl?tent cet ensemble :
Ctrl + b : recule le curseur d'une position.
[Ctrl] + [f] : avance le curseur d'une position.
[Ctrl] + [a] : déplace le curseur en début de ligne.
[Ctrl] + [e] : déplace le curseur en fin de ligne.
[Alt] + b : recule le curseur d'un mot.
[Alt] + [f] : avance le curseur d'un mot.
[Ctrl] + [x] : annule l'action de la derni?re commande.
[Ctrl] + [d] : supprime le caract?re placé sous le curseur.
[Ctrl] + [k] : supprime le texte de la position du curseur ? la fin de ligne.
[Ctrl] + [y] : rappelle le texte supprimé ? la position du curseur.
[Ctrl] + [l] (ou clear) : efface l'écran.
3.2 Les options
Des options affinent le sens des commandes. Les options Unix sont tr?s br?ves et précédées d'un tiret. Vous pouvez par exemple grace ? uname afficher la version du noyau en cours d'exécution :
Citation :
La plupart du temps, une option courte est associée ? une option longue précédée cette fois de 2 tirets. C'est plus long ? écrire mais plus facile ? mémoriser, vous auriez pu écrire :
Citation :
3.3 Les commandes internes et externes
Il existe deux types de commandes. Les premi?res sont directement intégrés au shell, ce qui en accél?re l'exécution. Les secondes sont indépendantes. La commande which les localise dans des répertoires dédiés au syst?me :
Citation :
La commande uname se trouve dans le répertoire /bin. Vous auriez tr?s bien pu faire :
Citation :
$ which which
/usr/bin/which
which et uname sont donc des commandes externes. Nous allons maintenant voir le cas de la commande alias :
Citation :
$ which alias
which: no alias in (/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/ 3.3:/opt/ati/bin:/usr/X11R6/bin:/opt/blackdown-jdk-1.4.1/bin:/opt/ blackdown-jdk-1.4.1/jre/bin:/opt/sancho:/usr/qt/3/bin:/usr/kde/3.2/bin: /usr/games/bin:/opt/vmware/bin:/usr/kde/3.2/bin)
La commande alias est interne. Elle n'a donc pas été localisée dans un des répertoire standard.
Nous allons voir ici la liste des répertoires de commandes standard. Des efforts visent ? standardiser l'arborescence de fichiers Linux. Les commandes sont classées de cette façon :
* /bin Commandes de base
* /sbin Commandes principales de l'administrateur
* /usr/bin Commandes principales de l'utilisateur
* /usr/sbin Commandes annexes de l'administrateur
* /usr/loval/bin Commandes locales
* /usr/local/sbin Commandes locales de l'administrateur
* /usr/X11R6/bin Commandes X window
3.4 Les alias
Un alias établit une correspondance entre un nom de commande et une chaîne de caract?res de remplacement. Bash maintient un dictionnaire d'alias et déclenche la substitution lorsqu'il rep?re une des entrées sur la ligne de commande.
La commande alias tapée sans argument affiche la liste des alias déclarés. Voici les alias que j'ai établi pour ma session :
Citation :
$ alias
alias ll='ls --color -l'
alias ls='ls --color'
alias pinv='ping -c2 voila.fr'
Je n'en ai pas beaucoup car je préf?re connaitre les options exactes des commandes que j'utilise. Les alias ls et ll sont en fait respectivement les commandes : ls --color et ls --color -l. Vous pouvez voir avec l'alias pinv par exemple que ça fait gagner pas mal de temps !
Supprimer un alias
Pour supprimer un alias dans votre session, utilisez la commande unalias. Prenons l'exemple de pinv :
Citation :
unalias pinv
$ pinv
-bash: pinv: command not found
La commande pinv est maintenant inconnue car l'alias qui correspondait ? "ping -c2 voila.fr" n'est plus valable.
Bloquer la substitution
Dans le shell Bash, placer un mot entre des apostrophes bloque le mécanisme d'alias. Nous allons prendre un exemple tout simple en prenant en compte les alias déclarés un peu plus haut. Créez un alias nom de la commande uname -a :
Citation :
Vous pouvez tester ce nouvel alias tout de suite :
Citation :
$ nom
Linux pc-lucky 2.6.6 #2 Wed Jun 30 19:53:23 CEST 2004 i686 AMD Athlon(tm) XP 1600+ AuthenticAMD GNU/Linux
Maintenant, bloquons le mécanisme d'alias en plaçant la commande entre des apostrophes :
Citation :
$ 'nom'
-bash: nom: command not found
La commande nom est inconnue du syst?me. Vous pouvez aussi grace ? ce syst?me rendre son sens originel ? une commande sans pour autant supprimer son alias simplement en la mettant entre deux apostrophes.
4. Les variables
Des variables servent ? orienter le fonctionnement du shell et des programmes. Une variable établit une correspondance (nom, valeur). La valeur est une chaine de caract?res.
4.1 Les variables BASH
BASH fixe un jeu initial de variables. Elles renseignent principalement sur l'environnement syst?me et le contexte d' exécution du shell courant. La commande set affiche la liste triée des variables BASH :
Citation :
set
BASH=/bin/bash
BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i686-pc-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
CC=gcc
CLASSPATH=.
COLORTERM=gnome-terminal
COLUMNS=80
...
Un champ vide indique une valeur nulle et non l'absence de la variable concercée.
4.2 Consulter la valeur d'une variable
Classiquement la commande echo affiche le texte passé en argument. C'est le m?me principe pour une variable. L'expression $var retourne le contenu de la variable var.
Citation :
echo $PATH
/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
4.3 Créer une variable avec sa valeur
L'expression var=test affecte la valeur test ? la variable de nom var. Vous n'avez besoin de rien d'autre pour créer une variable. Prenons un exemple :
Citation :
LFS=/mnt/lfs
cd $LFS
pwd
/mnt/lfs
echo $LFS
/mnt/lfs
4.4 Exporter une variable
La commande export marque une variable de telle façon que les commandes exécutées par la suite en héritent. Prenons un exemple avec les CFLAGS :
Citation :
export CFLAGS=-march=athlon-xp
echo $CFLAGS
-march=athlon-xp
Désormais votre compilateur gcc compilera avec le CFLAG égale ? -march=athlon-xp. Pour faire l'inverse on utilisera unset :
Citation :
A noter que l'export n'est valable pour pour la session en cours. Il suffit de quitter la session et la valeur de la variable aura disparu.
QuebecOS est basé à Rimouski et fondé par Sébastien Gagnon © 2004-2010
Theme QOS-humain