Команда history, это не просто вывод истории команд, которые ты или кто-то набирал в консоли. Это великолепный инструмент, с помощью которого можно воссоздать к примеру всю картину настройки сервера. Либо отдебажить момент когда всё работало, а сегодня перестало, по причине какого нибудь отбитого админа, который решил тонко оптимизировать linux ядро.
В общем — history, это как спасательный круг. Давай сегодня затюним её на удобство.
Чего же не хватает из коробки? А не хватает временны́х маркеров, то есть даты и времени, когда была выполнена та или иная команда. Это легко решаемо. Для оболочки bash это делается так:
export HISTTIMEFORMAT="%d/%m/%y %T "И вывод будет примерно таким:
369 20/07/23 15:46:54 flask runЛибо можешь прописать это в
370 20/07/23 15:46:54 /usr/bin/python3
371 20/07/23 15:46:54 python --version
372 20/07/23 15:46:54 python3 --version
373 20/07/23 15:46:54 ps ax|grep python
374 20/07/23 15:46:54 sudo kill -9 30049
375 20/07/23 15:46:54 brew install pyenv
~/.bashrc чтобы export выполнялся автоматически:echo "export HISTTIMEFORMAT=\"%d/%m/%y %T \"" >> ~/.bashrcПрекрасно, теперь намного нагляднее. Идем дальше. Давай перекрасим временные маркеры в синий цвет, чтобы более лаконично выглядело.
export MY_BASH_BLUE="\033[0;34m"Эти экспорты можешь так же закинуть в
export MY_BASH_NOCOLOR="\033[0m"
export HISTTIMEFORMAT=`echo -e ${MY_BASH_BLUE}[%F %T $MY_BASH_NOCOLOR `
~/.bashrc и затем выполнить команду source ~/.bashrc чтобы не перезагружать сессию и применить настройки в моменте.Окей, но как же быть с оболочкой zsh? Сейчас и в ней сделаем нечто подобное.
Из коробки zsh, ты можешь воспользоваться командой:
history -Eвывод будет таким:
9481 9.5.2023 16:04 export FLASK_RUN_PORT=8888Уже более менее информативно, а если так:
9482 9.5.2023 16:04 export FLASK_APP=index.py
9483 9.5.2023 16:04 flask run
9484 9.5.2023 16:08 export TGS_API_KEY=12345
9485 9.5.2023 16:08 flask run
history -iопа-опа-опапа:
9481 2023-05-09 16:04 export FLASK_RUN_PORT=8888Видим другой формат даты. Вообще ключей для форматирования даты достаточно много, можешь почитать на досуге если интересно:
9482 2023-05-09 16:04 export FLASK_APP=index.py
9483 2023-05-09 16:04 flask run
9484 2023-05-09 16:08 export TGS_API_KEY=12345
9485 2023-05-09 16:08 flask run
man zshoptionsНу а чтобы каждый раз не вводить ключи, сделай нужный тебе alias в
man zshbuiltins
~/.zshrc
alias history="history -i"А еще есть такая утилита как «fc», я думаю большинство про нее вообще ничего не слышали.
fc — unix-утилита, служащая для редактирования списка ранее введенных команд, а также их выполнения.
Вот тебе команда на основе fc, которая выведет историю, сразу же с временными маркерами:
fc -li 100Больше уж и сказать нечего, основное разобрали, внедряй. Еще есть и другие оболочки типа fish, но так как я ими не пользуюсь ежедневно, то и рассказывать вам про них сегодня не буду.
А завтра снова пятница, неделя прям в трубу вылетела. Давайте, увидимся. 🐱
tags: #bash #linux
—
🟢 Подпишись: @bashdays