rlwrap
我在以下 shell 别名中使用该实用程序:
alias gp='rlwrap git push'
此别名的目的gp
是能够在我使用命令时使用基本的行编辑命令,例如C-a
或C-e
到达命令行的开头或结尾git push
。
我还配置了在专用文件 ( )rlwrap
中写入我使用的每个命令的输入历史记录:~/.config/rlwrap/<command>_history
export RLWRAP_HOME="${HOME}/.config/rlwrap"
当我使用gp
别名时,我必须提供我的凭据、用户名和密码,并将rlwrap
它们保存在~/.config/rlwrap/git_history
.
是否可以保存rlwrap
我使用的所有命令的输入历史记录(密码除外),例如在别名中gp
?
答案1
我想我刚刚找到了一种方法来防止保存当前输入行。从man rlwrap
:
SPECIAL KEYS
Control + O
Accept the current line, but don't put it in the history list. This action has a readline command name
rlwrap-accept-line-and-forget
因此,如果我使用 验证行Enter
,而不是使用 验证行C-o
,则不应保存该行。
也许我也可以使用该-g
选项,但我不确定是否可以构建一个描述密码的正则表达式,而无需同时描述普通输入:
-g, --forget-matching regexp
Forget (i.e. drop from history list) all input lines that match the POSIX 1003.2 regular expression
regexp. The match is always case-insensitive. regexp may be an ordinary string. For more about regu‐
lar expressions, see regex (7)
答案2
我必须提供我的凭据、用户名和密码,rlwrap 将它们保存在 ~/.config/rlwrap/git_history 中
你确定rlwrap
确实拯救了你的密码在它的历史文件中?根据设计,不回显的输入是绝不放入历史列表中(在这种情况下,rlwrap
将回显您的击键****
)我检查了它,并且至少在我的系统上,这git push
也是发生的情况。
rlwrap
如果您确实在历史文件中看到您的密码,请在s提交错误GitHub 站点
答案3
您可以使用 rlwrap 的选项覆盖默认历史记录文件-H
。
例如alias gp='rlwrap -H /dev/null git push'