Я хочу просмотреть содержимое моего .bash_history
файл, но не знаю, как туда попасть через командную строку.
Если вы хотите получить доступ к самому фактическому файлу, просто используйте свой любимый текстовый редактор (я использую emacs
но вы можете использовать pluma
от gedit
или vim
или что-то еще):
emacs ~/.bash_history
Это расположение по умолчанию для вашего файла истории. Если вы там ничего не найдете, возможно, вы изменили имя файла истории. Это хранится в $HISTFILE
переменная, поэтому распечатайте ее, чтобы проверить ее текущее значение:
echo $HISTFILE
Если вместо файла вы просто хотите просмотреть свою историю, вы можете запустить history
как и предложил @minerz029. То history
команда без каких-либо опций просто печатает содержимое вашего $HISTFILE
далее следуют команды, выполняемые в текущей командной строке, которые еще не были записаны в этот файл, с номерами строк.
Если вы на самом деле необходимость результат работы .bash_history
файл, заменить history
сcat ~/.bash_history
во всех приведенных ниже командах.
Если вам действительно нужны команды без цифр впереди, используйте эту команду вместо history
:
history | cut -d' ' -f 4-
в противном случае разницы не будет (за исключением случаев, когда вы используете другую оболочку).
Последние 15 команд
Вы можете использовать
history | tail -n 15
чтобы получить только последние 15 строк вашей истории с последним выполненным, напечатанным последним (внизу).
Поиск команды
В качестве альтернативы, используйте
history | grep "apt-get" | tail -n 15
чтобы получить последние 15 команд, которые содержали apt-get
с последним выполненным, напечатанным последним (внизу). Вы можете заменить apt-get
с помощью любой команды (или аргумента команды), которую вы хотите выполнить поиск (это может быть регулярное выражение).
Прокрутка истории
Вы можете использовать
history | tac | less
для прокрутки все команды, выполняемые, начиная с самой последней вверху. Нажмите q чтобы выйти.
Аналогичным образом, используйте
history | grep "apt-get" | tac | less
для прокрутки все команды, выполняемые с помощью "apt-get
"в них (включая аргументы), начиная с самого последнего вверху. Нажмите q чтобы выйти.
В дополнение к отличному ответу minerz029.
Повторюсь - команда "история" печатает историю вместе с номером рядом с ней.
Вы можете передавать выходные данные истории в grep, less и т.д.
Вывод истории также показывает число слева рядом с выводом. напр.
469 free 470 ps -fA 471 ps -fA | grep xend 472 free 473 sudo vi /etc/xen/xend-config.sxp 474 cat /etc/default/grub
С помощью этого номера вы можете повторно запустить команду.
например, чтобы повторно запустить 473, я бы ввел в терминал
admin@xen1~$ !473
затем нажмите клавишу enter, чтобы повторить команду рядом с 473 в выводе истории.
Вы также можете интерактивный поиск в обратном направлении в истории команд, набрав ctrl + r
затем keys начнет вводить часть содержимого команды, и она выполнит поиск и заполнит ее. Когда вы найдете его, вы можете ввести ввод, чтобы повторить его, или нажать кнопку [tab]
нажмите клавишу, чтобы скопировать ее в командную строку, чтобы сначала отредактировать команду.
Конечно, эти последние два варианта работают в оболочке bash. Я не уверен, работают ли эти функции в других оболочках. Но поскольку bash - это оболочка Ubuntu по умолчанию, вы должны найти их там.
Возможно, вы захотите попробовать "предложить окно", подобное истории https://github.com/dvorka/hstr - он считывает историю Bash и обеспечивает быструю навигацию.
Как насчет история | меньше
ПРИМЕЧАНИЕ: .bash_history
добавляется только тогда, когда терминал закрыт.
Вы проверили `/home/username/.bash_history’?
Ответ https://stackoverflow.com/questions/8561983#8562145 - это хороший вариант, я думаю. Вы можете просто сделать cat $HISTFILE
.
echo $HISTFILE