Invite, prompt
De Diablotins.org.
| Qu'est ce qu'un terminal peut faire pour vous ?
|
| ||
| L'«invite» ou «prompt» est, dans un terminal, le ou les caractères qui vous «invitent» à entrer vos ordres.
Cette invite est configurée selon les interpréteurs de commandes par la variable «prompt» en général et peut présenter des invites plus ou moins confortables voire tout à fait farfelues. |
Sommaire |
Bases
La variable “prompt” pour les CSH-like et “PS1” pour les BASH-like contient le formatage de l'invite.
Par exemple:
set prompt="%B[%n@%m]%b%/:"ou, pour modifier en plus la barre de titre dans un Xterm:
set ellipsis set prompt='%{^[]0;%n@%m, %.03, %P^G%}%B[%n@%m]%b%/:'
la variable «ellipsis» modifie les caractères qui résument un chemin trop long, «...» au lieu de «<n>».
david:/<2>sys/amd64/conf>set ellipsis
david:...sys/amd64/conf>pwd
/usr/src/sys/amd64/conf
«...» masque les répertoire depuis la racine.
david:...sys/amd64/conf>unset ellipsis
david:/<2>sys/amd64/conf>pwd
/usr/src/sys/amd64/conf
«<n>» ou n est le nombre d'occurences masquées depuis la racine. De même «promptchars» défini le caractère de l'invite pour un utilisateur et pour root:
set promptchars = \$\#
A droiiiite, droite
Oui, on peut ajouter une information à droite, de la même manière:
set rprompt="%d %D %w %Y"
Mais qu'est ce que c'est que ce charabia ?
Le caractère d'échappement est le signe «%», suivi d'un caractère qui va définir quelques variables, mais qui peuvent varier selon les shells.
- Qui?
- %n: L'utilisateur
- %m, %M: la machine hôte, avec ou sans détails.
- %n@%m - %M:
light@david -david.dmarec.homeunix.net
- %#: L'invite selon que l'on soit «root» ou un utilisateur, selon promptchars.
- Où ?
- %/: Chemin actuel complet
- %~: Chemin actuel, utilisant ~
- %c0 n,%C0 n: Une combinaison du chemin actuel, sur n niveaux, ~, ou pas.
- 0: utilise une «ellipsis» en tête, soit «<1>» ou «...» si la variable ellipsis est définie.
- %.xx: Chemin actuel, sur xx niveaux.
- %h: un index d'historique.
- %l: Le terminal utilisé
- Quand ?
- %T,%t: heure actuelle, aux formats 12 et 24h.
- %P: comme précédemment, avec les secondes
- %d,%D: Jour de la semaine, en lettres et en chiffres
- %w,%W: Mois en lettres et en chiffres
- %y,%Y: année sur deux ou trois chiffres.
-
set prompt="%P - %d %D%s %Y"
-
18:09:14 - Sat 31 2009
- Coloriage
- %B, %b: je grasse, ou pas.
- %U, %u: je souligne, ou pas.
- %S, %s: inversion des couleurs
- trucs de ouf
- %{xxxxx%}: «super» séquence d'échappement, au delà du prompt et du shell, appelle les séquences du terminal.
- %?: Code de retour de la dernière commande.
CSH
L' interpréteur CSh/Tcsh va vous permettre de changer l'invite selon le terminal, à l'aide de “.cshrc”, script de ressources lu au chargement:
switch ($TERM) case "xterm*": set prompt="%{^[]0;%n@%m, %c03, %P ^G%}%n:%C04%#" breaksw default: set prompt="%n:%c03%#" endsw
Ici, on utilise une commande de XTerm qui permet de changer la «décoration» de sa fenêtre.
- Set Text Parameters of VT window
- OSC Ps ; Pt BEL
- Ps = 0 -> Change Icon Name and Window Title to Pt
- “^”, signifie “Control“
- “^[”, signifie “Control[“, soit “ESC”, on peut aussi l'écrire: “\033” ou encore “\e”
- OSC: Operating System Command, soit: “ESC ]”
- BEL: la sonnette, Control-G: “^G” ou “\007”
| |
La liste des caractères de contrôle de Xterm est documentée dans le fichier ctlseqs.txt des sources de Xterm. |
| |
Vous pouvez écrire directement dans la barre de titre d'un Xterm en utilisant la commande printf(1). printf "\033]0; kikou laulle \007" Pensez à désactiver le prompt de la barre de titre pour une utilisation hors script; sinon, ce dernier va écrasez vos titres à chaque commande... |

