Как очистить историю 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
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Как очистить историю команд в Linux 3 мин для чтения

И стория bash хранит записи всех команд терминала, которые выполняются пользователем в системе Linux с командной строкой. Используя функцию истории, вы можете легко найти ранее выполненные команды в вашей системе Linux с помощью клавиш со стрелками.
Почему мы должны удалить историю командной строки Linux?
В большинстве случаев мы не хотим раскрывать историю терминалов других пользователей вашей системы Linux. Например, если вы проводите занятия со своими учениками на лабораторном компьютере, и, возможно, вы научили их некоторым вредоносным командам, которые не рекомендуется использовать в нашей системе. Но большинство студентов не имеют представления о побочных эффектах этих важных команд. Любопытный студент может поискать в истории командной строки и протестировать ее, чтобы проверить работу каждой команды. Это может привести к сбою вашей системы много раз. Однако вы можете быстро отремонтировать или переустановить свою систему. Но это не очень хорошая практика. Итак, в этом случае мы хотим очистить историю командной строки после работы с ней. Особенно, если у вас есть общий доступ со своими друзьями или коллегами. Мы только что разработали это на простом примере; могут возникнуть другие проблемы, из-за которых вы захотите очистить историю командной строки Linux. В этой статье мы покажем вам, как можно очистить историю командной строки в системе Linux.
В этой статье мы выполнили все команды терминального приложения в Ubuntu 20.04. Следовательно, необходимо открыть окно терминала в вашей системе. Щелкните «Действия», расположенный в левом углу на рабочем столе вашей системы, а затем, используя панель поиска приложения, вы выполните поиск по ключевому слову «терминал». После завершения поиска щелкните значок терминала и запустите его.
Удаление истории командной строки Linux
Если вы хотите просмотреть историю своей команды терминала, введите в терминале следующую команду:
$ history
Обычно история командной строки сохраняется в файле с именем «bash_history». Этот файл вы можете найти в домашнем каталоге конкретного пользователя /home/username/.bash_history. Выполните приведенную ниже команду, чтобы найти файл bash_history:
$ ls -l /home/andreyex/.bash_history
[gn_box title=»Примечание» box_color=»#fdff8c» title_color=»#000000″]Пользователь root может просматривать историю команд всех пользователей в вашей системе. Но обычный пользователь может просматривать только свою собственную историю командной строки.[/gn_box]
Читать Как проверить, установлен ли пакет в Debian и Ubuntu
Удалить строку из истории bash
Если вы хотите удалить только одну строку из файла истории bash, вы можете использовать параметр -d с командой history и ввести целевой номер строки, который вы хотите удалить.
Например, мы хотим очистить команду, содержащую ваш пароль, в которой вы ввели пароль в виде обычного текста; вы можете легко найти номер строки в файле истории и очистить его, выполнив следующую команду:
$ history -d 355pre
Удалить или очистить все команды из истории bash
Вы также можете очистить или удалить все записи из файла истории bash. Итак, используйте параметр -c с командой history. Вы можете запустить следующую команду на терминале, чтобы очистить или удалить всю историю bash:
$ history -c
В качестве альтернативы, выполнив следующую команду, вы можете удалить или удалить всю историю последних выполненных команд в файле истории bash навсегда.
$ cat /dev/null > ~/.bash_history
Заключение
В этой статье мы представили лучшее понимание команды истории и почему нам нужно ее очистить. Мы надеемся, что теперь с помощью вышеупомянутой команды можно легко очистить историю вашей системы. Но всегда помните, что все команды, которые вы выполняете на терминале, записываются в файл истории bash, поэтому рекомендуется никогда не использовать пароли в текстовом формате в командной строке Linux. Если у вас есть какие-либо вопросы или мысли, связанные с этой статьей, поделитесь с нами своими идеями.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как удалить 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:
Как удалить / отключить историю команд оболочки Bash в Linux

Мануал
Автор cryptoparty На чтение 1 мин Опубликовано 22.05.2019
Это руководство поможет вам удалить / отключить историю команд оболочки Bash в Linux.
1. Отключить историю для текущей оболочки.
# set +o history
2. Очистить историю команд.
# history -c
3. Навсегда отключить историю bash.
# echo 'set +o history' >> ~/.bashrc
В следующий раз, когда пользователь войдет в оболочку, он не будет хранить никаких команд в файле истории .bash_history.
Чтобы немедленно применить эти настройки для текущего сеанса оболочки, запустите файл .bashrc:
# . ~/.bashrc
4. Отключите всю историю команд:
# echo 'set +o history' >> /etc/profile
Это будет эффективно для новых пользователей, созданных после этого.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий Отменить ответ

Поддержать нас
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (110)
- Книги (27)
- Мануал (2 359)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (831)
- Обход запретов (34)
- Опросы (3)
- Скрипты (116)
- Статьи (360)
- Философия (124)
- Юмор (18)
Наш Telegram

Социальные сети
Поделиться
Anything in here will be replaced on browsers that support the canvas element
- Каковы различные форматы сертификатов? 27.10.2023
Цифровые сертификаты могут использоваться для различных целей. Они могут использоваться для защиты соединений с веб-сайтами, для шифрования сообщений электронной почты или для проверки личности пользователя. Выбор правильного формата сертификата необходим для обеспечения безопасности и сохранности данных. Когда речь идет о различных форматах сертификатов, важно выбрать тот, который соответствует вашим потребностям Выберите формат сертификата, совместимый с […]
Преобразование файла PFX (PKCS #12) в формат PEM (Privacy Enhanced Mail) достаточно просто на Linux и Unix-подобных системах. В этой статье мы рассмотрим, как преобразовать файл сертификата в формате PFX в файл PEM с помощью OpenSSL из командной строки. Что такое файл PFX? PFX (также PKCS#12) – это формат файла, содержащего сертификат(ы) и закрытый(ые) ключ(ы), […]
Одним из основных нововведений, появившихся в Podman, стала возможность запуска контейнеров без прав root. С точки зрения безопасности это было существенным улучшением, поскольку потенциально скомпрометированный контейнер, запущенный от имени root, представляет собой угрозу безопасности для хост-системы. Чтобы добиться аналогичного поведения, последние версии Docker поддерживают запуск демона docker в пользовательском контексте. Почему процессы в контейнерах […]
Small Form Factor Pluggable (SFP) – это компактный приёмопередатчик, который устанавливается в SFP порт коммутатора Ethernet. Модуль используется для присоединения платы сетевого устройства к оптическому волокну или витой паре. Модули SFP заменили устаревшие модули GBIC благодаря своим миниатюрным размерам. Это преимущество в размерах позволяет им эффективно работать в ограниченных сетевых средах, обеспечивая быстрый обмен данными […]
Давайте поговорим о классификации вредоносных программ. Когда антивирусная программа или средство защиты от вредоносного ПО обнаруживает что-то потенциально вредоносное, она использует определенный формат, чтобы помочь вам или другим специалистам понять, с какой именно угрозой вы имеете дело. Формат может выглядеть примерно так: Type:Platform/Family.Variant!Suffixes Это не всегда будет выглядеть именно так, поскольку, как вы помните, не […]