Поиск по сайту:

Как запустить команду Linux без сохранения ее в истории


По умолчанию каждая команда, которую вы выполняете на своем терминале, сохраняется оболочкой (интерпретатором команд) в определенном файле, который называется файлом истории или историей команд оболочки. В Bash (самая популярная оболочка в системах Linux) по умолчанию количество команд, сохраняемых в истории, составляет 1000, а в некоторых дистрибутивах Linux — 500 . .

Чтобы проверить размер истории в Bash, выполните следующую команду:

echo $HISTSIZE

Чтобы просмотреть старые команды, которые вы запускали, вы можете использовать команду History для отображения истории команд оболочки:

history

Иногда вам может потребоваться отключить оболочку от регистрации команд в истории команд. Вы можете сделать это следующим образом.

Удалить команду Linux из истории после запуска

Вы можете удалить команду сразу из истории оболочки после ее запуска в командной строке, добавив к ней команду history -d $ (history 1).

Субкоманда $ (история 1) извлекает последнюю запись в истории текущего сеанса терминала, где 1 — это смещение, а -d Опция помогает удалить его.

Любая запущенная команда обычно сохраняется в истории оболочки.

echo "This command is saved in history"
history | tail

Однако когда вы добавляете команду history -d $ (history 1) в командную строку, она сразу же удаляется из истории оболочки, как показано на следующем снимке экрана:

echo "This command is not saved in history";history -d $(history 1)
history | tail

Другой способ запретить оболочке сохранять команду в истории — добавить префикс к команде пробела. Но это полностью зависит от значения переменной оболочки $HISTCONTROL, определенной в файле запуска ~/.bashrc Bash. Чтобы этот метод работал, ему должно быть присвоено одно из следующих значений: ignorespace или ignoreboth.

Вы можете проверить значение переменной $HISTCONTROL, как показано.

echo $HISTCONTROL
OR
cat ~/.bashrc | grep $HISTCONTROL

Если вышеупомянутая переменная оболочки установлена, то любая команда с префиксом пробела не сохраняется в истории:

echo "This command is not prefixed with space, it will be saved in history!"
echo "This command is prefixed with space, it will not be saved in history!"

Вот еще несколько интересных статей о командах Bash history и history:

  • 2 способа перезапустить последние выполненные команды в Linux
  • Как очистить историю командной строки BASH в Linux
  • Установите дату и время для каждой выполняемой вами команды в истории Bash

На этом всё! Используйте форму комментариев ниже, чтобы поделиться с нами своими мыслями по этой теме. До следующего раза оставайтесь с нами.