В каких ситуациях пользователь не позволяет оболочке записывать свою команду в историю?

18

Если добавить export HISTCONTROL=ignorespaceв .bashrc, баш не будет записывать какие - либо команды , которые имеют пробелы перед ними в историю. Но я не понимаю, при каких ситуациях это будет полезно. Кто-нибудь может привести несколько примеров?

acgtyrant
источник

Ответы:

32

Если ваши команды содержат пароли или другую конфиденциальную информацию

Ульрих Дангел
источник
4
@acgtyrant, то вы никогда не вводили команду с паролем. Идея заключается в том, что если вы введете пароль в командной строке, просто поставьте пробел перед командой, и он не будет записан вHISTFILE
Ulrich Dangel
3
Команды mysql могут принять пароль пользователя, с которым вы подключаетесь к базе данных, их слишком много, чтобы перечислять здесь. Смысл @Ulrich Dangel сделан на месте. Если вы вводите команды с паролями, не оставляйте их в истории.
SLM
5
Я также добавлю, что когда вы и администратор, вы часто не хотите включать историю, потому что, если злоумышленник попадет в систему, вы оставите ему след о том, что находится на поле, и какие типы команд обычно запускаются на коробке.
СЛМ
1
Если у вас нет команд с конфиденциальной информацией, вы не являетесь целевой аудиторией для этой функции. Не каждая функция в программе используется каждым пользователем. (Это одна из причин того, почему программы имеют «ползучесть»: все используют дюжину функций, но разные дюжины и задаются вопросом, для чего нужны все остальные бесполезные помехи.)
Kaz
1
Имейте в виду, что аргументы командной строки часто видны в psили при просмотре /proc. Некоторые системы делают среду видимой и для других пользователей. Файл режима 0700 на tmpfs, OTOH, не имеет этих проблем.
Дероберт
26

Другое использование для команд, которые вы не хотите случайно повторять, например rm -rf *. Я широко использую историю и иногда Enterслучайно сталкиваюсь, когда команда, которую я извлек из истории, не та, которую я искал. Конечно, реальное решение - всегда внимательно читать команды перед их выполнением. Но, будучи немного неуклюжим, я предпочитаю также исключить особенно деструктивные команды из своей истории в качестве дополнительной меры предосторожности.

depquid
источник
14
Я хотел бы добавить , что я нашел , что это очень удобно в дальнейшем игнорировать некоторые опасные команды , даже если я забыл включить пробел: HISTIGNORE=" *:rm -f*:rm -r*:*--force*". Это предотвращает rm -fи rm -rот сохранения в истории, а также все, что содержалось --force.
Петр Пудлак
Это реальное решение. Не оставляйте ножи рядом, говоря, что реальное решение - не совать себя в них. Поскольку старая пословица гласит: «Вы не можете убежать в реке», то есть не чистите реку, а перестаньте выбрасывать в нее мусор.
Ctrl-Alt-Delor
6

Бывший сотрудник моего сделал это с большинством cdи lsкомандами, чтобы записать только «полезную» команду.

Ян Фабри
источник
3
Я почти никогда не запускаю nethack на работе, не делая этого ... (или топ, или мужчина ...)
lotsoffreetime
На самом деле, кто - то может добавить export HISTCONTROL=ingoredupsв .bashrcсказать баш не хранить дубликаты так истории сделать более четкими. Вы можете прочитать эту статью
Acgtyrant
2

Конфиденциальность данных. В тот момент, когда правоохранительные органы ломают вашу дверь, вы можете не захотеть, чтобы они нашли остатки

  • где вы видите последние проны Wwarez
  • какие фильмы ты недавно копировал и кормил с торрента
  • пароли, передаваемые через аргументы программам шифрования / дешифрования

Серьезно, это, вероятно, эквивалентно строгой настройке конфиденциальности в вашем браузере, не позволяющей записывать историю серфинга.

Jens
источник
0

Если вы управляете версиями .bash_history , это полезный способ пометить определенные команды как «специальные». В сочетании с history-search- * это способ просто нажать Space+ m+ Up+ Enterдля запуска make --directory ~/dev/tilde cleanи Space+ e+ Up+ Enterдля запуска editor ~/.bash_history, оба из которых я использую для обслуживания файла истории Bash.

l0b0
источник