84 votes

Ajouter des horodatages aux invites du terminal ?

Je me demandais s'il était possible d'ajouter des horodatages aux invites du terminal et, si oui, comment y parvenir ?

93voto

devav2 Points 33862

Ajoutez cette ligne à la ~/.bashrc fichier :

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

La sortie sera donc quelque chose comme :

[07:00:31] user@name:~$

43voto

dogtato Points 621

Ma solution était d'utiliser http://bashrcgenerator.com/ pour générer cette ligne PS1 à mettre dans .bashrc :

export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"

Qui ressemblera à

13:05:54 [chad@work-laptop:~/Downloads]$ ls -al

L'utilisation de PROMPT_COMMAND perturbe l'historique pour moi. Lorsqu'une ligne plus longue apparaît pendant que je parcours l'historique, la fin de l'invite est coupée du même nombre de caractères que l'horodatage qui a été ajouté au début. par exemple

13:14:38 [chad@work-laptop:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] "

Et cette ligne ne peut pas être modifiée parce qu'elle n'affiche pas les caractères au bon endroit, c'est-à-dire que vous ne tapez pas là où il semble que vous le fassiez.

Je suppose que cela pourrait être fait avec PROMPT_COMMAND, peut-être en utilisant cette partie [$(tput sgr0)], mais PS1 fonctionne.

16voto

Au lieu d'ajouter la date à l'invite elle-même, vous pourriez ajouter la date juste avant votre invite en plaçant la ligne suivante dans le champ top de votre .bashrc . Pour que cela fonctionne, vous devez également installer cowsay . C'est une façon amusante d'afficher la date tout en gardant une trace de l'événement. court rapide :

cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"

Dans sa forme actuelle, il fonctionnera sur le système de n'importe qui sans modification, puisqu'il lit le fichier $USER et le date de l'environnement actuel.

enter image description here

7voto

Avlaxis Points 71

Comme je n'ai pas assez de points de réputation pour ajouter un commentaire à la réponse pour l'améliorer. Il semblerait que la seule façon pour moi d'ajouter des informations soit de créer une deuxième réponse. Je vais donc répéter ce qui a été dit comme réponse et m'en inspirer.

Modifiez le fichier .bashrc pour l'utilisateur pour lequel vous souhaitez que l'horodateur soit modifié.

Si vous voyez "user@host:~$", vous êtes dans le répertoire personnel de votre utilisateur actuel. Le fichier .bashrc est un fichier caché puisqu'il est préfixé par le point ".". Pour le voir dans une liste, vous devrez utiliser une liste longue.

Vous pouvez utiliser "ls -a" et vous devriez alors voir le fichier ".bashrc".

Editez le fichier avec un éditeur de texte. Par exemple, "nano .bashrc", "vim .bashrc", "vi .bashrc", "pico .bashrc" ou tout autre éditeur que vous souhaitez utiliser.

Si vous voulez script ceci et prévoyez de l'ajouter à de nombreux shells pour de nombreux utilisateurs, il peut être bénéfique d'utiliser la commande "echo" en conjonction avec l'opérateur append ">>". Par exemple,

echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"" >> .bashrc

Si vous utilisez cette méthode, assurez-vous que vous êtes dans le répertoire de travail actuel de l'utilisateur pour lequel vous souhaitez le modifier. Pour vérifier cela, vous pouvez utiliser la commande "pwd" ou imprimer le répertoire de travail.

Si vous n'aimez pas l'espace supplémentaire entre la parenthèse de fin "]" et le nom d'utilisateur, utilisez cette regex très légèrement modifiée :

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"

Utilisez cette option si vous modifiez directement le fichier.

6voto

Dmitry Somov Points 295

La syntaxe la plus simple pour afficher un horodatage dans une invite de commande serait probablement :

    PS1='\D{%F} \t $...'

\D{format} est formaté en date (voir man bash , section PROMPTING) comme

%F date complète ; identique à %Y-%m-%d (voir man date , section FORMAT), et

\t est l'heure courante au format 24 heures HH:MM:SS (voir man bash , section PROMPTING)

nano ~/.bashrc

modifier les variables PS1 comme indiqué ci-dessus

source ~/.bashrc

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X