Shell : Les commandes Linux

(premiére partie)

 


Introduction sur le(s) shell(s) Linux

Le shell (autrement dit l'interpréteur de commande) Linux est une étape obligatoire lorsque l'on travail sur un OS Unix. Il est avant tout un exécutable qui à pour unique but d'interpréter les commandes de l'utilisateur. Il en existe plusieurs , les plus connu étant sh "Bourne shell", bash "Bourne again shell", csh "C Shell", Tcsh "Tenex C shell", ksh "Korn shell" et zsh "Zero shell". Chaques distributions de Linux en posséde au moins un. Par exemple sous un environement KDE on peut y accéder grâce à Konsole ou sous GNOME avec Terminal..


Navigation grâce au shell

  • La commande pwd :

Cette commande sert à savoir ce qu'il y a dans le répertoire où l'on se trouve à toute instant.

Dès l'ouverture de l'invite de commande tapez pwd et appuyez sur entrer.

[Votrepseudo@nomdelordinateur] ~$ pwd

Cette commande aura par exemple cette réponse :

/home/Votrepseudo

Ce qui signifie que vous êtes dans le dossier votrepseudo qui appartient lui même au dossier /home qui fait partie de l'arborescence de /.

  • La commande ls :

Cette commande ls est une cousine de la commande dir sous MS-DOS, comprennez une commande qui nous permet de lister le contenu du répertoire dans lequel on ce situe.

Taper ls puis appuyez sur entrer.

[Votrepseudo@nomdelordinateur] ~$ ls

Cette commande aura par exemple (si vous êtes dans /home/Votrepseudo) cette réponse :

Musique Vidéos Bureau Images Documents Modèles Public monfichiertexte.txt

Cette commande liste tous ce qui se trouve dans le dossier courant, comprennez dans le dossier dans lequel vous êtes actuellement. Les dossier sont de couleur différentes ( selon la distribution de linux que vous avez) de celle des fichiers. Cela vous permet de connaître l'arborescence et ainsi de ne pas vous perdre.

Pour aller voir ce qu'il y a dans le dossier Documents sans pour autant y entrer suffit de tapez ceci :

[Votrepseudo@nomdelordinateur] ~$ ls Documents

Mais en étant dans /home/Votrepseudo et sans y bouger vous pouvez consulter le contenu de n'importe quel répertoire de votre disque dur. Si par exemple pour vous voir afficher le contenu du dossier media se trouvant à la racine tapez alors :

[Votrepseudo@nomdelordinateur] ~$ ls /media

La commande ls posséde des options d'affichage de ces résultats. Voyons ensemble les principals.

L'option -l : Cette option affiche en plus du contenu du répertoire que l'on veux visionner les attributs des dossiers et fichiers présent .

Par exemple :

[Votrepseudo@nomdelordinateur] ~$ ls -l

Donnera cette réponse :

total 5392
drwxr-xr-x 2 Votrepseudo Votrepseudo 4096 2008-02-05 21:29 Bureau
drwxr-xr-x 2 Votrepseudo Votrepseudo 4096 2008-02-08 23:24 Documents
drwxr-xr-x 2 Votrepseudo Votrepseudo 4096 2008-02-06 22:58 Images
drwxr-xr-x 2 Votrepseudo Votrepseudo 4096 2008-02-05 21:29 Modèles
drwxr-xr-x 2 Votrepseudo Votrepseudo 4096 2008-02-05 21:29 Musique
drwxr-xr-x 2 Votrepseudo Votrepseudo 4096 2008-02-05 21:29 Public
drwxr-xr-x 2 Votrepseudo Votrepseudo 4096 2008-02-05 21:29 Vidéos

L'option -a : Affiche les fichiers cachés présent dans le répertoire en plus des autres ( a comme "all" )

L'option -m : Affiche le résultat avec des virgules au lieu d'un affichage en collone.

L'option -t : Affiche le résultat avec un classement chronologique, comprennez par date. (t comme "time")

L'option -F : Affiche les fichiers par type.

L'option -X : Affiche les fichiers par type d'extension.

L'option -r : Affiche dans l'ordre inverse le résultat. (r comme "reverse")

L'opion -lu : Affiche les fichier par date du dernier accès.

Les options de ls peuvent être combiner pour obtenir ce que vous voulez voir afficher.

Par exemple :

[Votrepseudo@nomdelordinateur] ~$ ls -Xm

Vous affichera un classement par type et affichera le résultat avec des virgules.

ou

[Votrepseudo@nomdelordinateur] ~$ ls -ltr

Vous affichera le contenu avec les attributs des dossiers/fichiers par ordre chronologique du plus vieux au plus rescent.

Si le resultat est trop grand pour que vous puissiez tout voir à l'écran, ajouter la commande more comme ceci :

[Votrepseudo@nomdelordinateur] ~$ ls | more Qui ajoutera des pauses entre chaque écran.

  • La commande cd :

La commande cd est trés proche de sa cousine cd de MS-DOS mais la syntaxe différe légérement. Elle sert à se déplacer dans l'arborescence de répertoire.

Pour ce rendre à la racine de votre disque dur il suffit par exemple de taper :

[Votrepseudo@nomdelordinateur] ~$ cd /

le pointeur deviendra alors : [Votrepseudo@nomdelordinateur] /$

Pour ce déplacer dans le dossier media tapez :

[Votrepseudo@nomdelordinateur] /$ cd media

Le pointeur deviendra alors [Votrepseudo@nomdelordinateur] /media$ vous indiquant que vous avez changer de répertoire.

Pour remonter d'un cran dans l'arborescence des répertoire on utilisera la commande suivante :

[Votrepseudo@nomdelordinateur] /media$ cd ..

Qui vous placera alors à la racine / : [Votrepseudo@nomdelordinateur] /$

ATTENTION à la syntaxe : ce n'est pas cd.. mais bien cd .. avec un espace entre la commande cd et les deux points ( La précision dans l'écriture des commandes est de mise)

