5 Autres commandes utiles
-
date : donne la date et l'heure du système.
- clear : efface la fenêtre dans laquelle vous tapez cette
commande.
On peut aussi taper simultanément sur le modificateur «
Ctrl » et sur l pour obtenir le même résultat sans
que ceci soit considéré comme une commande (affiché à l'écran, placé
dans l'historique des commandes, etc.)
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 :
-
-i pour afficher le résultat que chaque caractère soit en
majuscule ou en minuscule
- -c pour n'afficher que le nombre de lignes trouvées
- -l pour n'afficher que le nom des fichiers où la chaîne de
caractères apparaît
- -n pour afficher en plus le numéro des lignes trouvées.
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 :
-
-name critère recherche le fichier de nom
critère. Ce nom peut contenir des caractères de substitutions;
- -print pour imprimer le résultat de la recherche;
- -exec commande parcourt récursivement
l'arborescence et applique la commande à chaque fichier. Il s'agit
d'un moyen puissant d'appliquer une commande à tous les fichiers
d'une arborescence.
{}
représente alors l'argument de la
commande. On termine une telle expression par \;
.
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 :
-
lpr fichier : C'est la commande qui envoie un
fichier à l'imprimante. Ses arguments sont les noms des fichiers à
imprimer.
On peut cependant l'utiliser sans arguments, par exemple
après un « pipe », dans ce cas la commande imprime ce qu'elle reçoit
sur son entrée standard.
- lpq : Cette commande vous donnera la liste des fichiers
en attente d'impression, avec leur numéro d'ordre dans la file
d'attente et leur propriétaire.
- lprm num : Cette commande demande d'enlever de la
file d'attente le fichier dont le numéro est num. Bien entendu
vous ne pouvez enlever que vos propres fichiers.
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 :
-
la famille Bourne shell, avec sh, ksh,
psh, bash, zsh, etc.
- la famille C shell, avec csh, tcsh, etc.
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é.