Просмотр истории команд, запущенных в терминале

Есть ли способ сохранить все мои набранные команды терминала и просмотреть их как историю в журнале?

78
задан 17 May 2015 в 16:02

5 ответов

Это автоматически сделано. Bash хранит Ваши команды в ~/.bash_history. Если Вы хотите взглянуть на историю, или распечатать вывод этого файла с помощью одного из

cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...

, Или можно использовать встроенную команду удара:

history

Для очистки истории удалите файл и очистите временную историю:

rm ~/.bash_history && history -c

значения по умолчанию размера истории к 500 командам. Можно, однако, увеличить это путем добавления следующей строки к Вашему ~./bashrc:

HISTSIZE=<number of entries, -1 for unlimited>

Это сразу не вступит в силу, но только к недавно запущенным сессиям. Для применения этого снабдите .bashrc файл:

. ~/.bashrc

или выполненный HISTSIZE=... на Вашей текущей сессии.

0
ответ дан 17 May 2015 в 16:02

Можно ввести history на терминале для просмотра всех предыдущих выполняемых команд.


Можно усечь вывод к некоторым строкам (где 5 количество строк):

history 5

Если делают Вы хотите просмотреть только команды, содержащие строку (т.е. mv), можно сделать это:

history | grep mv

Можно повторно вызвать команду путем ввода ! сопровождаемый числом записи.

Скажем, то, что у меня есть история как это:

1 ls -la
2 mkdir foo
3 mv bar.txt foo
  • Работать mkdir foo, можно ввести !2.
  • Для выполнения последней команды можно использовать !-1 или !!
  • Для выполнения предпоследнего можно использовать !-2

Если Вы выполняете команду, которая перестала работать, потому что ей нужны полномочия пользователя root (т.е. touch /etc/foo), можно использовать sudo !! выполнять последнюю команду как корень.


  • Если Вы вводите !man Вы выполните последнюю команду, которая начинается man
  • Если делают Вы вводите !?man? это выполнит последнюю команду, которая содержит man (не обязательно в строке начинаются),

Если делают у Вас есть опечатка в команде, можно зафиксировать ее этот путь. Скажем, то, что я ввожу cat .bash_hi, заменять .bash_hi .bash_history Я только должен ввести ^hi^history^.


Источник: https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps

32
ответ дан 17 May 2015 в 16:02

Просто тип:

history > print.txt

А новый файл под названием print.txt будет создан в Вашем в настоящее время рабочем каталоге.

0
ответ дан 17 May 2015 в 16:02

Я часто просто хочу те недавние команды, также. Отправить на мои примечания разработки или, ну, в общем, stackexchange сайты как они... Это оказалось очень полезным, удалив несоответствующие номера строки:

history | cut -c 8- | tail

или, если Вам нравится он как псевдоним, номера строки, удаленные и расположенные с отступом сразу же (столь же необходимый для скидки с цены кавычки кода)

alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\}  /    /gi'"
3
ответ дан 18 May 2015 в 02:02
  • 1
    Хорошо, таким образом, это работало. Я все еще can' t компилируют проклятую вещь, потому что теперь делают броски различной ошибкой, но я предполагаю I' ll должны сделать другой поток для который. Спасибо:) – mauroc8 17 August 2016 в 09:28

Можно хотеть попробовать https://github.com/dvorka/hstr, который позволяет простой просмотр, навигация и "предлагают фильтрацию" стиля поля истории Bash:

enter image description here

Это может быть легко связано с Ctrl-r и/или Ctrl-s

0
ответ дан 22 November 2019 в 23:19

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

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