有没有办法禁用 TCSH 中某个命令的历史记录?

有没有办法禁用 TCSH 中某个命令的历史记录?

我正在 TCSH 中执行命令,这要求我在命令行上传递密码。显然,我希望它不保存在历史文件中。

我知道其他 shell 例如 Bash 支持各种实现方式,例如export HISTCONTROL=ignorespace

TCSH 有类似的东西吗(最好是在 FreeBSD 上)?

答案1

TCSH 不支持此类内容。当 shell 关闭时,shell 会话的整个历史记录将合并到历史文件中。

但是,可以通过生成另一个 TCSH shell 并取消设置来跳过添加到历史文件的命令savehist

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

如您所见,第二个 shell 的命令未附加到历史文件中。

相关内容