Как очистить историю команд в Linux
В истории bash хранятся записи всех команд терминала, которые выполняются пользователем в системе Linux с командной строкой. Используя функцию истории, вы можете легко найти ранее выполненные команды в вашей системе Linux с помощью навигации с помощью клавиш со стрелками.
Почему мы должны удалить историю командной строки Linux?
В большинстве случаев мы не хотим раскрывать историю терминалов других пользователей вашей системы Linux. Например, если вы проводите занятия со своими учениками на лабораторном компьютере и, возможно, научили некоторым вредоносным командам, которые не рекомендуется использовать в нашей системе. Но большинство студентов не имеют ни малейшего представления о побочных эффектах этих критических команд. Любознательный студент может поискать в истории командной строки и протестировать их, чтобы проверить работу каждой команды. Это может привести к сбою вашей системы много раз. Однако вы можете быстро восстановить или переустановить систему. Но это не очень хорошая практика. Итак, в этом случае мы хотим очистить историю командной строки после работы над ней. Особенно, когда у вас есть общий доступ с друзьями или коллегами. Мы только что разработали его на простом примере; могут быть и другие проблемы, из-за которых вы хотите очистить историю командной строки Linux. В этой статье мы покажем вам, как очистить историю командной строки в системе Linux.
В этой статье мы выполнили все команды в терминальном приложении Ubuntu 20.04. Поэтому необходимо открыть окно терминала в вашей системе. Нажмите «Действия», расположенную в левом углу рабочего стола вашей системы, а затем с помощью панели поиска приложения вы выполните поиск по ключевому слову «терминал». После завершения поиска нажмите на значок терминала и запустите его.

Удаление истории командной строки Linux
Если вы хотите просмотреть историю своей команды терминала, введите в терминале следующую команду:

Обычно история командной строки хранится в файле с именем «bash_history». Этот файл вы можете найти в домашнем каталоге конкретного пользователя /home/username/.bash_history. Выполните приведенную ниже команду, чтобы найти файл bash_history:
$ ls -l / home / kbuzdar / .bash_history

Примечание. Пользователь root может просматривать историю команд всех пользователей вашей системы. Но обычный пользователь может просматривать только свою собственную историю командной строки.
Удалить строку из истории bash
Если вы хотите удалить только одну строку из файла истории bash, вы можете использовать опцию -d с командой history и ввести номер целевой строки, которую вы хотите удалить.
Например, мы хотим очистить команду, содержащую ваш пароль, если вы ввели пароль в виде обычного текста; вы можете легко найти номер строки в файле истории и очистить его, выполнив следующую команду:
$ history -d 355

Удалить или очистить все команды из истории bash
Вы также можете очистить или удалить все записи из файла истории bash. Итак, используйте опцию -c с командой history. Вы можете запустить следующую команду на терминале, чтобы очистить или удалить всю историю bash:

В качестве альтернативы, выполнив следующую команду, вы можете навсегда удалить или удалить всю историю последних выполненных команд в файле истории bash.
$ cat / dev / null > ~ / .bash_history

Заключение
В этой статье мы представили лучшее понимание команды истории и почему нам нужно ее очистить. Я надеюсь, что из приведенной выше команды теперь можно легко очистить историю вашей системы. Но всегда помните, что все команды, которые вы выполняете на терминале, записываются в файл истории bash, поэтому рекомендуется никогда не использовать пароли в текстовом формате в командной строке Linux. Если у вас есть какие-либо вопросы и мысли, связанные с этой статьей, пожалуйста, поделитесь своими идеями с нами.
Все права защищены. © Linux-Console.net • 2019-2023
Как очистить историю терминала в Linux или macOS
Нажмите стрелку «вверх» в командной строке Mac или Linux, и вы увидите последнюю выполненную команду. Продолжайте нажимать «вверх», и вы увидите больше команд; Вы можете вернуться на несколько дней, месяцев или даже лет назад.
Это называется ваша история, и это очень удобно. Если вы ошиблись, набрав длинную команду, просто нажмите «вверх» и исправьте проблему. Если вы хотите повторно подключиться к серверу SSH, который вы использовали на днях, просто нажимайте «вверх», пока не увидите соответствующую команду.
Это полезно, но здесь также есть потенциальная проблема безопасности, особенно если вы случайно ввели пароль в виде обычного текста в какой-то момент. Как очистить эту историю? Короче говоря, вы можете сделать это с помощью двух команд: history -c , за которой следует rm ~/.bash_history . Вот что делают эти команды, для большей ясности.
Очистить историю текущего сеанса
Вашу историю можно разделить на две части. Есть история ваших текущих сессий, а есть ваша долгосрочная история. Наша первая команда, history -c , имеет дело с текущим сеансом.