Pour aller directement dans le répertoire de l'utilisateur il suffit de tapez :

[Votrepseudo@nomdelordinateur] /$ cd ~

Et vous reviendrez à [Votrepseudo@nomdelordinateur] ~$

Notez que si vous êtes loggué en tant que root vous reviendrez à /root avec cette commande.

Création et suppression de répertoire

Pour créer un répertoire on utilise la commande mkdir

Par exemple pour créer le répertoire/dossier "mondossier" dans votre répertoire utilisateur tapez :

[Votrepseudo@nomdelordinateur] ~$ mkdir mondossier

Vous pouvez utilisez l'option -p pour créer directement plusieur dossier et sous dossier.

Par exemple : Vous voullez créer d'un coup un dossier "mail" dans un dossier "internet" qui sera dans le dossier "mondossier" qui eux même n'existe pas. Vous pourrez tapez ceci pour y arriver :

[Votrepseudo@nomdelordinateur] ~$ mkdir -p mondossier/internet/mail

Revient à taper :

[Votrepseudo@nomdelordinateur] ~$ mkdir mondossier
[Votrepseudo@nomdelordinateur] ~$ cd mondossier
[Votrepseudo@nomdelordinateur] /mondossier$ mkdir internet
[Votrepseudo@nomdelordinateur] /mondossier$ cd internet
[Votrepseudo@nomdelordinateur] /mondossier/internet$ mkdir mail

Pour Supprimer un dossier vide, on utilise la commande rmdir (mais il faut que le répertoire soit vide...)

Si vous avez envie de supprimer le répertoire mail dans le dossier internet que vous avez créer, tapez ceci :

[Votrepseudo@nomdelordinateur] /mondossier/internet$ rmdir mail

Il est possible aussi de le supprimer le dossier mail à partir de ~ comme ceci :

[Votrepseudo@nomdelordinateur] ~$ rmdir mondossier/internet/mail

Copier, coller et supprimer des fichiers

  • La commande cp :

Pour copier un fichier ou un répertoire d'un dossier à un autre on utilise la commande cp. On peut tout aussi créer une copie d'un fichier avec un autre nom.

Par exemple si je veux faire une copie de text.txt, et donner le nom de text2.txt sans changer de dossier je vais tapez :

.[Votrepseudo@nomdelordinateur] ~$ cp text.txt text2.txt

Cette commande va créer une copie conforme de text.txt dans le même répertoire avec un nom différent.

Si à présent on veux copier le fichier text.txt dans le répertoire "mondossier" il faudra taper :

[Votrepseudo@nomdelordinateur] ~$ cp text.txt mondossier

Il faut biensûr que text.txt ainsi que le dossier "mondossier" existe et qu'ils soient dans le répertoire courant. Sinon pour faire la même opération quand vous êtes ailleur sur l'arborescence par exemple à la racine tapez ceci :

[Votrepseudo@nomdelordinateur] /$ cp /home/Votrepseudo/text.txt /home/Votrepseudo/mondossier

La syntaxe générale de la commande est donc cp fichier_a_copier destination

ATTENTION : La commande cp écrit le fichier là où on l'envois, s'il existait déjà un fichier text.txt dans "mondossier", le nouveau remplacera l'ancien... vous pouvez donc perdre des donnés de cette maniére. heureusement, il existe des option à cette commande pour éviter ce genre de chose.

L'option -i : Cette option nous avertit de l'existence d'un fichier de même nom et nous demande si l'on veux ou non le remplacer.

Exemple si l'on répéte la copie de fichier text.txt alors que l'on a modifié sa copie dans "mondossier" la modification sera écraser directement. Si l'on veux éviter cela il faut tapez ceci :

[Votrepseudo@nomdelordinateur] ~$ cp -i text.txt mondossier

La réponse sera alors celle ci :

cp : écraser `mondossier/text`?

