Bash历史范围

时间:2017-05-08 21:19:15

标签: linux bash ubuntu centos

在.bashrc中定义

function gitpullsite(){
    echo "Enter GIT username";
    read gituname;
    echo "Enter GIT password";
    read -s gitpword;
    giturl=https://$gituname:$gitpword@github.com/whateveruser/whateverrepo.git
    repopath=/home/whateveruser/html/whateverrepo/;
    sudo rm -r $repopath;
    sudo git clone $giturl $repopath;
}

然后在终端gitpullsite中运行我想从历史记录中删除gitunamegitpword,但我无法在历史记录中找到此类条目。我没有删除此类条目的流程,以便存储此历史记录的位置?它是否在函数范围内被忽略而不是shell?

我不想要的是存储在我不知道的某个地方的用户名和密码的未知痕迹 - 如果系统受到损害,这是一个明显的安全问题。

目的是添加更多不同的“嵌套”回购,但用户只需输入一次凭证。

2 个答案:

答案 0 :(得分:0)

您可能需要尝试https://github.com/dvorka/hstr,除历史记录管理外,从历史记录中删除特定命令,允许“建议框样式”过滤。

enter image description here

可以轻松bound Ctrl-r 和/或 Ctrl-s

答案 1 :(得分:0)

一种可能的解决方案是根本不记录部分命令。

多种方法:

1 要停止记录bash历史记录是:

set +o history

并重置,即再次开始记录:

set -o history

2 您还可以将add ignorespace添加到HISTCONTROL环境变量中。然后,任何以空格开头的命令行都不会被输入您的历史记录。

methods for avoiding bash history logging

Can you prevent a command from going into the bash shell command history?