Есть ли способ сохранить команду в вашей истории?

Есть ли способ сохранить команду в вашей истории? У меня есть команда, которую я хочу оставить вне моего файла истории, и я действительно не хочу, чтобы она была там, когда я просматриваю историю, хранящуюся в памяти, хотя это менее беспокоит. Есть ли способ предотвратить это, или мне просто нужно вернуться и отредактировать мой файл истории.

update: Я не понял, что это может быть оболочка. Моя оболочка – zsh . Вы можете отвечать за другие оболочки, чтобы люди знали, как это сделать в своей оболочке.

4 Solutions collect form web for “Есть ли способ сохранить команду в вашей истории?”

В ZSH :

Сначала установите HIST_IGNORE_SPACE в свой профиль, а затем префикс команд, которые вы не хотите хранить с space .

С man-страницы можно использовать следующие 3 опции, чтобы сказать, что определенные строки не должны входить в историю вообще

  • HIST_IGNORE_SPACE не хранит команды с префиксом пробела
  • HIST_NO_STORE не хранит команду истории ( fc -l )
  • HIST_NO_FUNCTIONS не сохраняют определения функций

Если вы используете команду снова и снова, вы можете использовать функцию игнорирования истории вашей оболочки. Допустим, у вас есть secret.server.com, что вы ssh, FTP-файлы и т. Д., Что вы не хотите, чтобы какая-либо строка упоминала secret.server.com:

В bash вы установили бы

 HISTIGNORE="*secret.server.com*" 

тогда как в zsh параметр называется

 HISTORY_IGNORE="*secret.server.com*" 

Вы можете перечислить несколько шаблонов с двоеточием, разделяющим их. Обратите внимание, что каждый шаблон сопоставляется с полной строкой ввода , поэтому вам может потребоваться включить *. Например, следующее исключает fortune из истории, но сохранит fortune -l :

 HISTIGNORE="*secret.server.com*:ytalk*:fortune" HISTORY_IGNORE="*secret.server.com*:ytalk*:fortune" 

С набором HISTIGNORE ничто, сопоставимое с отображаемыми вами шаблонами, не будет сохранено в .bash_history / .zsh_history и даже клавиша со стрелкой вверх, которая обычно напоминает вашу предыдущую команду, не будет работать, если она соответствует вашему шаблону.

В bash используйте переменную HISTCONTROL .

Установите его в HISTCONTROL=ignorespace (или HISTCONTROL=ignoreboth ). Теперь, когда вы начинаете линию с пробела , она не будет сохранена в истории. Это позволяет не включать в состав файла конфигурации не подлежащую раскрытию команду.

Даже так, как будто это забывает добавить пространство, а затем хотеть вернуться. Чтобы удалить запись в истории, используйте history -d <index> , index номер, найденный с помощью команды history (первый столбец).

Самый простой способ для одноразового использования –

 $ $SHELL $$ unset HISTFILE $$ secret-command $$ exit $ 

где $ представляет собой приглашение начальной оболочки, а $$ представляет собой приглашение подоболочки. Это работает в bash и zsh; в ksh вам нужно HISTFILE=/notwritable . Обратите внимание, что имеет значение значение HISTFILE когда файл истории написан, а не когда команда запущена. Bash, ksh и zsh записывают в файл истории, когда они выходят (zsh может делать это чаще в зависимости от конфигурации).

В качестве альтернативы вы можете получить bash или zsh, чтобы игнорировать строки, соответствующие определенным шаблонам (это уже покрыто другими ответами).

Другая возможность в zsh

 % fc -p % secret-command % fc -P 

fc -p перетаскивает текущий список истории в стек и запускает новый, который не связан с файлом сохранения. fc -P выдает этот несохраненный список истории из стека и полностью забывает об этом.

Пока процесс выполняется, команда и ее аргументы (а также некоторые системы, в том числе и ее среда) будут отображаться в таблице процессов (вывод ps ). Корень может видеть прошлые команды в базе данных системы учета и может выполнять больше регистрации без вашего контроля. И, вероятно, будут все виды судебных доказательств, которые могут показать примерно ту команду, которую вы выполняли (например, время модификации файла). Таким образом, вы не получаете конфиденциальность от определенных подслушивающих устройств.

  • Установка шрифтов Powerline для темы zsh + Prezto
  • Удалить все, кроме самого большого файла определенного типа
  • dnf установить завершение не работает с zsh, но работает с bash
  • Дополнительный вывод при запуске команд из zsh в Guake
  • Проблема с zsh segfaulting: как продолжить оценку проблемы?
  • Как сделать поведение истории о-мой-zsh похожим на Bash's?
  • Когда требуется двойное цитирование?
  • Как создать более одного подкаталога с помощью ZSH? (на машине Debian)
  • dircolors on zsh: непризнанные ключевые слова: MULTIHARDLINK, RESET & CAPABILITY
  • zmv для zsh: сухие пробеги и справочные страницы
  • Изменение оболочки по умолчанию без привилегий chsh или администратора
  • Функция автозавершения Bash для SSHing в разные хосты
  • Linux и Unix - лучшая ОС в мире.