Sous FreeBSD, beaucoup du travail quotidien est effectué sous
une interface en ligne de commande appelée interpréteur de
commandes ou “shell”. Le rôle principal d'un
interpréteur de commandes est de prendre les commandes sur le
canal d'entrée et de les exécuter. Beaucoup
d'interpréteurs de commandes ont également des fonctions
intégrées pour aider dans les tâches quotidiennes
comme la gestion de fichiers, le mécanisme de
remplacement et d'expansion des jokers (“file globbing”),
l'édition de la ligne de commande, les macros commandes, et les
variables d'environnement. FreeBSD est fournit avec un ensemble
d'interpréteurs de commandes, comme sh
,
l'interpréteur de commandes Bourne, et tcsh
,
l'interpréteur de commandes C-shell amélioré.
Beaucoup d'autres
interpréteurs de commandes sont disponibles dans le catalogue des
logiciels portés, comme zsh
et
bash
.
Quel interpréteur de commandes utilisez-vous? C'est vraiment
une question de goût. Si vous programmez en C vous pourriez vous
sentir plus à l'aise avec un interpréteur de commandes
proche du C
comme tcsh
. Si vous venez du monde Linux ou que
vous êtes nouveau à l'interface en ligne de commande d'UNIX®
vous pourriez essayer bash
. L'idée principale
est que chaque interpréteur de commandes à des
caractéristiques uniques qui peuvent ou ne peuvent pas
fonctionner avec votre environnement de travail
préféré, et que vous avez vraiment le
choix de l'interpréteur de commandes à utiliser.
Une des caractéristiques communes des interpréteurs de
commandes est de pouvoir compléter les noms de fichiers
(“filename completion”). En tapant les premières
lettres d'une commande ou d'un fichier, vous pouvez habituellement
faire compléter automatiquement par l'interpréteur de
commandes le reste de la commande ou du nom du fichier en appuyant sur la
touche Tab du clavier. Voici un exemple.
Supposez que vous avez deux fichiers appelés respectivement
foobar
et foo.bar
.
Vous voulez effacer foo.bar
. Donc ce
que vous devriez taper sur le clavier est: rm
fo[Tab].[Tab]
.
L'interpréteur de commandes devrait afficher rm
foo[BEEP].bar
.
Le [BEEP] est la sonnerie de la console, c'est l'interpréteur
de commande indiquant qu'il n'est pas en mesure de compléter
totalement le nom du fichier parce qu'il y a plus d'une
possibilité. foobar
et
foo.bar
commencent tous les deux par
fo
, mais il fut capable de compléter
jusqu'à foo
. Si vous tapez
.
, puis appuyez à nouveau sur
Tab, l'interpréteur de
commandes devrait pouvoir compléter le reste du nom du fichier
pour vous.
Une autre caractéristique de l'interpréteur de commandes est l'utilisation de variables d'environnement. Les variables d'environnement sont une paire variable/valeur stockées dans l'espace mémoire d'environnement de l'interpréteur de commandes. Cet espace peut être lu par n'importe quel programme invoqué par l'interpréteur de commandes, et contient ainsi beaucoup d'éléments de configuration des programmes. Voici une liste des variables d'environnement habituelles et ce qu'elles signifient:
Variable | Description |
---|---|
USER | Le nom d'utilisateur de la personne actuellement attachée au système. |
PATH | La liste des répertoires, séparés par deux points, pour la recherche des programmes. |
DISPLAY | Le nom réseau de l'affichage X11 auquel on peut se connecter, si disponible. |
SHELL | Le nom de l'interpréteur de commandes actuellement utilisé. |
TERM | Le nom du type de terminal de l'utilisateur. Utilisé pour déterminer les capacités du terminal. |
TERMCAP | L'entrée de la base de données des codes d'échappement pour permettre l'exécution de diverses fonctions du terminal. |
OSTYPE | Type du système d'exploitation, e.g. FreeBSD. |
MACHTYPE | L'architecture du CPU sur lequel tourne actuellement le système. |
EDITOR | L'éditeur de texte préferé de l'utilisateur. |
PAGER | Le visualisateur de page de texte préferré de l'utilisateur. |
MANPATH | La liste des répertoires, séparés par deux points, pour la recherche des pages de manuel. |
Fixer une variable d'environnement diffère
légèrement d'un interpréteur de commandes
à l'autre. Par exemple,
dans le style de l'interpréteur de commandes de type C-shell comme
tcsh
et csh
, vous
utiliseriez setenv
pour fixer le
contenu d'une variable d'environnement. Sous les interpréteurs de
commandes Bourne comme sh
et
bash
, vous utiliseriez
export
pour configurer vos
variables d'environnement. Par exemple, pour fixer ou modifier la
variable d'environnement EDITOR
, sous
csh
ou tcsh
une commande
comme la suivante fixera EDITOR
à
/usr/local/bin/emacs
:
%
setenv EDITOR /usr/local/bin/emacs
Sous les interpréteurs de commandes Bourne:
%
export EDITOR="/usr/local/bin/emacs"
Vous pouvez faire afficher à la plupart des
interpréteurs de commandes la variable d'environnement
en plaçant un caractère
$
juste devant son nom sur la ligne
de commande. Par exemple, echo $TERM
affichera
le contenu de $TERM
, car l'interpréteur de commande
complète $TERM
et passe la main à
echo
.
Les interpréteurs de commandes traitent beaucoup de
caractères spéciaux, appelés
métacaractères, en tant que représentation
particulière des données. Le plus commun est le
caractère *
, qui représente
zéro ou plusieurs caractères dans le nom du fichier.
Ces métacaractères spéciaux peuvent être
utilisés pour compléter automatiquement le nom des
fichiers. Par exemple, taper echo *
est presque
la même chose
que taper ls
parce que l'interpréteur de
commandes prendra tous les fichiers qui correspondent à
*
et les passera à echo
pour
les afficher.
Pour éviter que l'interpréteur de commande
n'interprète les caractères spéciaux, ils peuvent
être neutralisés en ajoutant un
caractère antislash (\
) devant. echo
$TERM
affichera votre type de terminal. echo
\$TERM
affichera $TERM
tel quel.
La méthode la plus simple pour changer votre
interpréteur de commandes est d'utiliser la commande
chsh
. En lançant chsh
vous arriverez dans l'éditeur
correspondant à votre variable d'environnement
EDITOR
; si elle n'est pas fixée, cela sera
vi
. Modifiez la ligne “Shell:”
en conséquence.
Vous pouvez également passer le paramètre
-s
à chsh
; cela modifiera
votre interpréteur de commandes sans avoir à utiliser
un éditeur. Par exemple, si
vous vouliez changer votre interpréteur de commandes pour
bash
,
ce qui suit devrait faire l'affaire:
%
chsh -s /usr/local/bin/bash
L'interpréteur de commandes que vous désirez
utiliser doit être présent dans
le fichier /etc/shells
. Si vous avez
installé l'interpréteur de commandes à partir
du catalogue des logiciels portés,
alors cela a dû déjà être fait pour vous.
Si vous avez installé à
la main l'interpréteur de commandes, vous devez alors le
faire.
Par exemple, si vous avez installé bash
à la main et l'avez placé dans
/usr/local/bin
, vous devrez faire:
#
echo "/usr/local/bin/bash" >> /etc/shells
Puis relancer chsh
.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.