linux терминал

history

История введённых команд

← Урок 02: Первые команды — урок где команда введена

Описание

history — встроенная команда оболочки Bash (не отдельная программа), отображающая список ранее введённых команд в текущей сессии и из файла истории. Команды нумеруются начиная с 1.

История команд хранится в файле ~/.bash_history (или ~/.zsh_history в zsh). По умолчанию Bash сохраняет до 1000 последних команд (определяется переменной HISTSIZE) и записывает их в файл истории при завершении сессии.

history полезна для повтора команд, аудита действий, сохранения последовательности шагов в файл. В домашнем задании урока 02 используется паттерн history > /tmp/history.txt для экспорта истории.

Синтаксис

history [ОПЦИИ] [N]

Компоненты команды:

# Показать всю историю history # Показать последние 10 команд history 10 # Записать историю в файл history > /tmp/history.txt # Найти команду в истории history | grep mkdir

Флаги и опции

Флаг / Аргумент Описание
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 и ~/.bash_history
Размер истории в памяти сессии задаётся переменной HISTSIZE (по умолчанию 1000). Размер файла на диске задаётся HISTFILESIZE (по умолчанию 2000). Чтобы увеличить: добавьте в ~/.bashrc:
HISTSIZE=10000
HISTFILESIZE=20000
Паттерн export_file из ДЗ урока 02
В учебной среде 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.