Вводим привычку хранения истории команда на обслуживаемых системах Ubuntu LTS Server.
Т.е. мне нужно чтобы все что я вводя в консоли (использую интерпретатор команд bash
)
ekzorchik@srv-us2204a:~$ cat /etc/passwd | grep ekzorchik ekzorchik:x:1000:1000:ekzorchik:/home/ekzorchik:/bin/bash
сохранялось, а обычно оно и сохраняется в файле ~/.bash_history
пользовательского каталога, к примеру если моя обычная учетная запись – это Login:ekzorchik
, то файл находится в /home/ekzorchik/.bash_history
ekzorchik@srv-us2204a:~$ cat ~/.bash_history | head -n10 sudo dhclient -r ens160 sudo dhclient -v ens160 sudo nano /etc/hostname sudo nano /etc/hosts exit ip r sudo dhclient -r esn160 sudo visudo sudo reboot ip r ekzorchik@srv-us2204a:~$
А вот параметры хранения истории указываются в файле ~/.bashrc
Чтобы сохранять историю вводимых команд текущего сеанса в файл с историей:
ekzorchik@srv-us2204a:~$ nano ~/.bashrc export PROMPT_COMMAND='history -a'
Чтобы сохранять история по формату (ГОД-Месяц_дата Час_Минута_Секунда):
ekzorchik@srv-us2204a:~$ nano ~/.bashrc HISTTIMEFORMAT='%F %T '
На заметку: После %T
обязательно ставим символ пробела, это нужно чтобы вывод истории команд был следующим:
70 2024-09-27 09:56:01 sudo nano /etc/ssh/authorized_keys 71 2024-09-27 09:56:01 sudo useradd ezhuk 72 2024-09-27 09:56:01 sudo passwd ezhuk 73 2024-09-27 09:56:01 sudo mkdir /home/ezhuk 74 2024-09-27 09:56:01 sudo nano /etc/passwd 75 2024-09-27 09:56:01 sudo usermod -aG sshauth
Увеличиваем количество строк с 1000
(по умолчанию) к примеру, до 10000:
ekzorchik@srv-us2204a:~$ nano ~/.bashrc HISTSIZE=10000
Обозначаем команды, которые не нужно вносить/сохранять в файле журнала:
ekzorchik@srv-us2204a:~$ nano ~/.bashrc HISTIGNORE="w,htop,top,iftop,ls,id"
Если нужно чтобы вводимая команда в консоли не была занесена в историю, нужно перед нет поставить предопределенный символ, к примеру символ "Пробела":
ekzorchik@srv-us2204a:~$ nano ~/.bashrc #HISTCONTROL=ignoreboth HISTCONTROL=ignorespace
Чтобы изменения в файле применились тут же без закрытия и открытия консоли командной строки:
ekzorchik@srv-us2204a:~$ source ~/.bashrc
Если нужно чтобы все настройки, сделанные выше применялись ко всем пользователям в системе:
ekzorchik@srv-us2204a:~$ sudo nano /etc/bash.bashrc ekzorchik@srv-us2204a:~$ source /etc/bash.bashrc
Хочу еще заметить, что перед последующим использование настроек выше, не забываем проверить какие права установлены на пользовательский файл ~/.bash_history
ekzorchik@srv-us2204a:~$ ls -l ~/.bash_history -rw------- 1 root root 48 авг. 31 21:35 /home/ekzorchik/.bash_history
нужно изменить их на пользователя:
ekzorchik@srv-us2204a:~$ sudo chown ekzorchik:ekzorchik ~/.bash_history
Чтобы отобразить набранные команды вводим "history"
и видим порядковые номера когда либо набранных команды, а чтобы запустить какую либо из них, делаем: ![номер_команды].
На заметку: кавычки перед history
и после вводить вводить не нужно
Чтобы посмотреть историю первых набранных файлов следует в консоли набрать команду:
ekzorchik@srv-us2204a:~$ head -n 5 /home/keiz/.bash_history
Чтобы посмотреть историю последних набранных файлов следует в консоли набрать команду:
ekzorchik@srv-us2204a:~$ tail -f -n 5 /home/keiz/.bash_history
Чтобы удалить конкретную строку в истории набранных файлов:
ekzorchik@srv-us2204a:~$ history -d243
Чтобы очистить историю запоминаемых команд:
ekzorchik@srv-us2204a:~$ history -c
Чтобы отредактировать команду под номером (используется предопределенный пользователем текстовый редактор, у меня nano):
ekzorchik@srv-us2204a:~$ fc 168
Вот такую шпаргалку я буду продолжать составлять для себя по мере зарабатывания опыта. Пока на этом все, с уважением автор блога Олло Александр aka ekzorchik.