Ajouter des horodatages aux invites du terminal?

40

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

    
posée Jan Gorzny 27.09.2012 - 03:21
la source

7 réponses

48

Ajoutez cette ligne au fichier ~/.bashrc :

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

La sortie sera donc quelque chose comme:

[07:00:31] [email protected]:~$
    
réponse donnée devav2 27.09.2012 - 03:32
la source
17

Ma solution consistait à utiliser lien pour générer cette ligne PS1 à insérer dans .bashrc:

export PS1="\t [\[email protected]\h \W]\$ \[$(tput sgr0)\]"

Qui ressemblera à

13:05:54 [[email protected]:~/Downloads]$ ls -al

Utiliser PROMPT_COMMAND gâche l’historique pour moi. Lorsqu'une ligne plus longue s'affiche pendant le cycle de l'historique, elle coupe la fin de l'invite du même nombre de caractères que l'horodatage ajouté au début. par exemple.

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

Et cette ligne ne peut pas être éditée car elle n’affiche pas les caractères au bon endroit, car vous ne tapez pas là où vous avez l’air de taper.

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

    
réponse donnée dogtato 11.05.2016 - 21:12
la source
12

Au lieu d’ajouter la date à l’invite, vous pouvez ajouter la date juste avant votre invite en plaçant la ligne suivante dans le haut de votre .bashrc . Pour cela, vous devrez également installer cowsay . C'est une façon amusante d'afficher la date tout en gardant une invite courte :

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

Dans sa forme actuelle, il fonctionnera sur n'importe quel système sans modification, car il lit les variables $USER et date de l'environnement actuel.

    
réponse donnée user76204 27.09.2012 - 21:44
la source
5

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 d'ajouter des informations soit de créer une seconde réponse. Je vais donc répéter ce qui a été dit comme réponse et en tirer parti.

Modifiez le fichier .bashrc pour l'utilisateur pour lequel vous souhaitez modifier l'horodatage.

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

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

Modifiez le fichier avec un éditeur de texte. Pour exmaple, "nano .bashrc", "vim .bashrc", "vi .bashrc", "pico .bashrc" ou n'importe quel éditeur que vous souhaitez utiliser.

Si vous souhaitez créer un script et prévoyez de l’ajouter à de nombreux shells pour de nombreux utilisateurs, il peut être utile d’utiliser la commande "echo" en conjonction avec append "& gt; & gt;" opérateur. Par exemple,

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

Si vous utilisez cette méthode, assurez-vous que vous vous trouvez 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 print working directory.

Si vous n'aimez pas l'espace supplémentaire entre les crochets "]" et le nom d'utilisateur, utilisez simplement cette regex légèrement modifiée:

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

Utilisez cette option si vous éditez directement le fichier.

    
réponse donnée Avlaxis 08.01.2015 - 20:57
la source
2
export PROMPT_COMMAND=date

imprime la date avant l'émission de chaque invite.

    
réponse donnée wojox 27.09.2012 - 03:31
la source
1

Ouvrez votre .bashrc via

vim ~/.bashrc

puis ajoutez les éléments suivants à .bashrc :

#PS1="[\A \[email protected]\h \W\a]$" 

\A correspond à l'heure ( \W pour la fin du chemin uniquement, supprimez si vous voulez l'intégralité du chemin du répertoire de travail en cours). Puis tapez

source ~/.bashrc

Vous verrez quelque chose comme ceci:

[16:04 [email protected] ~/MCEq_dev]$
    
réponse donnée trwood 24.08.2016 - 23:07
la source
0

Juste pour ajouter à la réponse de @ devav2:

Une commande d’écho plus facile à lire pour les débutants serait:

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

Au lieu de

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

Parce que la commande echo n'est pas destinée à être évaluée au moment de l'exportation, il est plus judicieux d'utiliser des guillemets simples pour les guillemets plutôt que les guillemets. Utiliser des guillemets simples pour citer la commande entière vous permet d'utiliser des guillemets pour citer l'argument de la commande echo, éliminant ainsi le besoin d'échapper à des caractères spéciaux tels que , [ et $

    
réponse donnée qwertyzw 22.08.2017 - 18:00
la source

Lire d'autres questions sur les étiquettes