我希望每次我在终端中运行命令时,都能在我的终端中显示时间,然后执行命令。
答案1
你可以运行
PROMPT_COMMAND="date"
在您的终端上,每次在您的终端上运行命令时,当前日期和时间都会打印在您的终端上。正如@pa4080 所建议的,要使其永久存在,请将其添加PROMPT_COMMAND="date"
到您的 ~/.bashrc 文件中。
来自 man bash:
PROMPT_COMMAND
如果设置,则在发出每个主提示之前,该值将作为命令执行。
我认为您可以使用相同的命令PROMPT_COMMAND=
来运行在终端上运行命令时想要运行的几乎“任何内容”。
如果你使用tmux,它还在角落显示时间:
答案2
假设您正在运行 Bash,您可以设置PROMPT_COMMAND
为在提示符打印出来时执行的命令。类似地,您可以通过在提示符中包含命令替换来运行任意命令:
$ PS1='[$(date +"%T")] \u@\h \w\$ '
[22:17:54] user@somehost /tmp$
但这种情况很常见,Bash 支持现成的
\D{format}
格式被传递给strftime(3)
提示字符串,结果被插入其中;空格式导致特定于语言环境的时间表示。括号是必需的。
因此,与之前类似
$ PS1='[\D{%T}] \u@\h \w\$ '
但是这些命令会打印提示符被打印的时间。这可能要过一段时间才会执行下一个命令。要获取命令启动的时间,我们可以使用 trap DEBUG
,它会在执行每个命令行时运行一次。
$ 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
陷阱DEBUG
还可以使用$BASH_COMMAND
包含正在执行的命令的变量,但这可能不是很有用,因为命令行在提示符下是可见的。
答案3
答案4
编辑.bashrc文件
gedit ~/.bashrc
查找以下文本:
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] :\[\033[01;34m\]\w\[\033[00m\]\$ '
并将其替换为:
if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\] [\d|\t]:\[\033[01;34m\]\w\[\033[00m\]\$ '
重新启动终端进行检查。