home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / shell / csh531f.lha / csh_531 / tips.doc < prev    next >
Text File  |  1993-07-15  |  7KB  |  212 lines

  1. Quelques bonnes trucs et astuces que j'ai rassemblΘ:
  2.  
  3.  
  4.     EDITION
  5.  
  6.  
  7. Les situations trΦs courantes:
  8. $ mkdir documents
  9. $ cd documents
  10. peut Ωtre abrΘgΘe par:
  11. $ mk documents
  12. $ [CTRL-T]              (insΦre tout sauf le premier mot de la ligne
  13.  
  14.  
  15. Aussi trΦs courant:
  16. $ mv document document1
  17. $mv [CTRL-P]1
  18. La fonction CTRL-P duplique le mot prΘcΘdent sur la ligne de commande
  19.  
  20.  
  21. Vous pourriez vous Ωtre demandΘ en quoi CTRL-N (laisse la ligne courante)
  22. peut vous Ωtre utile.
  23. Supposons, par exemple, que vous avez tapΘ
  24. $ rm dh1:graphics/lo-res/gorilla
  25. quand il vous vient α l'esprit que vous prΘfereriez garder une copie de cette
  26. image sur disquette. Plusieurs effaceraient la ligne de commande. Comme vous
  27. avez de la classe, vous faεtes ce qui suit:
  28. $ [CTRL-N]              (laisse la ligne de commande tranquile)
  29. $ co [CTRL-T] df0:
  30. $ [FlΦche-Haute][FlΦche-Haute]  (reprend la lignede commande que vous aviez
  31.                                 laissΘ)
  32.  
  33.  
  34. Au cas o∙ vous ne sauriez pas ce qu'est la complΘtion sur l'historique:
  35. $ search *.c *.h makefile toto
  36. $ ram:
  37. $ dir
  38. $ rm tmpfile
  39. Maintenant si vous voulez rΘpΘter la commande search, entrez
  40. $ se[Shift-FlΦche-Haute]
  41. ce qui rapelle la derniΦre commande commenτant par 'se'.
  42.  
  43.  
  44. Si jamais vous cyclez trop loing en utilisant la touche TAB, en dΘpassant 
  45. l'entrΘe que vous vouliez, vous pouvez revenir en arriΦre d'une entrΘe en 
  46. utilisant CTRL-U [undo]. La mΩme chose s'applique si vous aviez entrΘ une 
  47. abrΘviation, pressΘ TAB mais vu que l'abbrΘviation Θtait trop courte.
  48.  
  49.  
  50. Si vous voulez effacer le fichier
  51. $ rm dh2:comm/uucp/mail/junk/409
  52. et que vous Ωtes loin de ce rΘpertoire, entrez
  53. $ rm ju[ESC-c]409          (entre le chemin correspondant α cd ju)
  54.  
  55.  
  56. La mΩme fonction est aussi utilisable pour 'cd'. Supposons que vous avez
  57. plusieurs rΘpertoires 'junk':
  58. $ ju[ESC-c][CTRL-R][CTRL-R][CTRL-R]
  59. Comme ceci vous cyclerez α travers les rΘpertoires junk. Quand vous aurez le
  60. bon, appuyez sur enter.
  61.  
  62.  
  63. Supposons qu'il y a les fichiers comm1.c, comm2.c, et comm3.c avec leurs
  64. fichiers .o correspondants. Vous voulez comm3.c:
  65. $ co[Shift-Tab]1[Tab]
  66. Bien s√r ceci est plus utile surdes noms de fichiers plus longs.
  67.  
  68.  
  69. Vous pouvez complΘter un nom de fichier par tab sur n'importe quel motif,
  70. pas seulement les abrΘviations. Supposons que vous voulez effacer tous les
  71. fichiers .c dans le rΘpertoire courant sauf le dernier:
  72. $ rm *.c[ESC-Tab][CTRL-W]
  73. De plus, vous pouvez voir tous les fichiers encore une fois avant de les
  74. effacer.
  75.  
  76.  
  77. Ensuite: Vous avez entrΘ:
  78. $ dir
  79. $ foreach i ( *.c ) "e >>ram:temp $i
  80. et vous voudriez effectuer les mΩmes trois actions α nouveau, entrez:
  81. $ [FlΦche-Haute][FlΦche-Haute][FlΦche-Haute][ESC-Return][CTRL-R][CTRL-R]
  82.  
  83.  
  84. Je sais que l'Θdition n'est pas trΦs conviviale. C'est parce qu'il est assez
  85. difficile et dangereux de prendre des codes raw sur la console, et il est
  86. impossible de prendre ces codes depuis un terminal VT200. Ainsi j'ai me
  87. dΘbrouiller avec des combinaisons de CTRL et ESC. Une fois que vous les avez
  88. appris (certains d'entre eux sont similaire α EMACS), vous Θconomisez
  89. beaucoup de frappe.
  90.  
  91.  
  92.     COMMANDES
  93.  
  94.  
  95. Mon conseil ici est trΦs clair: Utilisez les alias, les alias, les alias.
  96. Pour Ωtre capable de les crΘer aussi vite que possible, crΘez un alias (par
  97. ex. 'le') qui Θdite votre fichier de login, plus un autre (par ex. 'lx'),
  98. qui le rΘexΘcute. Mon login ne contient quasiment que des alias, tout le
  99. reste, je l'ai mis dans 'firstlogin.sh'.
  100.  
  101.  
  102. Si vous n'aimez pas mes options par dΘfaut pour une commande, vous pouvez
  103. en ajouter en utilisant un alias:
  104. $ alias dir "dir -q
  105. A partir de lα, les blocs ne seront plus affichΘs dans 'dir'.
  106.  
  107.  
  108. Si vous alias ont des arguments, par ex.:
  109. $ alias sc "search *.c
  110. des problΦmes surgissent lorsque vous essayez de spΘcifier des options, par
  111. exemple la sensibilitΘ aux majuscules:
  112. $ sc -c "bonjour tout le monde
  113. Ceci ne marchera evidemment pas. C'est ce que rΘsoud @pickopts:
  114. $ alias sc "%a serach @pickopts( $a ) *.c @pickargs( $a )
  115.  
  116.  
  117. Une fois que vous avez des alias, il est utile de les garder triΘs. Vous
  118. pourriez aussi les documenter: crΘez un fichier 'alias.doc', et faites
  119. $ set _man alias.doc csh.doc
  120. De cette faτon vous pouvez les documenter dans un fichier sΘparΘ.
  121.  
  122. Si vous vouliez crΘer des alias qui acceptent des arguments, vous pouvez
  123. les implΘmenter en utilisant 'if -o'.
  124. $ alias bon "%a if -o v $a;echo -n "tres ";endif;echo bon boulot, @arg( $a )
  125. $ bon olivier       --> bon boulot, olivier
  126. $ bon -v olivier    --> tres bon boulot, olivier
  127.  
  128. 'cat' peut Ωtre utilisΘ pour crΘer de petits fichiers de texte:
  129. $ cat >monfichier
  130. bonjour
  131. [CTRL-\]
  132. La combinaison de touches CTRL-\ crΘe un caractΦre de fin de fichier
  133.  
  134.  
  135.     FONCTIONS
  136.  
  137. @age est trΦs utile pour archiver les scripts:
  138. $ foreach i ( * ) "if @age( $i ) > 30;cp -m $i backup:;endif
  139.  
  140.  
  141. @clinum peut Ωtre utilisΘ pour rendre 'break' et 'pri' plus flexibles:
  142. $ alias break "%a break @clinum( $a )
  143. Maintenant vous pouvez faire, par exemple, 'break cc'. Les numΘros de Cli
  144. sont toujours autorisΘs.
  145.  
  146. @complete simule l'effet de la complΘtion des noms de fichiers par TAB. De
  147. cette faτon, vous n'avez plus besoin de presser TAB pour cela:
  148. $ alias edit "%a ced @complete( $a * )
  149.  
  150.  
  151. @confirm peut Ωtre uitilisΘ pour un 'rm' s√r:
  152. $ alias rm "%a rm @confirm( $a )
  153.  
  154.  
  155. @howmany est utile au lancement:
  156. $ if $howmany = 1;window -l;endif
  157.  
  158.  
  159. @intersect, @union et @without conviennent bien α de nombreuses applications
  160. Si vous stockez, par exemple, tous les fichiers d'un de vos amis, dans la
  161. variable $him, (il peut faire un 'dir -np .../ >temp', vous faites alors un
  162. 'readf him <temp'), et vos fichiers dans $me, alors vous pouvez savoir ce
  163. qu'il a et pas vous en utilisant
  164. $ echo @without( $him , $me )
  165. Pour ignorer des noms de chemins diffΘrents, utilisez
  166. $ set him @basename( $ him )
  167. Si vous avez les noms de fichiers sans les chemins, vous pouvez retrouver le
  168. chemin en 'search'ant le fichier temp.
  169.  
  170.  
  171. @opt et @arg sont utilisΘs chaque fois que vous avez qui spΘcifie dΘjα des
  172. arguments, mais autorise l'utilisateur α spΘcifier des options additionelles.
  173. $ alias sc "%a search @opt( $a ) *.c @arg( $a )
  174.  
  175.  
  176. @volume peut Ωtre utilisΘ pour tester si il y a un disque dans un certain
  177. lecteur. Il supprimera les requesters et retourne une chaεne vide s'il n'y
  178. a pas de disque.
  179.  
  180.  
  181.     VARIABLES
  182.  
  183.  
  184. $_except peut Ωtre rendue locale. Dans ce cas vous avez un traitement
  185. d'erreur spΘcial pour l'alias ou le fichier script courant.
  186.  
  187.  
  188. $_man peut contenir les noms de plus d'un fichier .doc. De cette faτon, vous
  189. pourriez ajouter de la documentation pour vos propres alias.
  190.  
  191.  
  192. Lorsque vous travaillez avec des gros fichiers et les pipes, vous pourriez
  193. souhaiter mettre $_pipe vers un rΘpertoire sur votre disque dur.
  194.  
  195.  
  196.     INTERPRETEUR
  197.  
  198.  
  199. Si vous avez besoin d'ajouter une chaεne α une variable, vous pouvez le faire
  200. de cette faτon:
  201. $ set toto truc
  202. $ echo $foo""bidule  --> trucbidule
  203. Le "" n'est pas nΘcessaire si le premier caractΦre de la chaεne α Ωtre ajoutΘe 
  204. n'est ni une lettre ni un chiffre ni un _.
  205.  
  206. Pour Ωtre s√r qu'aucune commande interne n'est exΘcutΘe, mettez la premiΦre 
  207. lettre de votre commande en majuscule:
  208. $ Dir ram: ALL
  209.  
  210. Pour ne pas tenir compte des alias existants sur une commande, entrez:
  211. $ alias echo "xxxxxx
  212. $ \echo bonjour   -->  bonjour