guill.net - La page des réseaux
 

Unix : Introduction et commandes usuelles
Merci à l'auteur : Daniel Schang

Introduction

Ce bureau d'études est consacré à l'utilisation et à la manipulation de shells (sous UNIX, un shell n'est rien d'autre qu'un interpéteur qui cherche à comprendre les commandes que vous entrez au clavier par exemple).

Steve Bourne a donné son nom au premier shell utilisé sous UNIX, le Bourne-Shell: sh. D'autres shells existent tels que le rsh (Restricted Shell), le csh (C-Shell, un shell dérivé du langage C) le ksh (Korn-Shell) et le bash (Bourne Again Shell). C'est ce dernier que nous étudierons plus précisément dans ce bureau d'étude.

Les commandes usuelles

Remarque: le BOURNE AGAIN SHELL, très convivial, est lancé par défaut sur vos machines au démarrage (si tel n'était pas le cas, il aurait fallu taper bash pour lancer un tel shell.)

Rappel de la liste des commandes usuelles
 
 

Commande Descriptif
ls affichage du contenu du répertoire
mkdir création d'un répertoire (make directory)
cd changement de répertoire courant (change directory) cd .. ressort du répertoire.
pwd affichage du répertoire courant (print working directory)
rm suppression d'un fichier (remove)
rmdir suppression d'un répertoire vide (remove directory)
mv changement du nom d'un fichier (move)
cp copie de fichier (copy)
cat concaténation de fichiers (aussi visualisation d'un fichier à l'écran)
more affichage d'un fichier à l'écran
ln génération d'un lien sur un fichier
cmp comparaison de deux fichiers
chmod changement des droits sur un fichier (chmod 700, chmod 400...)
ps affichage de l'état des processus
df affichage de l'espace libre sur disque (disk feel)
du affichage détaillé de l'utilisation du disque (disk use)

Si on ne se souvient plus du fonctionnement d'une commande, faire man <nom de commande>.

Ainsi, la commande ls, peu bavarde renverra par exemple
essai1 essai2 essai3 fichiers

Alors que la commande ls -l affichera
- r w - r - - r - -       1 schang users        5 sep 10      14:55 essai1
- r w x - - - - - -       1 schang users        5 sep 10      14:56 essai2
- - - - - - - - - -        1 schang users        5 sep 10       15:00 essai3
d r w x r - x r - x    2 schang users       1024 sep 10    15:01 fichiers

Le copier-coller sous UNIX

Imaginons que l'on souhaite faire du copier-coller de la chaine who am i dans une fenetre XTERM. Suivez les étapes suivantes:

    sélectionner la zone à copier (clic sur le bouton de gauche de la souris en balayant la zone)
    cliquer sur la fenêtre XTERM pour l'activer
    cliquer sur le bouton du milieu de la souris
Appuyez sur RETURN pour obtenir le résultat.

Remarque: tout comme sous Word par exemple, on peut sélectionner un mot unique en double-cliquant dessus.

Essayez un copier-coller d'une commande bien curieuse: ddate...

Une touche bien pratique

Pour gagner du temps lorsque l'on tape des commandes, on peut utiliser la touche de tabulation: par exemple tapez his puis pressez une fois sur la touche de tabulation. L'ordinateur essaie de compléter au mieux.

Cela fonctionne à n'importe quel moment. Cependant, si il y a ambiguité, l'ordinateur ne sait que répondre. Essayez par exemple de taper x puis la touche de tabulation. Rien ne s'affiche car de nombreuses commandes commençant par le caractère ``x'' existent. A présent réappuyez sur la touche de tabulation, l'ordinateur vous affichera toutes les possibilités. De manière générale, en appuyant 2 fois sur la touche de tabulation, l'ordinateur nous propose toutes les complétions possibles. Essayez à présent de taper tout de suite 2 fois sur la touche de tabulation: l'odinateur vous affiche alors toutes les possibilités.

Une manipulation très pratique

Classiquement, vous lancez nedit sur un fichier java; exemple: nedit fichier.java. Un problème qui en découle: vous ne pouvez plus lancer de commande dans la fenêtre depuis laquelle vous avez lancé le nedit; cette dernière est bloquée (vous avez beau taper javac fichier.java, dans la fenêtre, elle ne répond plus).

Deux solutions s'offrent à vous:

1ère solution:
a) vous tapez CTRL+Z (ceci stoppe le processus: essayez de rentrer quelque chose dans la fenêtre nedit, vous verrez qu'elle est bloquée),
b) vous rendez la fenêtre nedit à nouveau active en entrant au clavier: bg (souvenez-vous du cours, ceci permet de passer l'application courante en arrière-plan)
2ème solution:
vous lancez votre commande directement en arrière plan par nedit fichier.java & (dans ce cas aucun problème de blocage...).
Création d'un fichier texte

Afin de créer un fichier texte, qui pourra jouer le rôle de script, au moins 2 solutions sont possibles:

    faire un nedit <nom de fichier>
    ou
Remarque: de nombreuses autres solutions existent. Ainsi l'usage de l'éditeur vi qui est certes relativement pauvre mais présente l'avantage de fonctionner même si l'environnement est sensiblement dégradé (nous manipulerons brièvement vi dans la suite de ce bureau d'études).

Création d'une arborescence

Avant de créer cette arborescence, voyons comment utiliser les touches de curseur Haut et Bas pour gagner du temps: pressez plusieurs fois sur le curseur vers le haut, à présent sur celui du bas...

Dès lors qu'une commande vous intéresse, vous pouvez utiliser les curseurs Droit et Gauche afin de modifier la ligne en cours.

Rappels sur les droits des fichiers:

Remarque: les droits d'un répertoire se manipulent comme ceux d'un fichier, seul le premier bit sera postionné à ``d'' par défaut pour indiquer qu'il s'agit d'un (d)irectory comme dans l'exemple suivant:

         d r w x r - x r - x 2 schang users 1024 sep 10 15:01 rep

Créer l'arborescence suivante en respectant les droits :
 
droits autres attributs
- r w - r - - r - - 1 schang users 5 sep 10 14:55 essai1
- r w x - - - - - - 1 schang users 5 sep 10 14:56 essai2
- - - - - - - - - - 1 schang users 5 sep 10 15:00 essai3
d r w x r - x r - x 2 schang users 1024 sep 10 15:01 rep


Suite