Salut Michel,
Ce qu'il faut comprendre, c'est que Linux travaille de façon modulaire,
une couche par dessus l'autre. La console texte (le shell) est plus ou
moins la première couche d'accès à ton système. Comme dans le bon vieux
temps du DOS et des gros Unix.
Comme Linux est un clône Unix, la première étape fut d'intégrer les fonctionnalités des système Unix, c'est à dire le multi-tasking et les fonctionalités consoles. On retrouve plusieurs types de consoles héritées du passé Unix, tel que le Bourne Shell arrivé sur les environnements Unix vers 1979 et le C shell étant également un des plus populaires.
Avec la fondation du Free software foundation, le Projet GNU a eu besoin d'un shell gratuit et non propriétaire. Et ainsi est né le Bourne again Shell, ou Bash pour les intimes. C'est la version la plus utilisée, même si on retrouve de nombreuses autres alternatives disponibles.
Comme on peut également définir les fonctionnalités du Shell, on choisit un editing mode, soit le VI ou le Emacs editing mode qui, comme leurs noms l'indiquent, reprennent les fonctions de bases des éditeurs les plus populaires et les intégrent, en partie, au shell.
Donc, pour en venir au Command Line Scripting dans Bash, c'est le principe holywoodien du "one-liner". C'est à dire que l'on peut "aligner" les commandes et les rendre inter-dépendantes. Un peu comme si on aurait pu entrer un fichier .bat complet en une ligne dans le DOS. Le principe équivaut à écrire un script de plusieurs ligne mais directement à partir de la console. Comme dans le vieux DOS, si on pouvait lister un répertoire, les mettre en ordre, en extraires des parties, et les renommer, tout ça avec une seule ligne de commande.
La clef, c'est que le shell permet de rediriger un output et un input dans un fichier sur lequel on peut appliquer de nouvelles actions, en une ligne de commande.
Tout ça pour dire que Linux permet encore ce type de contrôle, en mode texte, et de façon très puissante. Les programmeurs et scripteurs avancées, une fois les multiples codes et fonctions démêlés, y trouvent un outil d'administration système très puissant et efficace.
PS: dans mon message d'hier (en plus publié!) j'ai fais une petite erreur. J'aurais du suivre mon conseil et vérifier le Man page avant de t'écrire que le "su -l" te permettait de rebooter le système. En fait, le "-l" te log comme si tu partais un nouveau login shell, donc il vérifie le fichier .bash_profile du root et oublie les paramètres d'environnement du "user" duquel tu fais le "su -l", et prend les paramètres d'environnement du "root". Pour essayer d'être plus clair, en console, le fichier /.bash_profile définit l'environnement et ses fonctions comme les "paths". Chaque user à son fichier .bash_profile.
Dans le cas d'un user, le répertoire /sbin n'est pas automatiquement inscrit dans le path, ce qui fait que pour faire un shutdown (et non
rebooter (maudite habitude winbug)), il faut préciser le path. Mais en tapant "-l", les répertoires nécessaires au "root user" sont inscrits en mémoire.
Le su sans "-l" te donne les permissions du root, sans pour autant vérifier le fichier .bash_profile. Il garde donc en mémoire les paramètres d'environnement du user duquel tu as entré la commande.
Il s'agit là d'une des multiples fonctionnalités de personnalisation des système Unix qui font en sorte que chacun, sans nuire aux autres, peut se créer des raccourcis, des défauts, etc.
En espérant être cohérent, après tout, j'en ai encore beaucoup à apprendre sur Linux. Disons que j'ai commencé par découvrir Bash et Emacs.
--
Joël Pomerleau
Président
Joel@Contre.COM |
Contre-Conceptions s.e.n.c.
Tél.: (514) 393-4096
Fax.: (514) 393-4176 |