Bash历史范围

问题描述 投票:1回答:2

在.bashrc中定义

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

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

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

目的是添加更多不同的“嵌套”存储库,但用户只需输入一次凭据。

linux bash ubuntu centos
2个回答
0
投票

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

它可以很容易地bound到Ctrl-r和/或Ctrl-s


0
投票

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

多种方式:

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

set +o history

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

set -o history

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

methods for avoiding bash history logging

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

© www.soinside.com 2019 - 2024. All rights reserved.