Когда я выполняю свои анализы с использованием оболочки bash, я часто хочу сохранить команды, которые я использовал, которые дали мне хорошие результаты, в файл в том же каталоге (мой «LOGBOOK», как он называется), чтобы я мог проверить, что Я сделал, чтобы получить эти результаты. До сих пор это означало, что я либо копирую команду из терминала, либо нажимаю «вверх», изменяя команду, либо выполняю echo"my command" >> LOGBOOK
другие подобные действия.
Я обнаружил, что был history
инструмент на днях, но я не могу найти способ использовать его, чтобы получить ранее выполненную команду, чтобы я мог сделать что-то вроде getlast >> LOGBOOK
.
Есть ли хороший простой способ сделать это. В качестве альтернативы, как другие справляются с сохранением команд для результатов, которые они имеют?
источник
fc -lnr | head -n 1
может быть сокращена доfc -lnr -1
.help fc
для моей документации. Страница man bash содержит больше подробностей, включая использование отрицательных индексов. Устранениеhead
- это хорошо, потому что одна оставленная команда встроена, так что теперь нет fork / exec.fc
...Одна проблема с ответом @ camh состоит в том, что если у вас есть команда, которая занимает несколько строк, она показывает только первую строку:
Попробуй это:
источник
cmdhist
это исправит: «Если установлено, bash пытается сохранить все строки многострочной команды в одной записи истории. Это позволяет легко перередактировать многострочные команды».Вместо того, чтобы использовать стрелку вверх, вы можете использовать
"!!"
для ссылки на предыдущую команду.например
примечание: это не цитирует буквальный текст
источник
ls | less
->echo !! >> LOGBOOK
->echo ls | less >> LOGBOOK
.Вы можете сделать это с помощью следующей команды, если вы используете оболочку bash:
Это добавит все ваши команды из текущего сеанса в этот файл, вы также можете добавить псевдоним в ваш файл ~ / .bashrc, чтобы сделать это с помощью одной команды:
источник