Можно ли открыть сеанс инкогнито в bash?
Например, когда нам нужно вводить пароли в командах и не хотим bashдобавлять их в историю.
secrectcommandне будет в истории Bash.
Можно ли открыть сеанс инкогнито в bash?
Например, когда нам нужно вводить пароли в командах и не хотим bashдобавлять их в историю.
secrectcommandне будет в истории Bash.
Ответы:
Если вы хотите bashпрекратить запись ваших команд, просто удалите HISTFILEпеременную:
HISTFILE=
Все дальнейшие команды больше не должны регистрироваться .bash_history.
С другой стороны, если вы фактически вводите пароли в качестве аргументов для команд, вы уже делаете что-то не так. .bash_historyне является общедоступным и, следовательно, не самой большой угрозой в этой ситуации:
psи /procявляются большой проблемой. Все пользователи системы могут видеть команды, которые вы в данный момент выполняете, со всеми их аргументами . Поэтому передача паролей в качестве аргументов командной строки по своей сути небезопасна . Используйте переменные окружения или конфигурационные файлы (которые у вас есть chmodded 600) для безопасной подачи паролей.
unset HISTFILEимеет аналогичный эффект. У меня есть функция для этого: n() { HISTFILE=; PS1="~${PS1#\~}"; }. Таким образом, я ясно вижу, нахожусь ли я в «режиме инкогнито» или нет.
HISTCONTROL=ignorespace
Если эта опция еще не установлена bash, это может быть именно то, что вам нужно. Это менее изнурительно, чем отключение всей истории. С этим набором любая командная строка, начинающаяся с символа пробела, не будет сохранена в списке истории.
Из этих ссылок:
Вы можете временно отключить историю: set +o history
set +o history
...
set -o history
Существует разница между отключением истории и сбросом HISTFILE:
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
выводит что-то вроде этого:
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
т.е. все команды сохраняются в списке истории. Типа, exitчтобы сохранить его.
Но
set +o history
date
ls
set -o history
history
выводит что-то вроде этого:
115 set +o history
116 history
Резюме :
set +o historyдля длительных сессий.
HISTCONTROLи <space>commandв другое время.
cat | bashбудет работать неинтерактивноbashбез приглашения, редактирования из командной строки (только внутренний редактор дисциплины) или истории.