Чи є спосіб перевірити історію лише поточного сеансу?


10

Мені хотілося знати, чи є якась команда чи іншим способом, я можу перевірити історію моїх команд лише на поточному сеансі.

Відповіді:


12

historyВбудований bashдозволяє вказати імена файлів при використанні -anrwпрапорів і -aопис прапора з help historyстанів:

додайте рядки історії з цього сеансу до файлу історії

Тому ми можемо:

~$ history -a this_session.history
~$ cat ./this_session.history 
history mysession.history 
cat mysession.history 
clear
history -a this_session.history

Для запису -w(історія запису до файлу opion) записує всю історію у вказаний файл, тому -a(додавати) тут кращий вибір.


Є й інші ручні способи. Зокрема , kshне має -aпрапор , як bashробить, але то , що ksh і mkshє це HISTFILEзмінна оточення (і bashмає , що теж, тому що bashвключено безліч kshфункцій); до речі, ця змінна за замовчуванням не встановлена ​​(принаймні mkshв Ubuntu її не встановлювали). Отже, для виведення поточного сеансу в інший файл, ми викликаємо попередньо HISTFILEкоманду, яка в синтаксисі оболонки означає виконання команди з додатковою змінною середовища, яку ви вказуєте. Так:

bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$ 
bash-4.4$ cat ./mykshfile.hist 
�echo 'Hello'
echo 'World'

Що ви також можете бачити з цього, це те, що kshі пов'язані з ним оболонки виводять історію зі спеціальними символами, а не простим текстом, як це bashробить. Отже, ви можете відкрити цей файл за допомогою ksh.

Що стосується оболонки POSIX /bin/shна Ubuntu , яка є Debian Almquist Shell або Dash, існує fcвбудована . Тим НЕ менше, на Ubuntu тире компілюється без Lib-редагування , який є свідомим вибором розробниками Ubuntu для підвищення продуктивності, так fcі інші режими , які потребують редагування рядка не працюють з коробки (якщо перекомпіляція dashсобі і встановити lib-edit).


Нейтральними способами оболонки є записування сеансу наявними інструментами або написання власної функції для запису на основі команди.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.