Unix : Introduction et commandes usuelles  
 

 

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

CommandeDescriptif
lsaffichage du contenu du répertoire
mkdircréation d'un répertoire (make directory)
cdchangement de répertoire courant (change directory) cd .. ressort du répertoire.
pwdaffichage du répertoire courant (print working directory)
rmsuppression d'un fichier (remove)
rmdirsuppression d'un répertoire vide (remove directory)
mvchangement du nom d'un fichier (move)
cpcopie de fichier (copy)
catconcaténation de fichiers (aussi visualisation d'un fichier à l'écran)
moreaffichage d'un fichier à l'écran
lngénération d'un lien sur un fichier
cmpcomparaison de deux fichiers
chmodchangement des droits sur un fichier (chmod 700, chmod 400...)
psaffichage de l'état des processus
dfaffichage de l'espace libre sur disque (disk feel)
duaffichage 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
      faire cat >  <nom de fichier> <RETURN>
      ...taper le contenu de votre fichier...
      une fois que vous avez fini de taper le contenu, faire <CTRL> + D

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:

    On utilise la commande chmod,
    prenons le cas d'un fichier essai dont les droits seraient par exemple r w x  r - x  r - -
    le premier ``r'' tout à gauche désigne le droit un lecture pour le propriétaire,
    le premier ``w'' tout à gauche désigne le droit un écriture pour le propriétaire,
    le premier ``x'' tout à gauche désigne le droit un exécution pour le propriétaire,
    la séquence suivante de 3 caractères désigne les droits pour le groupe auquel appartient l'utilisateur,
    finalement, les derniers 3 caractères désignent les droits pour un utilisateur quelconque (ici, ce dernier n'aura qu'un droit en lecture),
    ainsi, pour octroyer de tels droits sur le fichier essai, il suffit d'avoir fait au préalable un chmod 754 car la décomposition des droits se fait bit à bit par paquets de 3 bits (Propriétaire, Groupe, Utilisateur quelconque). Exemple pour les droits 754 :

      7 = 4 + 2 + 1     r w x
      5 = 4 + 0 + 1     r - x
      4 = 4 + 0 + 0     r - -

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 :

droitsautres 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 - x2 schang users 1024 sep 10 15:01 rep

Daniel Schang
 

-= From guill.net =-