Freebsd

有沒有辦法在 TCSH 中禁用一個命令的歷史記錄?

  • June 29, 2020

我正在 TCSH 中執行一個命令,這需要我在命令行上傳遞密碼。顯然,我不希望它保存在歷史文件中。

我知道像 Bash 這樣的其他 shell 支持各種方式來實現它,比如export HISTCONTROL=ignorespace.

TCSH 有類似的東西嗎(最好在 FreeBSD 上)?

TCSH 不支持這樣的事情。當 shell 關閉時,shell 會話的整個歷史將合併到歷史文件中。

但是,可以通過生成另一個 TCSH shell 並取消設置來跳過將命令添加到歷史文件中savehist

root@freebsd:~ # csh
root@freebsd:~ # echo First shell: $$
First shell: 7143
root@freebsd:~ # exit
root@freebsd:~ # tail -n 1 ~/.history
echo First shell: $$
root@freebsd:~ # csh
root@freebsd:~ # unset savehist
root@freebsd:~ # echo Second shell: $$
Second shell: 74821
root@freebsd:~ # exit
root@freebsd:~ # tail -n 1 ~/.history
echo First shell: $$

如您所見,第二個 shell 的命令沒有附加到歷史文件中。

引用自:https://unix.stackexchange.com/questions/595666