Le Shell
Résumé
Cet article a pour but d'expliquer ce qu'est le Shell et les principales commandes qu'il permet. Bien entendu il faudrait plus qu'un seul article pour donner tous les détails de l'intépréteur de commande sous Linux, nous vous offrons donc dans ce qui suit une Initiation au Shell.
Tout d'abord qu'est-ce que le Shell? Il s'agit en fait de l'interpréteur de ligne de commande de Linux, tout comme le MS-DOS qui est celui de Windows. Mais c'est quoi ça aussi un interpréteur de ligne de commande me direz-vous? Eh bien c'est en fait l'interface homme-machine dans laquelle la communication entre l'utilisateur et l'ordinateur s'effectue en mode texte. En pratique l'utilisateur tape du texte au clavier, le système analyse ce qu'on lui a demandé et soit ouvre une application soit envoie une réponse si on lui a fait une requête.
Voilà à quoi ressemble un Shell :
L'article qui suit ne se veut pas être un cours complet et exhaustif sur le shell et ce pour deux raisons : d'une part le sujet est trop vaste et il me serait impossible de traiter le tout en un seul article, et d'autre part il existe déjà quelques tuto très bien faits pour lesquels les liens seront donnés plus bas.
Malgrès tout je vais redonner ici les bases du Shell et également les commandes de base qui vous permettront de débuter et d'avancer tout de même dans son maniement.
Lorsque vous lancez votre Shell vous tombez sur cette fenêtre :
Il faut savoir que plusieurs Shells sont disponibles tels que le bash, sh, tcsh, ksh, ash, csh, etc. Cependant la plupart des distributions utilisent aujourd'hui le bash, ce sera donc celui que j'utiliserai dans cet article. Mais rassurez-vous il n'y a quasiment pas de différences entre les différents shells.
Donc vous tombez au démarrage de votre shell sur cette ligne :
[linuxtuto@localhost ~]$
Evidemment cette ligne sera différente pour vous. Décrivons là :
- linuxtuto correspond au nom d'utilisateur sous lequel vous vous êtes connecté,
- localhost correspond au nom de votre ordinateur. Ici je ne lui avais pas donné de nom, mais vous auriez pu avoir pc-de-linuxtuto par exemple,
- ~ ce symbole signifie que vous êtes dans votre répertoire maison (votre home),
- $ et ce symbole quand à lui signifie que vous êtes un utilisateur.
Remarque : Vous auriez été root, c'est à dire le super-utilisateur (l'administrateur qui s'occupe du système, celui qui a tous les droits sur chaque fichier), le symbole $ serait devenu un # .
Devenir root : su
En parlant du root, voyons notre première commande : celle qui nous fait devenir root.
[linuxtuto@localhost ~]$ su Mot de passe: ou [linuxtuto@localhost ~]$ sudo su Mot de passe:
Un message apparait vous demandant d'entrer le mot de passe du root. Entrez-le et une nouvelle ligne apparaît :
[root@localhost linuxtuto]#
Comme vous pouvez le constater l'utilisateur linuxtuto s'est transformé en root, le répertoire courant ~ est devenu linuxtuto (en effet je ne suis pas dans le repertoire courant du root mais bien dans celui de l'utilisateur linuxtuto), et le $ s'est transformé en #.
Attention :A partir de ce moment vous faites ce que vous voulez sur le système, vous pouvez changer les paramètres d'administration mais vous pouvez également effacer n'importe quel fichier, même un de ceux nécessaires au bon lancement de Linux! L'utilisateur root est donc à utiliser avec une grande prudence.
Par la suite lorsque vous souhaiterez revenir à l'utilisateur normal vous n'aurez qu'à taper :
[root@localhost linuxtuto]# exit
Naviguer dans le shell : pwd, cd et ls
Les commandes pwd et cd vont vous permettrent de vous "balader" dans l'arborescence de linux, comme si vous cliquiez sur sur l'icône d'un dossier pour entrer dedans.
Tout d'abord regardons dans quel répértoire nous sommes, pour cela :
[linuxtuto@localhost ~]$ pwd /home/linuxtuto
On peut voir que nous sommes dans le repertoire linuxtuto/, lui-même contenu dans le répertoire home/, qui lui aussi est contenu dans le repertoire racine /. Regardons maintenant ce que ce répertoire contient avec la commande ls:
[linuxtuto@localhost ~]$ ls Bureau Documents Musiques Images Videos Téléchargements
Dans mon exemple il y a plusieurs répertoires, 6 en tout. Nous allons maintenant utiliser la commande cd pour entrer dans l'un de ces répertoires :
[linuxtuto@localhost ~]$ cd Musiques [linuxtuto@localhost Musiques]$ ls indochine.mp3 scorpion.mp3
Et voilà pour l'utilisation de ces 3 commandes, vous l'aurez constater il n'y a rien de bien compliqué là-dedans. Pour rappel : pwd pour voir où l'on est, ls pour voir ce que le répertoire dans lequel on est contient, et cd pour changer de répertoire.
Pour la commande cd il y a quelques petites astuces, comme cd .. pour aller dans le répertoire parent et cd tout court pour aller dans le répertoire /home de l'utilisateur.
Création et suppression de fichiers et de répertoires : touch, rm, mkdir et rmdir
Bon on sait maintenant naviguer dans les répertoires mais on ne sait pas comment les créer et les supprimer. Nous allons donc créer un répertoire avec la commande mkdir:
[linuxtuto@localhost ~]$ ls Bureau Documents Musiques [linuxtuto@localhost ~]$ mkdir FichiersTexte [linuxtuto@localhost ~]$ ls Bureau Documents Musiques FichiersTexte
On peut constater que le répertoire FichiersTexte a bien été créé.
Créons un fichier texte dedans avec la commande touch :
[linuxtuto@localhost ~]$ cd FichiersTexte [linuxtuto@localhost FichiersTexte]$ touch essai.txt [linuxtuto@localhost FichiersTexte]$ ls essai.txt
Et voilà! Nous avons bien notre nouveau fichier texte contenu dans notre nouveau répertoire.
Si nous souhaitons supprimer notre fichier texte, rien de plus simple il suffit d'utiliser la commande rm :
[linuxtuto@localhost FichiersTexte]$ rm essai.txt [linuxtuto@localhost FichiersTexte]$ ls
Notre fichier texte a disparu!
De plus si nous souhaitons supprimer le répertoire FichiersTexte, il faut utiliser la commande rmdir :
[linuxtuto@localhost FichiersTexte]$ cd [linuxtuto@localhost ~]$ ls Bureau Documents Musiques FichiersTexte [linuxtuto@localhost ~]$ rmdir FichiersTexte [linuxtuto@localhost ~]$ ls Bureau Documents Musiques
Le répertoire FichiersTexte a désormais disparu!
Remarque : Cependant si vous avez essayer de supprimer un répertoire qui contenait un ou plusieurs fichiers, vous avez pu constater qu'un message d'erreur apparaissait vous signalant que le répertoire n'était pas vide. Pour outrepasser cette erreur :
[linuxtuto@localhost ~]$ rm -r votre_repertoire
Manipuler des fichiers : cp, mv
Dans les interfaces graphiques il y a le bon vieux bouton droit --> copier-coller ou couper-coller. Mais comment faire en ligne de commande? Eh bien il y a une commande allouée à chaque cas : le copier et le couper. Pour copier-coller un fichier la commande est cp. Pour l'utiliser la syntaxe est:
[linuxtuto@localhost ~]$ cp fichier_source repertoire_cible
Donc si je veux copier le fichier /home/moi.jpg dans le dossier /home/photos/ je fais :
[linuxtuto@localhost ~]$ cp /home/moi.jpg /home/photos/
Si c'est un répertoire que vous souhaitez copier-coller il faudra faire un cp -r. Par exemple :
[linuxtuto@localhost ~]$ cp -r /home/mes_vacances/ /home/photos/
Pour couper un fichier maintenant la méthode utilisée est simplement de le "changer" d'emplacement. La commande est donc mv avec comme syntaxe :
[linuxtuto@localhost ~]$ mv fichier_source repertoire_cible
Ce qui donnerait en reprenant l'exemple du copier-coller : :
[linuxtuto@localhost ~]$ mv /home/moi.jpg /home/photos/
Dans ce cas et contrairement à la commande cp le fichier moi.jpg n'existera plus dans /home mais uniquement dans /home/photos .
La commande est la même lorsque qu'il s'agit de répertoire, à savoir :
[linuxtuto@localhost ~]$ mv /home/mes_vacances/ /home/photos/
Remarque : Si vous vous trouvé déjà dans le /home/ il n'y a pas besoin de l'écrire dans la commande. Par exemple ici j'aurais pu mettre :
[linuxtuto@localhost ~]$ cp moi.jpg photos/ [linuxtuto@localhost ~]$ cp -r mes_vacances/ photos/ [linuxtuto@localhost ~]$ mv mes_vacances/ photos/
Manuel des commandes : man
J'ai parlé précédemment des commandes de base sans en spécifier les options. Les options sont des lettres à rajouter en plus de la commande et précédées d'un tiret. Elles changent en quelque sorte la propriété de la commande.
Par exemple pour la commande ls vue plus haut, une de ses options est :
[linuxtuto@localhost ~]$ ls -l
A la différence de la simple commande ls, celle-ci donne quelques informations supplémentaires telles que les permissions du fichier, le propriétaire, sa taille...
Et cet exemple n'en est qu'un parmi tant d'autres. En effet chaque commande contient un nombre plus ou moins important d'options, pouvant aller jusqu'à une vingtaine voire plus. Et en sachant qu'il y a plus d'une centaine de commandes linux... Imaginez le nombre de combinaisons :S
Mais ne vous inquiétez pas, il ne vas pas falloir apprendre par coeur ces centaines de combinaisons ou encore se balader avec un calepin les répertoriant toutes! Pour cela les concepteurs du shell ont prévu un outils plus que pratique : la commande man !
Cette commande suivie d'une seconde nous donne toute une page de manuel expliquant comment se servir de la seconde commande, quelles sont les options possibles et à quoi servent-elles. A titre d'exemple si je veux la page de manuel de la commande ls je tapes simplement :
[linuxtuto@localhost ~]$ man ls
Son utilité : Pas besoin de connaître chaque option par coeur, on consulte la page du manuel de la commande et on sait tout de suite quelle option choisir!
Retenez bien cette commande man et surtout n'hésitez pas à l'utiliser elle peut s'avérer forte utile à tout moment.
Comment ouvrir un fichier?
Pour l'instant nous savons naviguer dans les dossiers, créer ou supprimer des fichiers mais comment faire pour ouvrir un fichier? Par exemple ouvrir dans un éditeur de texte un fichier texte, ou ouvrir dans un navigateur une page html.
Pour cela rien de plus simple, il suffit simplement d'écrire le nom du programme que l'on souhaite voir s'ouvrir, suivi du fichier qui sera ouvert dedans.
Si je souhaites ouvrir une page html contenue dans l'un de mes répertoires avec Firefox, je tapes :
[linuxtuto@localhost ~]$ firefox ma_page.html &
Pour un fichier video :
[linuxtuto@localhost ~]$ vlc ma_video.mpg &
Je vous entends déjà : "Mais c'est quoi ce & ?!"
En fait lorsque vous lancez une application c'est un processus qui démarre sous linux. Et si vous ne mettez pas ce & (é commercial) à la fin de la commande votre shell restera lié au processus invoqué. Donc plus moyen d'utiliser le shell et donc de lancer d'autres applications (sauf en ouvrant un autre shell). En revanche si vous mettez bien le & pas de souci votre application se lancera correctement et vous pourrez par la suite continuer d'utiliser votre shell.
Bien entendu il arrive que par mégarde on oublie ce &. Il n'y a pas de quoi s'inquiéter, dans ce cas il suffit de faire un Ctrl+Z (touche Ctrl de votre clavier et en même temps la lettre Z) sur votre shell pour revenir en ligne de commande et de lancer la commande bg pour remettre l'application en arrière-plan. Ce qui donnerait :
[linuxtuto@localhost ~]$ firefox (Je fais le Ctrl+Z) [3]+ Stopped firefox [linuxtuto@localhost ~]$ bg [3]+ firefox &
Remarque : le nombre entre crochets est le numéro de « job » du shell. Ce numéro sert à identifier les commandes du shell de manière unique.
Voilà pour les principales commandes de linux qui vous serviront à naviguer, manipuler et ouvrir des fichier. Mais il en existe bien sûr des dizaines d'autres toutes plus importantes les unes que les autres.
Une liste récapitulative étant plus simple à lire qu'un long texte, voici une liste non-exhaustive des commandes de base de linux :
(Ce document est tiré du site Guides-info.org.)
Je vous invite à consulter ces sites qui expliquent très bien le shell et ses commandes de base :
Coagul.org : les commandes de base

Cette création par http://www.linuxtuto.fr est mise à disposition selon les termes de la licence Creative Commons Paternité-Pas d'Utilisation Commerciale-Partage des Conditions Initiales à l'Identique 2.0 France.
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
Version imprimable
Envoyer à un ami




![Validate my RSS feed [Valid RSS]](/files/divers/images/valid-rss.png)

Commentaires récents
il y a 8 semaines 1 jour
il y a 9 semaines 3 jours
il y a 9 semaines 5 jours
il y a 10 semaines 1 jour
il y a 42 semaines 6 jours
il y a 1 an 6 semaines
il y a 1 an 7 semaines
il y a 1 an 14 semaines
il y a 1 an 17 semaines
il y a 1 an 18 semaines