Sur les systèmes Linux et Unix actuels, l’utilisateur est généralement confronté en premier lieu à un environnement graphique disposant de navigateurs Internet, d’outils graphiques pour parcourir les répertoires et visualiser le contenu des fichiers, d’applications pour la bureautique, de jeux, etc. Le shell ne constitue plus nécessairement le premier contact entre l’utilisateur et le système.
Pourtant il s’agit toujours d’un passage obligé pour qui veut maîtriser et administrer correctement une machine Linux ou Unix. Le shell est tout d’abord une interface efficace pour passer des ordres ou des commandes au système. Il est plus rapide d’employer une ligne comme
$ cp /tmp/fic-0* /home/user/test/
que de lancer un gestionnaire de fichiers, se placer dans le répertoire source, sélectionner les fichiers intéressants, utiliser la commande Copier, se déplacer dans le répertoire destination et utiliser la commande Coller.
Hormis l’aspect d’efficacité et de rapidité des commandes, le shell est un outil extrêmement puissant puisqu’il permet de programmer des actions exécutées intelligemment et automatiquement dans de nombreuses situations :
démarrage du système (boot), tâches administratives, lancement d’application, analyse de fichiers journaux, etc.
Nous verrons dans ce livre qu’il est également possible d’écrire des scripts shell pour programmer de véritables petites applications utiles au quotidien et facilement personnalisées par l’utilisateur.
Le langage de programmation du shell est assez ardu, peu intuitif et peu tolérant, aussi conseillerai-je au lecteur de mettre le plus vite possible ses connaissances en pratique, en faisant « tourner » les exercices et les exemples, en les modifiant, en les personnalisant.