Tapez "y" pour oui (yes) et "n" pour non. L'opération de copie sera faite dans le cas où un fichier portant le même nom n'existe pas.

  • La commande mv :

Pour déplacer un fichier on utilise la commande mv (move). l'action réaliser sera de copier le fichier en question vers un autre dossier, et de le supprimer de son dossier d'origine. Cette fonction sert aussi à renommer un fichier ou un dossier.

Exemple : Pour renommer text.txt en text3.txt qui ce trouve dans "mondossier" tapez ceci :

[Votrepseudo@nomdelordinateur] /mondossier$ mv text.txt text3.txt

Pour déplacer le fichier text3.txt du dossier "mondossier" dans le dossier "internet" tapez ceci :

[Votrepseudo@nomdelordinateur] /mondossier$ mv text3.txt internet

La syntaxe de cette commande est donc mv fichier_a_déplacer destination pour un couper/coller et mv fichier/dossier_a_renommer nouveaunom.

Pour renommer par exemple les dossier "internet" en "web" on tapera ceci :

[Votrepseudo@nomdelordinateur] /mondossier$ mv internet web

Cette commande posséde des options qui sont les suivantes :

L'option -i : Affiche une demande de confirmation de deplacement pour chaque fichier ou répertoire.

L'option -u : (update) Permet de ne pas remplacer un fichier existant avec le même nom s'il a la même date de modification ou si elle est plus réscente que son remplaçant que l'on veux déplacer.

L'option -b : (backup) Va sauvegarder le fichier existant avant de déplacer son remplaçant

Par exemple : Si nous avons modifier le fichier text.txt qui se trouve dans le répetoire utilisateur ~ et que l'on veux déplacer celui ci dans "mondossier" où il existe une copie de text.txt original. Si on tape ceci :

[Votrepseudo@nomdelordinateur] ~$ mv -b text.txt mondossier

On trouvera une sauvegarde de text.txt original sous le nom de text.txt~ dans le répertoire mon dossier. Que l'on pourra renommer avec cette commande par exemple :

[Votrepseudo@nomdelordinateur] /mondossier$ mv text.txt~ text4.txt

  • La commande rm :

La commande rm (remove) permet d'effacer des fichiers et des dossiers. Cette commande peut être dangereuse si l'on est pas prudent; Mieux vaut ne pas être loggué sous le compte root pour éviter les soucis.

La syntaxe est simple : rm fichier_a_supprimer

Exemple : Vous voullez effacer le fichier text.txt qui ce trouve dans le dossier "mondossier" tapez alors ceci :

[Votrepseudo@nomdelordinateur] /mondossier$ rm text.txt

Cette commande posséde elle-aussi des options :

L'option -i : Demande de confirmation avant de supprimer.

L'option -d : Permet de supprimer un dossier qu'il soit vide ou non. (ATTENTION à son utilisation)

L'option -r : Permet de supprimer un dossier et ses sous-dossiers (ATTENTION)

L'option -f : Permet de supprimer les fichiers et dossiers protégés en écriture sans demande de confirmation (Utilisation dangereuse)

Rechercher un fichier

Pour rechercher un fichier on utilise la commande find. C'est une commande trés puissante et des fois un peu longue à taper.

Syntaxe : find Repertoirederecherche optionsderecherche

Comme vous pouvez le voir, la premiere chose que l'on indique à find c'est à partir d'où chercher le fichier, on indiquera alors le répertoire dans lequel elle cherchera (Par exemple ce sera / si c'est dans tout le disque dur, ce sera /home/Votrepseudo si vous pensez qu'il est dans votre dossier utilisateur...)

La deuxieme chose que l'on indique c'est si l'on cherche un fichier (dans ce cas on écrira -name) ou un dossier (dans ce cas on écrira -type d -name) suivit du nom du fichier ou du dossier (Il en existe bien d'autre mais nous ne les aborderons pas pour l'instant).

Ensuite il faut indiquer à find ce que l'on veux faire du résultat. Ici on ne fait que rechercher, on utilisera donc l'option -print pour afficher le résultat.

Par exemple : Si l'on veux chercher le(s) fichier text.txt dans le répertoire utilisateur et afficher le résultat on tapera ceci :

[Votrepseudo@nomdelordinateur] ~$ find /home -name "text.txt" -print

La commande vous répondra par exemple :

/home/Votrepseudo/mondossier/text.txt

Si à présent vous chercher le dossier web par exemple tapez ceci :

[Votrepseudo@nomdelordinateur] ~$ find /home -type d -name "web" -print

La commande vous répondra par exemple :

/home/Votrepseudo/mondossier/web

Tout ceci n'est qu'un exemple de l'utlisation de la commande find. Sachez tout de même que pour recherchez dans tout votre disque dur, il vous faudra vous loggué en tant que root. Les recherches dans votre dossier utilisateur quand à elles ne poserons aucun soucis.