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 uti