Я хотел знать, существует ли какая-либо команда или какой-либо другой способ, которым я могу проверить свою историю команд только в текущую сессию.
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 нейтральные пути должен был бы записать Вашу сессию с существующими инструментами или записать Вашу собственную функцию для записи на основе на команду.