Précédent Suivant Index

5   Autres commandes utiles

5.1   Compression et commandes associées

Quand un problème de place surgit, on compresse les fichiers avec la commande gzip fichier qui comprime le (ou les) fichiers passés en argument. Leur nom se voit augmenter du suffixe .gz.

Vous pouvez aussi recevoir ou récupérer sur le réseau de tels fichiers, pour les décompresser, on utilise la commande gunzip fichier.gz qui décomprime le fichier comprimé par gzip.

On veut souvent compresser tout un répertoire en un seul fichier, il faut alors que le répertoire soit vu comme une entité en soi. Pour cela, on utilise la commande tar qui servait à l'origine à stocker et déstocker des informations sur bande. Pour ne faire qu'un d'un ensemble de fichiers tar -cf résultat liste des fichiers. Pour retrouver l'ensemble de fichiers à partir du fichier résultat, tar -xf résultat. Pour voir ce qui se passe, ajouter v (comme verbose) aux options; pour voir ce qui va apparaître sans tout déplier remplacer x par t.

Vous pouvez aussi utiliser une commande très simple lorsqu'elle est disponible sur votre système, la commande shar. Pour ne faire qu'un seul fichier shar liste des fichiers > résultat et pour déplier l'ensemble des fichiers sh résultat.

5.2   Comment retrouver un fichier?

On dispose de deux outils, grep et find, pour retrouver un fichier ou des lignes d'un fichier.

grep str fichier affiche toutes les lignes du fichier (ou des fichiers) qui contiennent la chaîne de caractères str. Cette commande dispose de plusieurs options : En fait, on peut rechercher quelque chose de beaucoup plus compliqué qu'une chaîne de caractères avec grep (des expressions régulières) mais la maîtrise de cette notion complexe dépasse le cadre de ce document.

find examine récursivement à partir du point de départ qu'on lui fournit si les fichiers satisfont les critères décrits. Cette commande dispose de nombreuses options. En voici les principales :

Voici quelques exemples d'utilisations de cette commande :

    $ find . -name biblio.bib -print
    ./TeX/Document/biblio.bib
    ./Biblio/biblio.bib
    $ find . -exec grep -l bonjour {} \; -print
    ./TeX/Livre/Ctex/premieres_expressions.ctex
    ./TeX/Livre/Mltex/premieres_expressions.mltex
    ./TeX/Livre/TeX/livre.dvi
    ./TeX/Livre/Ftex/premieres_expressions.ftex
    $ find . -name *.tex -print
    ./TeX/Livre/TeX/livre.tex
    ./TeX/Livre/TeX/titre.tex
    ./Biblio/test.tex
    ./Enseignement/98-99/Programmation/Viatique_UNIX/unix.tex
Ici « . » désigne le répertoire courant.

Attention, le résultat peut être très long à imprimer sur votre écran. N'oubliez pas que le disque que vous utilisez est partagé par toute la licence pour le moins, que lancer la commande find est coûteux en temps et en vitesse pour vous sur votre machine, mais aussi pour tous les autres étudiants qui utilisent ce disque! Il faut toujours donner un point de départ le plus précis possible pour les recherches pour limiter la portion de l'arborescence à parcourir. Par exemple, il ne faut JAMAIS lancer « find / »!

Vu le coût de cette commande, il est dommage d'avoir fait une grosse recherche et d'avoir oublié de l'imprimer,donc pensez à ajouter -print à la fin de votre commande.

5.3   La commande locate

Certains UNIX sont dotés de la commande locate, qui utilise une base de données actualisée chaque nuit pour stocker un certain nombre d'informations sur le contenu de l'arborescence. On peut alors effectuer des recherches très rapides et peu coûteuses grâce à cette base de données.

5.4   Impression

On dispose d'un certain nombre de commandes pour gérer l'impression. Il faut d'abord que le système sache sur quelle imprimante vous voulez imprimer. Pour cela vous disposez de la variable d'environnement PRINTER. Vous pouvez voir sa valeur à l'aide de la commande echo $PRINTER et changer sa valeur parla commande export PRINTER=valeur*. Cette valeur sera accessible à toutes les commandes de gestion de l'impression qui utiliseront l'imprimante adéquate. Les commandes sont  :

5.5   Les caractères de substitutions et le shell

Les commandes tapées au claviers sont interprétées par un programme appelé shell (on parle aussi d'interprète de commandes en français). Ce programme permet d'employer des raccourcis claviers quand on veut effectuer la même action sur plusieurs fichiers. Ces caractères sont * qui remplace un nombre quelconque de caractères et ? qui remplace un et un seul caractère. Leur mécanisme est le suivant : quand le shell les rencontre sur la ligne de commande, il remplace le mot dans lequel ils sont par la liste de tous les fichiers dont le nom peut être représenté par ce mot. Ainsi, si on se trouve dans un répertoire contenant les fichiers suivant :

    emacs-dep.fig   hierarchie.fig  pres-mat.dvi    pres-mat.tex~
    emacs-dep.tex   hierarchie.tex  pres-mat.log
    essai.ps        pres-mat.aux    pres-mat.tex
l'ordre ls e* donnera comme résultat :

    emacs-dep.fig   emacs-dep.tex   essai.ps
l'ordre ls *.tex donnera pour résultat

    emacs-dep.tex   hierarchie.tex  pres-mat.tex
l'ordre ls ??e* donne

    hierarchie.fig  pres-mat.aux    pres-mat.log    pres-mat.tex~
    hierarchie.tex  pres-mat.dvi    pres-mat.tex
Ces caractères de substitutions préfigurent la notion d'expressions régulières que l'on retrouve dans un certain nombre d'outils d'édition.

Le shell dont vous disposez s'appelle bash, comme vous le montre la commande echo $SHELL. Les commandes suivies d'uneastérisque*dans ce document dépendent du shell utilisé. Il existe deux familles de shells : Ces deux familles de shells sont de syntaxes différentes, aussi est-il recommandé quand on a pris l'habitude d'un shell d'une famille de ne pas changer pour un shell de l'autre famille.

Vous pouvez adapter votre environnement shell dans une certain mesure. Pour savoir quelles sont les valeurs des variables shell, printenv pour les voir toutes, echo $var pour voir la valeur de la variable var. Pour lesmodifier, comme on l'a vu pour l'impression var=valeur*, directement sous le shell où l'on veut que la modification soit prise en compte, dans son ~/.profile*si on veut retrouver cette nouvelle valeur à la prochaine connection. Pour tenir compte

tout de suite de plusieurs modifications apportées à votre ~/.profile*, rechargez le par la commande . .profile*.

Ce shell dispose d'un historique des commandes que vous avez tapées précédemment. Vous pouvez les retrouver en appuyant simultanément sur les touches Ctrl et p, ou revenir en avant dans cette liste en appuyant simultanément sur les touches Ctrl et n. De même si vous commencez à écrire un nom de commande ou de fichier et que vous appuyez ensuite sur la touche Tab, alors le shell complètera ce nom dans la mesure du possible ou vous proposera les différentes réponses qu'il a trouvé.
Précédent Suivant Index