你能在 tcsh 上更改历史命令的时间戳格式吗

DVK*_*DVK 9 shell tcsh command-history timestamps

当我运行history命令(在 tcsh 上)时,它只打印时间戳的 TIME 部分并省略日期:

 3  15:07   echo $PATH
 4  15:07   ls -la
Run Code Online (Sandbox Code Playgroud)

在 bash 中,您可以使用HISTTIMEFORMAT环境变量来影响history命令打印的时间戳格式。

例如 set HISTTIMEFORMAT="[%F %T %Z] "

有没有办法在 tcsh 中做到这一点,如果是这样,需要哪个版本的 tcsh?我们有 tcsh 6.17.00。

环境:Red Har Linux 4.4,但我认为答案不应该受到影响,因为history它是内置的 shell 而不是操作系统提供的二进制文件。

slm*_*slm 12

tcsh手册页。

摘抄

history 第一个字表示要保存的历史事件数。可选的第二个字 (+) 表示打印历史的格式;如果没有给出,%h\t%T\t%R\n则使用。格式序列在提示下描述如下;注意 的变量含义%R100默认设置为。

例子

$ set history= ( 1000 "%h %W/%D/%Y %T %R\n" )
Run Code Online (Sandbox Code Playgroud)

结果是:

$ history
     2 09/08/2014 22:48 set history= ( 1000 "%h %W/%D/%Y %T %R\n" )
     7 09/08/2014 22:49 ls
     9 09/08/2014 22:49 echo "hi"
    10 09/08/2014 22:49 history
Run Code Online (Sandbox Code Playgroud)

这将导致保存最近 1000 个命令的历史记录,格式为"%h %W/%D/%Y %T %R\n".

  • %h - 历史 #
  • %W/%D/%Y - 月日年
  • `%T - 24 小时。时间
  • %R - 命令运行

这些宏的完整描述在tcsh手册页中定义,向下滚动到prompt解释命令的部分。他们在那里。