history
История введённых команд
← Урок 02: Первые команды — урок где команда введена
Описание
history — встроенная команда оболочки Bash (не отдельная программа), отображающая
список ранее введённых команд в текущей сессии и из файла истории. Команды нумеруются начиная с 1.
История команд хранится в файле ~/.bash_history (или ~/.zsh_history в zsh).
По умолчанию Bash сохраняет до 1000 последних команд (определяется переменной
HISTSIZE) и записывает их в файл истории при завершении сессии.
history полезна для повтора команд, аудита действий, сохранения последовательности
шагов в файл. В домашнем задании урока 02 используется паттерн
history > /tmp/history.txt для экспорта истории.
Синтаксис
Компоненты команды:
- history — вывести всю историю команд.
- N — показать только последние N команд.
- [ОПЦИИ] — флаги для управления историей.
Флаги и опции
| Флаг / Аргумент | Описание |
|---|---|
N |
Показать последние N команд (например, history 20) |
-c |
Очистить историю текущей сессии (из памяти; файл ~/.bash_history не трогается до выхода из сессии) |
-d OFFSET |
Удалить запись с номером OFFSET из истории текущей сессии |
-w |
Записать текущую историю в файл ~/.bash_history (не ждать завершения сессии) |
-r |
Прочитать содержимое файла ~/.bash_history в список истории текущей сессии |
-a |
Дописать новые команды текущей сессии в файл истории (без перезаписи) |
Паттерны использования
Показать всю историю
Базовый вызов — вывести пронумерованный список всех команд сессии.
history # Вывод: # 1 ls /home # 2 cd /tmp # 3 mkdir test # 4 history
Последние N команд
Отображение только последних N команд — удобно, чтобы не листать весь список.
history 10 # Показать последние 10 команд history 5 # Последние 5 команд
Записать историю в файл (ДЗ урока 02)
Точный паттерн из домашнего задания урока 02: сохранить историю и экспортировать файл.
# Записать историю в файл history > /tmp/history.txt # Экспорт через инструмент JSLinux-среды history > /tmp/history.txt && export_file /tmp/history.txt
Повтор команды по номеру и Ctrl+r поиск
Быстрое повторение команд без перепечатывания — ключевой навык работы с терминалом.
# Повторить команду с номером 42 !42 # Повторить последнюю команду !! # Повторить последнюю команду начинающуюся на "git" !git # Ctrl+r — интерактивный обратный поиск по истории # Нажмите Ctrl+r и начните печатать — bash найдёт совпадение
Советы и предупреждения
Размер истории в памяти сессии задаётся переменной
HISTSIZE (по умолчанию 1000).
Размер файла на диске задаётся HISTFILESIZE (по умолчанию 2000).
Чтобы увеличить: добавьте в ~/.bashrc:
HISTSIZE=10000 HISTFILESIZE=20000
В учебной среде JSLinux команда
export_file позволяет скачать файл из браузерного
терминала на локальный компьютер. Стандартная задача: сохранить историю в файл и скачать её:
history > /tmp/history.txt && export_file /tmp/history.txt.
В обычном Linux export_file не существует — используйте scp или rsync.
Если команда начинается с пробела (
history), Bash не записывает её в историю
(при условии, что в HISTCONTROL есть значение ignorespace).
Это удобно для команд с паролями в аргументах: mysql -u root -pMYPASS.