Там какой-либо путь состоит в том, чтобы проверить историю только текущей сессии?

Я хотел знать, существует ли какая-либо команда или какой-либо другой способ, которым я могу проверить свою историю команд только в текущую сессию.

10
задан 21 April 2018 в 10:38

1 ответ

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 или Тире, там существует fc встроенный. Однако на Ubuntu тире компилируется без редактирования lib, которое является сознательным выбором разработчиками Ubuntu по причинам производительности, таким образом, fc и другие режимы, которые требуют редактирования строки, не работают из поля (если не перекомпилировали dash самостоятельно и установка lib-edit).


Shell нейтральные пути должен был бы записать Вашу сессию с существующими инструментами или записать Вашу собственную функцию для записи на основе на команду.

12
ответ дан 23 November 2019 в 04:30

Другие вопросы по тегам:

Похожие вопросы: