TGViewer
LinuxCamp | DevOps LinuxCamp | DevOps @linuxcamp_tg · 13.6K subscribers
Post #115 7.01K
Учимся работать с историей bash

Чем больше работаешь в командной строке, тем чаще возникает необходимость повторять введенные ранее команды.

Самый простой, но иногда неоптимальный способ — нажимать клавиши «вверх» и «вниз». При каждом нажатии стрелки «вверх» в поле ввода начнет появляться предыдущая выполненная команда, если нажать «вниз» — следующая.

История команд bash хранится в специальном файле .bash_history, который лежит в домашней директории пользователя. Каждый раз, когда пользователь вводит команду, она попадает именно в этот файл. Запись происходит при завершении сеанса.

За то, какое количество команд хранится в истории, отвечает переменная окружения HISTFILESIZE. Если она выставлена, то берется указанное в ней число, иначе история не обрезается и файл .bash_history растет бесконечно:


$ cat ~/.bash_history

history | grep qdbu
qdbus org.kde.KWin /Compositor suspend


Посмотреть историю можно и более простым способом - выполнить команду history. Эта команда выведет содержимое .bash_history, добавив слева номер:


$ history
6 exit
7 docker ps


Если набрать "history 5", то отобразятся только пять последних введенных команд:


$ history 5
1498 sudo reboot
1499 cat ~/.bash_history
...


При необходимости историю всегда можно погрепать:


$ history | grep export
174 export HOME=/tmp
183 history | grep export


Еще один способ - использовать комбинацию Ctrl+R прямо в оболочке. После нажатия клавиш начинается поиск:


$ (reverse-i-search)`qdb': qdbus org.kde.KWin /Compositor suspend


Настройка истории Linux

По умолчанию, команда history дополняет .bash_history только порядковым номером, но вы можете выводить еще и дату выполнения команды. Для этого нужно экспортировать переменную HISTORYFORMAT вместе нужным форматом:


$ export HISTTIMEFORMAT='%F %T '

$ history
1503 2024-10-28 11:17:56 cat ~/.history


Также можно отключить вывод одинаковых команд:


$ export HISTCONTROL=ignoredups


Вы можете указать какие команды не стоит отображать, например, не будем выводить ls -l, pwd и date:


$ export HISTIGNORE='ls -l:pwd:date:'


Linux++ | IT-Образование
  • 👍 49
  • 🔥 24
  • ❤ 3
  • 👎 1
More from @linuxcamp_tg
  1. Sep 28, 2026Проекту GNU вчера исполнилось 43 года 1983 год: Ричард Столлман объявил планы разработать…
  2. Sep 25, 2026Linux будет работать на ноутах с Snapdragon X2. Qualcomm добавляет полноценную поддержку L…
  3. Sep 24, 2026Так все по делу)) Советует же самый быстрый фикс LinuxCamp | #memes
  4. Sep 23, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
  5. Sep 22, 2026Ещё одна рекордная неделя для AI-разработки в Linux. На прошлой неделе в ядро попало 1 634…
  6. Sep 17, 2026Открыл плейлист, а как выйти - непонятно 😁 LinuxCamp | #memes
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →