J'aimerais qu'à chaque fois que j'exécute une commande dans le terminal, j'aie l'heure affichée dans mon terme puis la commande exécutée.
Réponses
Trop de publicités?Vous pouvez simplement exécuter
PROMPT_COMMAND="date"
sur votre terminal, alors à chaque fois qu'une commande est lancée sur votre terminal, la date et l'heure actuelles seront imprimées sur votre terminal. Comme suggéré par@pa4080, pour le rendre permanent, ajoutez PROMPT_COMMAND="date"
à votre fichier ~/.bashrc.
De Man Bash :
PROMPT_COMMAND
Si elle est définie, la valeur est exécutée comme une commande avant l'émission de chaque invite primaire.
Je pense que vous pouvez utiliser la même commande PROMPT_COMMAND=
pour exécuter presque "tout" ce que vous voulez lorsqu'une commande est lancée dans le terminal.
Si vous utilisez tmux Il affiche également l'heure sur le coin :
En supposant que vous utilisez Bash, vous pouvez configurer PROMPT_COMMAND
à une commande qui est exécutée lorsque l'invite est imprimée. De même, vous pouvez exécuter une commande arbitraire en incluant une substitution de commande dans l'invite :
$ PS1='[$(date +"%T")] \u@\h \w\$ '
[22:17:54] user@somehost /tmp$
Mais c'est assez courant pour que Bash le soutient en dehors de l'étagère
\D{format}
Le format est transmis àstrftime(3)
et le résultat est inséré dans la chaîne d'invite ; un format vide donne une représentation de l'heure spécifique à la région. Les accolades sont obligatoires.
Donc, comme dans le cas précédent
$ PS1='[\D{%T}] \u@\h \w\$ '
Mais ceux-ci impriment l'heure à laquelle l'invite a été imprimée. Il peut s'écouler un certain temps avant l'exécution de la commande suivante. Pour obtenir l'heure à laquelle la commande est lancée, nous pouvons utiliser la fonction DEBUG
qui s'exécute une fois pour chaque ligne de commande exécutée.
$ starttime() { date +"Command started at %T"; }
$ trap starttime DEBUG
$ ls -l /dev/null
Command started at 22:25:07
crw-rw-rw- 1 root root 1, 3 Jul 18 21:46 /dev/null
El DEBUG
pourrait également utiliser le $BASH_COMMAND
qui contient la commande en cours d'exécution, mais ce n'est probablement pas très utile puisque la ligne de commande est visible à l'invite de toute façon.
Utiliser le terminal zsh, ce terminal peut afficher la date et l'heure de la commande.
https://github.com/robbyrussell/oh-my-zsh/wiki/themes#rkj-repos https://github.com/robbyrussell/oh-my-zsh/wiki/themes#xiong-chiamiov
-
Modifier le fichier .bashrc
gedit ~/.bashrc
-
Trouvez le texte suivant :
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] :\[\033[01;34m\]\w\[\033[00m\]\$ '
-
Et remplacer par :
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\] [\d|\t]:\[\033[01;34m\]\w\[\033[00m\]\$ '
-
Redémarrez le terminal pour vérifier.