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

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Где хранится история ввода команд?

По умолчанию оболочка Bash сохраняет историю ввода команд при выходе из оболочки и загружает историю при запуске нового сеанса оболочки. Размер файла истории определяется значением переменной среды HISTSIZE. Вы можете изменить это значение, добавив следующую строку в файл
Это установит размер файла истории на 1000 команд. Вы также можете изменить переменную HISTFILESIZE, чтобы изменить максимальный размер файла истории.
/.zsh_history работает аналогичным образом для оболочки Zsh. Вы можете изменить размер файла истории, задав переменные HISTSIZE и SAVEHIST в файле
Это установит размер файла истории на 1000 команд и сохранит историю при выходе из оболочки.
- Вконтакте


SHA_bash, Этот файл находится в вашем домашнем каталоге и используется командой history для отображения списка команд, которые вы вводили в прошлом.
Вы можете просмотреть содержимое файла .bash_history, выполнив следующую команду:
Это отобразит содержимое файла .bash_history в терминале. Вы также можете использовать команду history для отображения списка команд, которые вы ввели в прошлом. Например:
Это отобразит список команд, которые вы ввели, вместе с номером команды и временем, когда команда была введена. Затем вы можете использовать номер команды для быстрого доступа к ранее введенной команде. Например, чтобы выполнить команду с номером команды n, вы можете использовать нотацию !n, например:
Это выполнит команду с номером команды n.

Denkuwus, я посмотрел в домашней директории через ls -a, но не нашёл среди всего bash_history..
И почему-то команда history не работает с ключом -с, чтобы очистить историю..

SHA_bash, Возможно, файл .bash_history не создается или по какой-то причине удаляется.
По умолчанию оболочка bash должна создать файл .bash_history в вашем домашнем каталоге и сохранить запись введенных вами команд. Если файл .bash_history не создается или удаляется, вам может потребоваться проверить конфигурацию bash, чтобы увидеть, есть ли какие-либо настройки, вызывающие такое поведение.
Чтобы проверить конфигурацию bash, вы можете просмотреть файл
/.bashrc в своем домашнем каталоге. Этот файл содержит набор команд и настроек, которые выполняются каждый раз, когда вы запускаете новую оболочку bash. Вы можете найти любые настройки, которые могут повлиять на создание или удаление файла .bash_history.
Что касается команды history, то для очистки файла истории используется параметр -c. Если вы не можете использовать параметр -c для очистки истории, это может быть связано с тем, что файл .bash_history не существует или у вас нет разрешения на изменение файла.
Вы можете проверить права доступа к файлу .bash_history, выполнив команду ls -l
/.bash_history. Это покажет вам разрешения на файл .bash_history и владельца файла. Если у вас нет прав на запись в файл, вы не сможете его изменить.
Если вы не можете найти файл .bash_history или у вас нет разрешения на его изменение, вам может потребоваться обратиться к системному администратору или проверить документацию для вашей версии bash, чтобы узнать, есть ли какие-либо другие варианты очистки истории. .
Команда History, как сделать резервную копию в Ubuntu

В следующей статье мы рассмотрим как мы можем сделать резервную копию истории терминала в Ubuntu и как его восстановить. Терминал Gnu / Linux предлагает пользователям называется команда история. Эта функция будет делать резервную копию каждой операции с помощью используемых нами команд, что позволяет пользователям использовать ее в другое время.
Поскольку все лос команды терминала которые мы выполняем, пользователи сохраняются в папке ‘запись«, в некоторых случаях может быть очень полезно иметь резервную копию для дальнейшего использования. В следующих строках мы увидим, как сделать резервную копию истории терминала в Ubuntu, а также как восстановить ее позже.
Команда истории

Где хранится история терминала?
Терминал Gnu / Linux хранит свою историю в файле. Восток назван ‘.bash_history‘и хранится в домашнем каталоге, откуда любой может его редактировать. Поскольку файл истории терминала хранится в каталоге пользователя, у каждого будет свой файл.
Любой пользователь системы может просмотреть историю другого с помощью простой команды. Так, например, если бы мы хотели взгляните на историю командной строки, нам просто нужно написать в терминале что-то вроде следующего (Ctrl + Alt + T):

Пользователи также смогут просмотреть историю текущего пользователя с помощью которого мы авторизуемся в терминале, выполнив:
Поскольку история — это всего лишь один файл, мы сможем искать внутри, как в обычном текстовом файле, используя утилиту grep. Например, чтобы найти экземпляры ‘трогать‘вы должны использовать что-то вроде следующего:
Мы также можем использовать следующую команду:

к посмотреть возможные варианты использования команды history, мы можем написать:

Сохранить историю терминала в резервную копию
Как мы уже говорили, «история» для терминала — это просто скрытый текстовый файл, содержащий все команды, написанные пользователем. Что ж, поскольку это всего лишь один файл, это означает, что очень легко сделать резервную копию для сохранения.
Сделать это мы будем использовать команду cat. С помощью этой команды мы сможем увидеть весь текстовый файл прямо в терминале. Если мы воспользуемся этой командой в сочетании с символом ‘>‘мы можем перенаправить вывод визуализации в файл, который мы будем использовать в качестве резервной копии.
Мы получим нашу резервную копию, набрав в терминале следующее (Ctrl + Alt + T):
Мы также можем запустить команду истории в сочетании с ‘>’ чтобы сохранить вывод команды в файл:
Другая возможность будет резервное копирование истории другого пользователя. Важно убедиться, что вы изменили «имя пользователя‘поскольку нас интересуют:
Сделайте резервную копию определенных элементов истории
Если мы хотим сделать резервную копию только определенных команд из истории, мы можем сделать это, просмотрев файл истории и объединив его с командой grep, который будет фильтровать определенные ключевые слова.
В следующих примерах давайте использовать ‘>>’ вместо ‘>’. Причина использования «>>» заключается в том, что он не будет перезаписывать содержимое резервной копии файла журнала и его можно запускать несколько раз для добавления в резервную копию.
Например, если мы хотим сделать резервную копию команд в истории, которые содержат команду настройки, мы можем выполнить следующую операцию:
Или также можно было бы использовать:
Фильтрацию с помощью grep также можно применить к команде history:
Чтобы сделать резервную копию определенных ключевых слов из файла истории, просто замените «настройки‘в примерах выше. Кроме того, мы можем повторно запускать эту команду сколько угодно раз.
Восстановить резервную копию истории
Восстановить резервную копию истории так же просто, как удалите исходный файл и поместите резервную копию на его место. Чтобы удалить исходный файл истории, мы можем используйте команду rm, чтобы удалить ‘.bash_history«.
После удаления файла из домашней папки пользователя, в которой мы хотим восстановить историю, с помощью команды mv мы можем изменить имя ‘backup_historial’ на ‘.bash_history».
Теперь, когда новый файл журнала создан, мы должны выполните следующую команду, чтобы перезагрузить функцию.
Когда мы закончим, мы сможем пробег ‘история‘чтобы увидеть восстановленные команды в окне терминала.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Убунлог » Ubuntu » Команда History, как сделать резервную копию в Ubuntu