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

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

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

  • Как я могу перечислить все переменные оболочки?
  • Zsh скрипт, как конкатенировать элементы массива со строкой
  • Как я могу остановить Z-оболочку от сговора, чтобы вмешаться в вывод GNU Make?
  • Разбор JSON на оболочке
  • Как я могу правильно обрезать строку с помощью sed - и не убивать строку, если шаблон не существует?
  • Как получить более длинный заголовок xterm в zsh
  • Выбор случайного файла из каждой подпапки
  • Пробелы как разрывы строк из команды inline for loop
  • 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 ). Корень может видеть прошлые команды в базе данных системы учета и может выполнять больше регистрации без вашего контроля. И, вероятно, будут все виды судебных доказательств, которые могут показать примерно ту команду, которую вы выполняли (например, время модификации файла). Таким образом, вы не получаете конфиденциальность от определенных подслушивающих устройств.

    Interesting Posts

    Обновление apt-get не работает после установки в kali roll 2016

    Сценарий Bash, который считывает имена файлов из канала или из командной строки args?

    Я пытаюсь подсчитать и распечатать имена файлов песен, используя awk, следующим образом

    2 или более программ в одном USB-конвертере

    Как сделать `head` и` tail` на вход с нулевым ограничением в bash?

    Использование оператора bash «&» с разделителем «;»?

    Автономный менеджер паролей с CLI

    Регулярное выражение SHELL заканчивается обратным слэшем

    Какие команды необходимы в файле '~ / .vnc / xstartup' для запуска KDE Plasma 5 в VNC?

    Показать каждую установленную оболочку командной строки?

    независимо убедитесь, что TRIM действительно работает на SSD

    SFTP: предоставить пользователю доступ к папке вне дома

    make wmaker default window manager – избавиться от Cinnamon

    ps: Как получить процессы без потребления памяти?

    Существует ли канонический метод ограничения доступа ssh к определенным IP-адресам в Unix?

    Linux и Unix - лучшая ОС в мире.