Bussiere Asked: 2017-08-02 02:05:32 +0800 CST2017-08-02 02:05:32 +0800 CST 2017-08-02 02:05:32 +0800 CST 如何在终端每次启动命令之前获取时间? 772 我希望每次在终端中运行命令时,我都会在我的术语中显示时间,然后执行命令。 command-line 4 个回答 Voted Best Answer Tshilidzi Mudau 2017-08-02T02:56:38+08:002017-08-02T02:56:38+08:00 你可以跑 PROMPT_COMMAND="date" 在您的终端上,然后每次在您的终端上运行命令时,当前日期和时间将在您的终端上打印出来。正如@pa4080 所建议的,要使其永久化,请将其添加PROMPT_COMMAND="date"到您的 ~/.bashrc 文件中。 来自 man bash: PROMPT_COMMAND 如果设置,则在发出每个主要提示之前将该值作为命令执行。 我认为PROMPT_COMMAND=当在终端上运行命令时,您可以使用相同的命令来运行您想要运行的几乎“任何东西”。 如果您使用tmux,它还会在角落显示时间: ilkkachu 2017-08-02T11:28:58+08:002017-08-02T11:28:58+08:00 假设您正在运行 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\$ ' 但是那些打印提示的时间。在执行下一个命令之前可能需要很长时间。要获取命令启动的时间,我们可以使用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,但这可能不是很有用,因为命令行在提示符处是可见的。 Hamed 2017-08-02T02:13:03+08:002017-08-02T02:13:03+08:00 使用zsh终端,这个终端可以显示日期时间运行命令 https://github.com/robbyrussell/oh-my-zsh/wiki/themes#rkj-repos https://github.com/robbyrussell/oh-my-zsh/wiki/themes#xiong-chiamiov Gaurav Singh 2020-03-08T00:57:57+08:002020-03-08T00:57:57+08:00 编辑 .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\]\$ ' 重启终端检查。
你可以跑
在您的终端上,然后每次在您的终端上运行命令时,当前日期和时间将在您的终端上打印出来。正如@pa4080 所建议的,要使其永久化,请将其添加
PROMPT_COMMAND="date"
到您的 ~/.bashrc 文件中。来自 man bash:
我认为
PROMPT_COMMAND=
当在终端上运行命令时,您可以使用相同的命令来运行您想要运行的几乎“任何东西”。如果您使用tmux,它还会在角落显示时间:
假设您正在运行 Bash,您可以设置
PROMPT_COMMAND
为在打印出提示时执行的命令。同样,您可以通过在提示符中包含命令替换来运行任意命令:但这很常见,以至于Bash 支持现成的
所以,和前面一样
但是那些打印提示的时间。在执行下一个命令之前可能需要很长时间。要获取命令启动的时间,我们可以使用
DEBUG
陷阱,它会为每个执行的命令行运行一次。DEBUG
陷阱也可以使用包含正在执行的命令的变量$BASH_COMMAND
,但这可能不是很有用,因为命令行在提示符处是可见的。使用zsh终端,这个终端可以显示日期时间运行命令
https://github.com/robbyrussell/oh-my-zsh/wiki/themes#rkj-repos https://github.com/robbyrussell/oh-my-zsh/wiki/themes#xiong-chiamiov
编辑 .bashrc 文件
找到以下文本:
并替换为:
重启终端检查。