Может быть, я что-то упускаю, но есть ли способ получить текущую историю Bash для текущего сеанса, который вы используете, как
если я бегу
ssh host
$ pwd
$ ls
$ cd /tmp
Я просто хочу увидеть эти 3 команды и ничего больше
bash
command-history
Майк
источник
источник
history
команду?history
но это не только моя сессияHISTSIZE
иHISTFILESIZE
.Ответы:
Немного окольным путем:
Это сохранит несохраненную историю bash текущего сеанса
~/current_history
, которую вы затем сможете просмотреть.источник
~/$$_history
.history -a
это, выбросив его вместе с предыдущей историей в ~ / .bash_history ... что может быть проблемой, если ваша история длиннее, чем отсечка, которая равна 1000 в моих системах centos7 и fedora 24.У меня была проблема, что я хотел записать текущий
history
в файл, но все же хотел, чтобы записи были записаны в основной Bashhistory
Я решил это, просто прикрепив файл с помощью
cat
:источник
Используется
comp
для сравнения всей истории (включая текущий сеанс Bash) с уже сохраненной историей в.bash_history
и выводить только те строки, которые являются уникальными для текущего сеанса - в которых должны отображаться только те команды, которые были выполнены с момента запуска текущей оболочки BashРедактировать: как указала @Wildcard, эта команда работает не для всех дистрибутивов
comm
. Я проверял это на Mac OS.Вариант той же идеи с использованием
diff
:источник
comm
предполагает отсортированный ввод. Но добро пожаловать в Stack Exchange! :)comm
в моем примере выше обе стороны ввода отсортированы по своей сути. Вы управляли этим? И это не произвело вашу текущую историю сессии Bash?~/.bash_history
будет не отсортирован; и при этом выходные данныеhistory
сортируются вообще после удаления номеров первых строк. (Кроме того,comm
ожидается лексикографически отсортированный ввод, а не числовой.)comm
команды в моем примере расположены в одном и том же порядке, а не в том, что они отсортированы лексикографически. Версия FreeBSDcomm
не требует лексикографически отсортированного ввода