Как посмотреть всю историю выводы терминала
Перейти к содержимому

Как посмотреть всю историю выводы терминала

  • автор:

View history of commands run in terminal

Is there a way to save all my typed terminal commands and view it like history in a log book?

rgr's user avatar

5 Answers 5

This is automatically done. Bash stores your commands in

/.bash_history . If you want to have a look at the history, either print the output of this file using one of

Or you can use bash’s builtin command:

To clear the history, delete the file and clear the temp history:

The history size defaults to 500 commands. You can, however, increase this by adding a line to your

/.bashrc file to set the HISTSIZE variable:

This will not take effect immediately, but only to newly started sessions. To apply this, re-source the .bashrc file:

or run HISTSIZE=. in your current session.

Zanna's user avatar

s3lph's user avatar

You can type history on a terminal to view all the previous executed commands.

You can truncate the output to some lines (where 5 is the number of lines):

If do you want to view only commands containing a string (i.e. mv ), you can do this:

You can recall a command by typing ! followed by the entry number.

Let’s say that I have a history like this:

  • To run mkdir foo , you can type !2 .
  • To run the last command, you can use !-1 or !!
  • To run the penultimate, you can use !-2

If you run a command that fails because it needs root privileges (i.e. touch /etc/foo ), you can use sudo !! to run the last command as root.

  • If you type !man you will execute the last command that begins with man
  • If do you type !?man? it will execute the last command that contains man (not neccessarily at the line begin)

If do you have a typo in a command, you can fix it this way. Let’s say that I type cat .bash_hi , to replace .bash_hi by .bash_history I only need to type ^hi^history^ .

How can I see all of the bash history?

And after that, open another shell(2) and look at history.

In this case, the shell can not see the history executed by shell(1), but I want to see all of the bash history in every shell.

So my question is how can I see all of the bash history? Does anybody know how to hack?

Thank you very much in advance!

5 Answers 5

would also work, although I tend to just use

and then use / to search

/.bash_history shows only the commands outside of the virtual environment.

/.zsh_history if you installed zsh

You should look into the histappend shell option and the -a flag to history :

histappend

If set, the history list is appended to the file named by the value of the HISTFILE variable when the shell exits, rather than overwriting the file.

history

-a Append the "new" history lines (history lines entered since the beginning of the current bash session) to the history file.

If you put history -a into your PROMPT_COMMAND , you’ll get an always-up-to-date .bash_history file.

Edit your .bashrc and append this to it’s end:

You can install something like Advanced Shell History, which will log each command to a sqlite3 database. It comes with a tool for querying the database from the command line. https://github.com/barabo/advanced-shell-history

With this setup, you will have a unified view of command history across all sessions. You also get things like command history for the current working directory (or subtree), command exit code, command duration, etc.

Full disclosure: I wrote and maintain the tool.

As several have noted, you need to use shopt -s histappend . Check by running shopt and verifying that histappend is ‘on’.

To ensure that each command (across multiple concurrent shells) appears in the history for each of those shells, add this at the end of your .bashrc file:

-a: appends the new history lines (history lines entered since the beginning of the current Bash session) to the history file.

-c: clears the history list.

-r: reads the current history file and append its contents to the history list.

Run source .bashrc or create new sessions and in several terminal windows enter the comment #Tn in each. Then on one terminal, enter history | tail -N to see the last N lines. You should see all of the comments entered on the different terminals.

Команда History в Linux-терминале, или Как узнать последние команды

Часто приходится набирать длинные команды, а вспомнить их или повторить такой же набор команд иногда не так просто, особенно если вы вводили их впервые. Поэтому было бы удобно заглянуть в историю и узнать последние команды в терминале Linux. Для этого в терминале можно набрать history, и мы получим последние 500 (по умолчанию) использованных команд.

Кстати, список этих команд можно ещё глянуть и в файлике .bash_history. Он хранится в домашней папке пользователя:

Давайте посмотрим на эту команду history в действии. После ее набора вы увидите, как описано выше, 500 последних команд, набранных в консоли Linux. Если вы хотите, то можно просто нажать «Вверх» и «Вниз», чтобы пролистать предыдущие команды без использования history. Выйти из просмотра команды истории можно, нажав клавишу Q.

Если вы хотите увидеть историю на одной странице, а не огромным списком, то используйте команду history | less. Так на экране будет показываться столько строк результата команды history, сколько в него помещается, а чтобы увидеть список дальше, нажимайте клавишу «Пробел» (Spacebar). Для выхода нужно также нажать клавишу Q.

Чтобы увидеть только последние 10 строк, используйте следующий ход:

Для просмотра последних 25 строк введите:

Теперь у нас есть очень простой способ узнать последние команды в терминале Linux. А теперь разберем удобный способ повторить нужные команды без копипаста. Как вы возможно заметили команды выводятся двумя колонками, где первая колонка отображает порядковый номер команды, а вторая саму команду.

Так вот, чтобы легко повторить любую команду из истории, достаточно просто узнать ее порядковый номер, ввести в терминал восклицательный знак и номер команды. Например, если нужная нужная команда находится под номером 217, то вводим:

Простой способ повторить команду в терминале Linux

И команда запускается вновь. Можно запомнить номер команды и постоянно его использовать, но я вам рекомендую прописывать алиасы в bashrc.

history команд в Unix/Linux

history — собой представляет команду в Unix/Linux ОС, которая дает возможность смотреть историю всех выполненных команд с консоли в командной строке. Хочу рассказать в своей теме «history команд в Unix/Linux» как использовать history в Unix/Linux

Команды history

1. Можно отключить хранения всех команд в history:

2. Чтобы включить history, исполльзуйте:

3. Отключаем определенные команды с history

Иногда полезно отключать некоторые команды с history, а делается это просто — необходимо определить переменную окружения HISTIGNORE в .bashrc. Например, пропишем в данный файл:

После чего в history не будет происходить запись команд pwgen и ssh.

4. Чтобы посмотреть количество хранимых команд в history:

Можно ее изменить, так же прописать в файл .bashrc:

Обычно, это число равное 1000 команд.

5. Просмотр истории:

Выведет всю историю.

Или покажет 25 последних команд из истории.

6. Удалить строку из истории

7. Можно использовать следующую команду:

Это запустит вашу последнюю команду.

Это запустит вашу 10-ю с конца команду.

Запустит последнюю команду которая начинается на ‘sud’. Но будьте внимательны, вы могли использовать несколько раз одну и туже команду.

Например, ранее вы использовали следующую команду:

То чтобы воспроизвести ее, выполнить можно:

Чтобы удалить историю всех ваших команд, выполните:

Чтобы удалить 666-ю строку с history, выполните:

Чтобы удалить все команды для вашей сессии

Можно отключить хранение истории через терминал:

Можно включить хранение истории через терминал:

Комбинации

Чтобы переместиться вправо на 1 символ, используйте — Ctrl+f
Чтобы переместиться влево на 1 символ, используйте — Ctrl+b
Чтобы переместиться на начало строки, используйте — Ctrl+a (так же клавиша Home)
Чтобы переместиться в самый конец строки, используйте — Ctrl+e (так же клавиша End)
Чтобы переместиться на начало предыдущего слова, используйте — Alt+f
Чтобы переместиться на начало последнего слова, используйте — Alt-b
Чтобы удалить символ ( там где установлен курсов на данный момент), используйте — Ctrl+ d (так же клавиша Delete)
Чтобы удалить все символы ( те что справа от курсора) до самого конца строки (будет записано в буфер), используйте — Ctrl+k
Чтобы удалить символ ( тот что справа от курсора и до самого конца текущего слова, и данные поместятся в буфер), используйте — Alt+d
Чтобы вставить удаленные символы с предыдущих примерах, используйте — Ctrl+y

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *