Я хочу просмотреть содержимое моего файла .bash_history
, но не знаю, как туда добраться из командной строки.
Если вам действительно нужен вывод файла .bash_history
, замените history
на
cat ~/.bash_history
во всех приведенных ниже командах.
Если вы на самом деле хотите, чтобы команды без цифр были спереди, используйте эту команду вместо history
:
history | cut -d' ' -f 4-
, иначе не будет никакой разницы (кроме случаев, когда вы используете другую оболочку) .
Вы можете использовать
history | tail -n 15
, чтобы получить только последние 15 строк вашей истории с последней напечатанной последней (внизу). [ 1123]
В качестве альтернативы используйте
history | grep "apt-get" | tail -n 15
, чтобы получить последние 15 команд, которые содержали apt-get
с последней выполненной напечатанной последней (внизу) , Вы можете заменить apt-get
любой командой (или аргументом команды), которую хотите найти (это может быть регулярное выражение).
Вы можете использовать
history | tac | less
для прокрутки всех команд, выполненных, начиная с самых последних вверху. Нажмите q kbd> для выхода.
Аналогично, используйте
history | grep "apt-get" | tac | less
для прокрутки всех команд, выполненных с «apt-get
» в них (включая аргументы), начиная с самых последних вверху. Нажмите q kbd> для выхода.
Если вы хотите получить доступ к самому файлу, просто используйте ваш любимый текстовый редактор (я использую emacs
, но вы можете использовать pluma
из gedit
или vim
или любой другой):
emacs ~/.bash_history
Это местоположение по умолчанию, если ваш файл истории. Если вы ничего не нашли там, возможно, вы изменили имя файла истории. Это хранится в переменной $HISTFILE
, поэтому распечатайте его, чтобы проверить его текущее значение:
echo $HISTFILE
Если вместо файла вы просто хотите просмотреть свою историю, вы можете запустить history
как предложил @ minerz029. Команда history
без параметров просто печатает содержимое вашего $HISTFILE
, за которым следуют команды, выполненные в текущей оболочке, которые еще не были записаны в этот файл, с номерами строк.
В дополнение к отличному ответу minerz029.
Повторим: команда «history» печатает историю вместе с номером рядом с ней.
Вы можете направить вывод истории в 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
, а затем клавишу ввода, чтобы повторить команду рядом с 473 в выводе истории.
Вы также можете осуществлять интерактивный поиск в обратном направлении в истории команд, нажимая клавиши ctrl + r
, затем начинайте вводить часть содержимого команды, и она будет искать и заполнять ее. Когда вы нашли его, вы можете набрать его, чтобы повторить, или нажать клавишу [tab]
, чтобы скопировать его в командную строку, чтобы сначала отредактировать команду.
Конечно, эти два последних варианта работают в оболочке bash. Я не уверен, работают ли эти функции в других оболочках. Но поскольку bash является оболочкой по умолчанию в Ubuntu, вы должны найти их там.
Вы можете попробовать историю в стиле «предложи коробку» https://github.com/dvorka/hstr - он читает историю Bash и обеспечивает быструю навигацию.