Команда history встроена в сам Bash, а модификатор -c указывает программе очистить эту историю. Эта команда предотвратит запись чего-либо в вашем текущем сеансе в вашу долгосрочную историю, но не очистит эту долгосрочную историю.
Очистить всю историю Bash
Если вы хотите удалить всю свою историю, выполните следующую команду:

Если вы не знаете, rm — это давняя команда для удаления файлов в системах на основе UNIX. ~/.bash_history — это простой текстовый документ, в котором хранится ваша история Bash.
Кроме того, вы можете открыть файл и удалить все строки, которые вас беспокоят. На Mac введите open ~/.bash_history , и текстовый редактор по умолчанию откроет файл.

В системах Linux замените open названием предпочитаемого вами текстового редактора, например nano , vim или gedit . Открыв файл, вы можете вручную удалить любые строки, которые не хотите сохранять. Сохраните файл, затем перезапустите оболочку, и удаленные вами строки перестанут отображаться.
Очистите свой терминал для нового сеанса
Это в основном не связано, но я все равно упоминаю об этом. Команда clear делает ваш Терминал похожим на то, что вы только что открыли новый сеанс, что полезно, если вы делаете много скриншотов и хотите, чтобы все выглядело аккуратно (или не хотите, чтобы люди через ваше плечо видели какие команды вы выполняли.)

Это полностью эстетично: прокрутите вверх, и вы все равно увидите свой предыдущий вывод. Но если вы работаете по моей специальности, это пригодится.
Как очистить историю Bash в Linux

Если вы когда-либо использовали командную строку на машине Linux, есть вероятность, что у вас есть длинная история команд, записанных в журнал. Если вы хотите очистить эту историю, есть несколько простых шагов, которые помогут вам сделать это. В этой статье мы расскажем, как очистить историю и создать новую.
Зачем очищать историю Bash?
Во многих случаях важно сохранить историю bash чистой по соображениям безопасности. Это, например, полезно при создании образа сервера для развертывания нескольких виртуальных машин.
Где хранятся данные истории Bash?
Первый шаг в очистке истории bash – найти, где она хранится. Обычно она находится в файле ~/.bash_history . Чтобы просмотреть этот файл и команды, хранящиеся в нем, выполните следующую команду:
cat ~/.bash_history | more
Очистка существующей истории Bash
Чтобы очистить историю Bash в Linux, используйте эту команду из связки трех команд:
cat /dev/null > ~/.bash_history && history -c && exit
Эти команды будут работать в большинстве, если не во всех дистрибутивах Linux. Я использовал их в Debian, Ubuntu, CentOS, AlmaLinux и Rocky Linux.
Что делают эти команды?
- Команд cat очищает файл .bash_history текущего вошедшего пользователя.
- Команда history -c очищает историю текущей сессии пользователя.
- Команда exit завершает текущую сессию.

