🎩 Bash: Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ — history.

На Ρ‡Π΅ΠΌ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π½ΠΎ: Rocky Linux 9.5 (Blue Onyx)/ Debian GNU/Linux 12 (bookworm)/ Ubuntu 24.04.1 LTS/ Fedora Linux 41 (KDE Plasma)

Π Π°Π±ΠΎΡ‚Π° с историСй ΠΊΠΎΠΌΠ°Π½Π΄ Π² bash являСтся ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ инструмСнтом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт быстро ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Ρ€Π°Π½Π΅Π΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π’ΠΎΡ‚ основныС способы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с историСй, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅:

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠ°Π½Π΄.

history — Если просто ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ history, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ список всСх ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅, Π² зависимости ΠΎΡ‚ настроСк.

$ history

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ список всСх ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии ΠΈ/ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅, Π² зависимости ΠΎΡ‚ настроСк.

Π₯ранится список Π² Ρ„Π°ΠΉΠ»Π΅ .bash_history, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располоТСн Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ~/.bash_history.

$ cat .bash_history

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ· истории.

!! — Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ послСднюю Π²Π²Π΅Π΄Ρ‘Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

!n — Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ n ΠΈΠ· списка истории, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ history. НапримСр, !42 Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ 42-ю ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

!-n — Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, которая Π±Ρ‹Π»Π° Π²Π²Π΅Π΄Π΅Π½Π° n ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π°Π·Π°Π΄. НапримСр, !-2 Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π²Π²Π΅Π΄Ρ‘Π½Π½ΡƒΡŽ Π΄Π²Π° Ρ€Π°Π·Π° Π²Π²ΠΎΠ΄Π° Π² консоль Π½Π°Π·Π°Π΄.

!string — Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ послСднюю ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΡƒΡŽΡΡ с string. НапримСр, Ссли послСдняя ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Ρ‹Π»Π° echo hello, ΠΊΠΎΠΌΠ°Π½Π΄Π° !echo Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π΅Ρ‘ снова.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ послСднСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

$ !!

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ послСднюю Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

НапримСр, Ссли послСдняя ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Ρ‹Π»Π° ls -l, Ρ‚ΠΎ !! Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π΅Ρ‘ снова.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ.

$ !42

Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ 42-я ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² спискС — это git status, Ρ‚ΠΎ !42 Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ git status.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ n ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π°Π·Π°Π΄.

$ !-2

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ Π΄Π²Π° Ρ€Π°Π·Π° Π²Π²ΠΎΠ΄Π° Π² консоль Π½Π°Π·Π°Π΄.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΉΡΡ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строки.

$ !git

Если крайняя ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с git, Π±Ρ‹Π»Π° git commit, Ρ‚ΠΎ это Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ git commit.

Поиск ΠΏΠΎ истории.

Ctrl + r — Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ поиск Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. НаТимая ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Ctrl + r, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст, ΠΈ bash Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат этот тСкст. НаТмитС Ctrl + r ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ совпадСния.

Ctrl + s — Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π²ΠΏΠ΅Ρ€Ρ‘Π΄, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ эта комбинация ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°ΠΌΠΎΡ€Π°ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». Для Π΅Ρ‘ использования ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ управлСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ.

Поиск Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

НаТмитС Ctrl + r. НачнСтся поиск ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ совпадСния. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ совпадСния, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + r снова.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ поиска ΠΏΠΎ строкС git:

ПослС наТатия Ctrl + r, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ git, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, git status, ΠΈ Ссли Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Ctrl + r снова, ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ git commit.

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

Π€Π°ΠΉΠ» хранСния истории: Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сохраняСтся Π² Ρ„Π°ΠΉΠ»Π΅ ~/.bash_history.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ HISTFILE:

export HISTFILE=~/my_history_file

Установка количСства сохраняСмых ΠΊΠΎΠΌΠ°Π½Π΄.

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Π² истории: HISTSIZE ΠΈ HISTFILESIZE ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, сколько ΠΊΠΎΠΌΠ°Π½Π΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² памяти ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ соотвСтствСнно.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 1000 ΠΊΠΎΠΌΠ°Π½Π΄, Π² вашСм Ρ„Π°ΠΉΠ»Π΅ ~/.bashrc Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅:

export HISTSIZE=1000
export HISTFILESIZE=2000

Π­Ρ‚ΠΎ задаст количСство ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² памяти ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ истории.

Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ².

ΠžΠΏΡ†ΠΈΠΈ для управлСния ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ истории: ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠ°ΠΊ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ хранСния Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΈ игнорирования ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с ΠΏΡ€ΠΎΠ±Π΅Π»Π°, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ~/.bashrc:

export HISTCONTROL=ignoredups:ignorespace

АвтоматичСскоС сохранСниС истории.

Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ сразу послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ история сохраняСтся ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

УстановитС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² ~/.bashrc, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ добавлялись Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ сразу послС ΠΈΡ… выполнСния:

export PROMPT_COMMAND="history -a"

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ истории.

history -d n — Π£Π΄Π°Π»ΠΈΡ‚ΡŒ строку с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ n ΠΈΠ· истории.

history -c — ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии.

rm ~/.bash_history — Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с историСй Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ измСнСния вступили Π² силу, Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· сСссии ΠΈΠ»ΠΈ пСрСзапуститС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

$ history -d 42

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡƒΠ΄Π°Π»ΠΈΡ‚ 42-ю ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· вашСй истории.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° всСй истории.

$ history -c

Π­Ρ‚ΠΎ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° истории.

$ rm ~/.bash_history

УдаляСт Ρ„Π°ΠΉΠ» истории. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ сСссии история Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠΉ.

ИспользованиС истории Π² скриптах.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² скрипты для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, читая Ρ„Π°ΠΉΠ» ~/.bash_history ΠΈ анализируя Π΅Π³ΠΎ содСрТимоС для выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… дСйствий Π½Π° основС Ρ€Π°Π½Π΅Π΅ Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

НапримСр, для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄:

#!/bin/bash
while read command; do
echo "Executing: $command"
eval "$command"
done < ~/.bash_history

Π­Ρ‚ΠΎ простой скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· истории ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π΅Ρ‘.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π Π°Π±ΠΎΡ‚Π° с историСй ΠΊΠΎΠΌΠ°Π½Π΄ Π² bash β€” это ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, Π²Ρ‹ смоТСтС эффСктивно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своСй историСй Π² bash.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Ρ‹ источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

  1. younglinux.info Β«Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅Β».

Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ...