web-dev-qa-db-ja.com

tcshの履歴コマンドのタイムスタンプ形式を変更できますか

(tcshで)historyコマンドを実行すると、タイムスタンプのTIME部分のみが出力され、日付が省略されます。

 3  15:07   echo $PATH
 4  15:07   ls -la

Bashでは、HISTTIMEFORMAT環境変数を使用して、historyコマンドによって出力されるタイムスタンプ形式に影響を与えることができます。

例えば。 set HISTTIMEFORMAT="[%F %T %Z] "

Tcshでこれを行う方法はありますか?もしそうなら、どのバージョンのtcshが必要ですか? tcsh6.17.00があります。

環境:Red Har Linux 4.4ですが、historyはシェルに組み込まれており、OSが提供するバイナリではないため、答えに影響はないと思います。

7
DVK

tcshのマニュアルページから。

抜粋

履歴最初のワードは、保存する履歴イベントの数を示します。オプションの2番目のワード(+)は、履歴が印刷される形式を示します。指定しない場合は、%h\t%T\t%R\nが使用されます。フォーマットシーケンスについては、以下の「プロンプト」で説明します。 %Rの変数の意味に注意してください。デフォルトでは100に設定されています。

$ set history= ( 1000 "%h %W/%D/%Y %T %R\n" )

結果:

$ 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

これにより、"%h %W/%D/%Y %T %R\n"の形式で最後の1000コマンドの履歴が維持されます。

  • %h-履歴#
  • %W/%D/%Y-月/日/年
  • `%T-24時間。時間
  • %R-コマンド実行

これらのマクロの完全な説明は、tcshのマニュアルページで定義されており、Promptコマンドが説明されているセクションまでスクロールダウンします。彼らはそこにいます。

10
slm