Зарубин Иван Эксперт по Linux и Windows
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Как удалить history linux
Команда history является встроенной командой командных оболочек C shell, csh и bash (но не sh), предназначенной для повторного исполнения ранее исполненных команд. Обычно история команд хранится в отдельном файле, например, командная оболочка bash хранит ее в файле .bash_history, расположенном в домашней директории пользователя. Это очень полезная команда, позволяющая сэкономить время, требующееся для повторного ввода длинных команд.
Базовый синтаксис команды выглядит следующим образом:
Команда поддерживает различные параметры, позволяющие модифицировать файл, а также историю команд текущей сессии, которые, впрочем, используются крайне редко. В частности, параметр -c позволяет очистить историю команд, параметр -d позволяет удалить команду с заданным идентификатором из истории, параметр -a позволяет добавить команды из текущей сессии в файл истории команд с заданным именем, параметр -n позволяет прочитать новые команды из файла истории команд с заданным именем и добавить их в историю команд текущей сессии, параметр -r позволяет прочитать все команды из файла истории команд с заданным именем и добавить их в историю команд текущей сессии, параметр -w позволяет записать всю историю команд в файл с заданным именем, параметр -p позволяет раскрыть аргументы и вывести результаты без добавления в историю и параметр -s позволяет добавить аргументы в качестве единственной команды истории текущей сессии.
Команда учитывает значения переменных окружения. Например, переменные окружения FILENAME и HISTFILE позволяют задать имя файла истории команд, переменная окружения HISTTIMEFORMAT — установить формат вывода даты и времени, переменные окружения HISTSIZE и HISTFILESIZE — установить максимальное количество строк файла истории команд, переменная окружения HISTCONTROL — задать правила обработки команд перед помещением их в историю текущей сессии.
Примеры использования
Работа с историей команд
Для вывода истории команд, выполненных с помощью командной оболочки, следует использовать команду history без каких-либо параметров:
$ history
1 mc
2 nano /etc/apt/sources.list
3 apt-get update
…
Команда выведет длинный список команд с их номерами. Для исполнения команды с заданным номером достаточно записать этот номер после восклицательного знака. Например, следующая команда позволит выполнить команду mc:
Если использовать два восклицательных знака, будет повторена предыдущая команда:
Если же нужно найти определенные команды, достаточно задействовать утилиту grep:
$ history | grep kwboot
196 apt search kwboot
200 kwboot
203 kwboot -t -B 115200 /dev/ttyUSB0 -b u-boot.kwb -p
Также в bash существует сочетание клавиш CTRL+R, позволяющее искать команды в истории команд в интерактивном режиме:
(reverse-i-search)`kwboot -t’: kwboot -t -B 115200 /dev/ttyUSB3 -b u-boot.kwb -p
Блокировка механизма записи команд
Если вы не хотите, чтобы исполняемые команды записывались в историю, вы можете использовать переменную окружения HISTSIZE. По сути, вам нужно лишь экспортировать эту переменную с нулевым значением, после чего команды перестанут записываться в историю:
$ export HISTSIZE=0
$ history
$
Очевидно, что после этого команда history не выводит никаких результатов.
Блокировка записи отдельных команд
Если вы хотите использовать историю команд командной оболочки, но не желаете, чтобы в нее записывались все исполняемые команды, вы можете воспользоваться переменной окружения HISTCONTROL. К примеру, вы можете экспортировать эту переменную с значением ignorespace, после чего все команды, начинающиеся с символа пробела, не будут записываться в историю команд:
$ export HISTCONTROL=ignorespace
$ history
1 mc
…
344 export HISTCONTROL=ignorespace
345 history
$ ls
$ history
1 mc
…
344 export HISTCONTROL=ignorespace
345 history
346 history
Очевидно, что команда ls с начальным символом пробела не была записана в историю.
Игнорирование дублей команд
Для того, чтобы вывести историю команд с игнорированием дублей достаточно использовать значение erasedups переменной окружения HISTCONTROL:
$ export HISTCONTROL=ignoreboth:erasedups
$ history
1 mc
…
344 export HISTCONTROL=ignoreboth:erasedups
345 history
Очистка истории команд
Для очистки истории команд достаточно использовать параметр -c команды history: