履歴コマンドにタイムスタンプを追加しようとしています。
export HISTTIMEFORMAT='%F %T '
ただし、履歴(以前と新規)のコマンドにはタイムスタンプは表示されません。
出力
history | tail
445 exoirt HISTTIMEFORMAT='F% T%'
446 export HISTTIMEFORMAT='F% T%'
447 history
448 history | tail
449 ls
450 cd
451 ls
452 cd
453 ls
454 cd
数字と列の間に日付/時刻情報があると予想されます。 ここのように(下のスクリーンショットにも表示されます)
1 2008-08-05 19:02:39 service network restart
2 2008-08-05 19:02:39 exit
3 2008-08-05 19:02:39 id
4 2008-08-05 19:02:39 cat /etc/redhat-release
出力
type history
はい
history is an alias for history 0
~/.bashrc ファイルに変数を挿入しようとしましたが、再び動作しません。
編集する: 私はCaliLinuxを使用しています。システムを再起動し、履歴サイズとデータをリセットしてみました。 編集#2: 出力
echo $ZSH_VERSION
5.8
出力
echo $SHELL
/usr/bin/zsh
答え1
カリLinuxを使用しています。 Kali Linuxディストリビューションzsh
はbash
。
これは、ユーザーが変更した内容が使用している~/.bashrc
シェルに表示されないことを意味します。代わりに、シェルはzsh
この~/.zshrc
ファイルを使用して対話型シェルセッションを初期化します。
また、特定のタスクを実行できるzsh
シェルというシェル変数はありません。HISTTIMEFORMAT
(しかしthisを使用している場合は、この変数をbash
使用する必要はありません。)代わりに、履歴を別の方法で表示するには組み込みコマンドをexport
使用する必要があります。history
ただし、最初にタイムスタンプを含む拡張形式で履歴情報をシェルに保存する必要があります。あなたはこれを
setopt EXTENDED_HISTORY
~/.zshrc
(起動するすべてのシェルセッションでこれを行う場合はこれを行うことができます)。このシェルオプションはzshoptions
マニュアルに記載されています。
history
その後、Kali Linuxにデフォルトで~/.zshrc
設定されているやや役に立たないエイリアスを削除する必要があります。これにより、history
コマンドが正しく使用できなくなります。
その行をコメントアウトしてください。
alias history="history 0"
または追加
unalias history
ファイルの最後に。
その後、次のようにタイムスタンプを表示できます。
history -i
また、 の出力形式を指定する方法についてのマニュアルfc
(実際は)のマニュアルを参照してください。history
例えばfc -l
zshbuiltins
history
history -t '%F %T'
history -i
(これはfromの出力形式とほぼ同じですが、秒が追加されます。)