-
Q : Quels sont les fichiers lus lors de l'invocation d'un shell
? Dans quel ordre ?
R : les fichiers lus sont les fichiers .zlogin, .zshenv,
.zshrc.
-
Q: Que doit figurer dans chacun de ces fichiers ?
R : dans le .zshenv, le positionnement des variables
d'environnement. Dans le .zshrc le positionnement des options du shell,
les aliases du shell, dans le .zlogin uniquement les commandes devant être
effectuées lorsque on ouvre un shell de login sur une machine.
-
Commencez à taper la commande "ls /usr/local/bin", ne tapez pas
RETURN à la fin.
-
Allez en début/fin de ligne, supprimez le mot "ls" en une seule
touche, supprimez la fin de la commande en une seule touche.
Q : quelles touches doit-on utiliser ?
R : ctrl-a = début de ligne, ctrl-e = fin de
ligne, esc-d = supprimer le mot à droite du curseur, ctrl-k = supprimer
la fin de la ligne, ce sont les mêmes touches qu'Emacs !
-
Rappelez la commande précédente sans utiliser les flèches
du clavier. Uniquement les caractères de contrôle.
Q : quelles touches doit-on utiliser ?
R : il suffit de taper ctrl-p pour "previous command", ctrl-n
permet de voir la commande suivante, comme les déplacements verticaux
du curseur avec Emacs.
-
Bon, finalement, exécutez la commande "ls /usr/local/bin"
-
Exécutez dix commandes de votre choix. Retrouver à l'aide
du mode de recherche de Zsh la commande "ls /usr/local/bin".
Q : quelles touches doit-on utiliser ?
R : on peut utiliser ctrl-r pour rechercher des commandes
tapées précédemment (commande bck-i-search, comme
le backward interactive search d'Emacs).
-
Q : Vous voulez savoir où se trouve la commande "emacs",
comment faites-vous sans utiliser "find" ?
R : on peut taper "which emacs" ou "whence emacs",
qui sont des commandes Unix standard. Ou bien, encore mieux, si on veut
passer pour un pro du Zsh, on tape "ls =emacs". Le caractère
"=" subsistue le chemin complet de la commande obtenu par une recherche
au travers des répertoires du PATH.
-
Q : Où se trouve réellement le fichier binaire
de "emacs" ? Où se trouve installée la distribution d'Emacs
? De XEmacs ?
R : "ls -l =emacs" donne un lien, qui indique l'emplacement
réel d'Emacs:
buffa@clio:~> ls -l =emacs
lrwxrwxrwx 1 bin bin
35 Sep 28 18:26 /usr/local/bin/emacs -> /net/softs/gnu/emacs-20.2/bin/emacs
Donc visiblement, la distribution d'Emacs se trouve dans /net/softs/gnu/emacs-20.2/
On pourra faire de même pour Xemacs.
-
Q : Faites "cd ~buffa". Que fait la commande :
for i in m*
> do
> cp -r m* /tmp/$i.bak
> done
R : Cela copie dans /tmp tous les fichiers présents dans
~buffa et commencent par un "m". Les copies possèdent toutes un
suffixe ".bak"
-
Q : Modifiez la commande précédente pour qu'elle affiche
en plus les opérations qu'elle est en train de faire lorsqu'elle
s'exécute (on fera un echo de la commande).
R : il suffit de rajouter un "echo" bien placé :
for i in m*
> do
> echo cp -r m* /tmp/$i.bak
> cp -r m* /tmp/$i.bak
> done
-
Q : A quoi servent les touches d'édition <ESC-h>, <ESC-q>,
<ESC-'> ?
R : <ESC-H> permet d'appeler la page de man de la commande
courante. Par exemple :
> grep <ESC-h>
... affichera la page de man de la commande grep.
<ESC-q> permet alors qu'on est en train de taper une commande,
d'interrompre la saisie, do'obtenir un nouveau prompt pour pouvoir taper
une autre commande, sitôt cette nouvelle commande exécutée,
la ligne précédente qu'on était en train d'éditer,
est restaurée et la saisie peut reprendre exactement là où
on s'était arreté.
<ESC-'> permet de transformer une chaîne de caractères
contenant des caractères spéciaux en protégeant les
caractères posant problème par des \ ou des ''. Exemple :
je veux dans un script shell afficher la phrase Je m'appelle "Michel"
et j'aime taper des caractères comme \, ', " etc...
Il me suffit de taper ceci dans une fenêtre shell :
> Je m'appelle "Michel" et j'aime taper des caractères
comme \, ', " etc... <ESC-'>
... et celà produit le résultat suivant :
> 'Je m'\''appelle "Michel" et j'\''aime taper des caractères
comme \, '\'', " etc...'
Maintenant je peux faire :
> echo 'Je m'\''appelle "Michel" et j'\''aime taper des caractères
comme \, '\'', " etc...'
Celà affiche bien la phrase désirée :
> Je m'appelle "Michel" et j'aime taper des caractères
comme \, ', " etc...
-
Q: Y'a-t-il sous Zsh un mécanisme semblable au undo d'Emacs
?
R : Oui, ctrl-_ (contrôl-underscore). Ou ctrl-x ctrl-u,
comme dans Emacs.