По умолчанию каждая команда, которую вы выполняете на терминале, сохраняется оболочкой (командным интерпретатором) в определенном файле, называемом файлом истории или историей команд оболочки. В Bash (наиболее популярной оболочке в Linux-системах) по умолчанию количество команд, сохраняемых в истории, составляет 1000, а в некоторых дистрибутивах Linux - 500.
Чтобы проверить размер истории в Bash, выполните эту команду:
1 | echo $HISTSIZE |
Чтобы увидеть старые команды, которые вы выполняли, вы можете использовать команду history для отображения истории команд оболочки:
1 | history |
Иногда вам может понадобиться запретить оболочке записывать команды в историю команд. Это можно сделать следующим образом.
Удаление команды Linux из истории после выполнения
Вы можете немедленно удалить команду из истории оболочки после ее выполнения в командной строке, добавив к ней команду history -d $(history 1).
Подкоманда $(history 1) извлекает последнюю запись в истории в текущем терминальном сеансе, где 1 - это смещение, а опция -d помогает удалить ее.
Любая команда, выполняемая в обычном режиме, сохраняется в истории оболочки.
Однако, когда вы добавляете команду history -d $(history 1) к командной строке, она сразу же удаляется из истории.
1 | echo "Эта команда не будет сохранена в истории";history -d $(history 1) |
Использование префикса команды с пробелом
Другой способ предотвратить сохранение команды в истории - это префикс команды с пробелом. Но это полностью зависит от значения переменной оболочки $HISTCONTROL, определенной в файле запуска ~/.bashrc Bash. Чтобы этот метод работал, он должен иметь одно из этих значений: ignorespace или ignoreboth.
1 | echo $HISTCONTROL |
ИЛИ
1 | cat ~/.bashrc | grep $HISTCONTROL |
Для установки, просто заполняем переменную
1 | nano ~/.bashrc |
1 | export HISTCONTROL=ignorespace |
Если вышеупомянутая переменная оболочки установлена, то любая команда с пробелом не сохраняется в истории:
1 2 | echo "Эта команда не имеет пробела, она будет сохранена в истории!". echo "Эта команда снабжена пробелом, она не будет сохранена в истории!" |