посмотреть историю команд пользователя linux
Работа в Linux с историей команд (history)
/.my_history.
HISTSIZE — определяет число строк, хранящихся в списке истории (в памяти интерпретатора).
HISTFILESIZE — максимальное количество команд хранящихся в файле истории.
Если интересует больше записей, по можно поменять под себя:
$ export HISTSIZE=1000
$ export HISTFILESIZE=1000
147 Aug/11 — 11:05:28 sudo aptitude install gspca-source
148 Aug/11 — 11:07:23 cd /lib/modules/2.6.32-22-generic/
149 Aug/11 — 11:11:08 modprobe gspca
Контролируйте Bash History
HISTCONTROL — представляет из себя список опций, разделенных двоеточиями.
Они контролируют каким образом список команд сохраняется в истории.
Опция | Описание |
---|---|
ignorespace | не сохранять строки начинающиеся с символа |
ignoredups | не сохранять строки, совпадающие с последней выполненной командой |
ignoreboth | использовать обе опции ‘ignorespace’ и ‘ignoredups’ |
erasedups | удалять ВСЕ дубликаты команд с истории |
Это заставит bash игнорировать дупликаты, так же как ls, bg, fg и exit, делая историю чище.
Забытая история bash.
Если вы открыли терминал и печатаете там команды, потом открыли еще один, немного его поиспользовали, то новый терминал не «вспомнит» ни одной команды, напечатанной в первом. Вдобавок, при закрытии первого терминала второй перезапишет все команды в истории, введённые в первом. Вдвойне досадно!
Это происходит потому, что история bash сохраняется только когда вы закрываете терминал, а не после каждой команды. Чтобы исправить такое поведение, добавьте в
Это заставит bash дополнять историю вместо того, чтобы перезаписывать её: каждый раз, когда показывается приглашение командной строки, последняя команда добавляется в историю.
Увеличиваем Размер Хранимой Истории
Увеличьте HISTSIZE — количество команд, которые необходимо запоминать в списке истории (стандартное значение — 500).
Увеличьте HISTFILESIZE — максимальное количество строк, содержащееся в файле истории (стандартное значение — 500).
Одна Команда — Одна Запись в Истории
Сохранять все строки многострочной команды в одной записи списка истории :
Изменить Имя Файла с Историй Команд
Используйте HISTFILE для изменения имени файла, в котором сохраняется история команд. Стандартное значение
Читайте другие интересные статьи
Понравилась статья, расскажи о ней друзьям, нажми кнопку!
Команда history в Linux
В операционной системе Linux в терминальном режиме есть возможность посмотреть историю команд. Все последние команды (около 1000 по умолчанию), которые вводились в командной строке сохраняются, их можно вывести на экран. Чтобы не вводить сложные названия утилит вместе с опциями, система позволяет вернуть раннее введенную команду и выполнить ее еще раз.
Синтаксис
Рассмотрим синтаксис утилиты history (History Library).
В качестве аргументу можно указать в какой документ записать запрос.
В документе bashcr видим:
Примеры
Для первого примера, посмотрим всю историю последних 1000 строк. Введем название утилиты без аргументов.
Визуально смотреть текст из 1000 строк сразу неудобно, поэтому покажем на экране 5 последних запросов. Синтаксис будет выглядеть так:
На скриншоте видим два столбика:
Выполним команду под номером 504 «clear» очистка экрана. Для этого введем восклицательный знак и номер.
Внимание! Написать все нужно слитно без пробела.
Чтобы удалить всю историю, необходимо использовать ключ «-c».
Если нужно очистить только какую-нибудь определенную команду, то пишем название утилиты с ключом «-d». Например удалим запрос под номером 503.
Для поиска введенных раннее команд, можно воспользоваться дополнительной утилитой grep. Найдем все, что совпадает с «ls».
Другой вариант выполнить поиск, использовать конструкцию «!?».
Как посмотреть историю команд всех пользователей в Linux?
Простой 1 комментарий
ну или чтоб знать кто точно
Sha644, ну немного докрутить. Я думаю, что это нужно не для того, чтоб команды из под рута смотреть. а прочих засранцев 🙂
Файл доступен только пользователю, или суперпользователю.
Следовательно запускайте cat от суперпользователя
sudo cat /home/ЮЗЕР/.bash_history
можно одной командой сразу все (правда эта команда скорее всего бесполезна):
История команд Linux
В терминале Linux, кроме всего прочего, есть одна замечательная вещь. Это история команд Linux. Все команды, которые вы вводите во время работы сохраняются и вы можете найти и посмотреть их в любой момент. Также можете вернуться на несколько команд чтобы не набирать недавно выполненную команду заново.
В этой небольшой статье мы рассмотрим как пользоваться историей команд Linux, как ее настроить, а также рассмотрим полезные приемы, которые могут помочь вам в работе.
История команд Linux
Большинство задач, связанных с историей команд, мы будем выполнять либо с помощью команды history, либо с помощью оболочки. В истории хранится последняя 1000 команд, которые вы выполняли. Чтобы посмотреть всю историю для этого терминала просто запустите команду history без параметров:
Для дополнительных действий с историей вам могут понадобиться опции. Команда history linux имеет очень простой синтаксис:
$ history опции файл
В качестве файла можно указать файл истории. По умолчанию история для текущего пользователя хранится в файле
/.history, но вы можете задать, например, файл другого пользователя. А теперь рассмотрим опции:
Так вы можете посмотреть только последние 10 команд:
Если вы хотите выполнить поиск по истории bash, можно использовать фильтр grep. Например, найдем все команды zypper:
history | grep zypper
На самом деле работать с историей еще более просто с помощью оболочки, возможно, вы уже используете многие ее функции, но о некоторых точно не знаете. Рассмотрим их:
Чтобы показать предыдущую команду просто нажмите стрелку вверх, так можно просмотреть список раньше выполненных команд.
Вы можете выполнить последнюю команду просто набрав «!!». Также можно выполнить одну из предыдущих команд указав ее номер «!-2»
Чтобы выполнить поиск по истории прямо во время ввода нажмите Ctrl+R и начните вводить начало команды.
Если вы знаете, что нужная команда была последней, которая начиналась на определенные символы, например, l, то вы можете ее выполнить, дописав «!l»:
Если нужная команда последняя содержала определенное слово, например, tmp, то вы можете ее найти, использовав «!?tmp»:
Если вы не хотите, чтобы выполняемая команда сохранилась в истории просто поставьте перед ней пробел.
Таким образом, вы можете очень быстро отыскать нужную команду, если помните как она была написана. История команд bash хранит очень много команд и этого вполне достаточно для комфортной работы.
Настройка истории Linux
export HISTTIMEFORMAT=’%F %T ‘
$ history
Для форматирования можно использовать такие модификаторы:
Также можно отключить вывод одинаковых команд:
Существует два флага, ignoredups и ignorespace. Второй указывает, что нужно игнорировать команды, начинающиеся с пробела. Если вы хотите установить оба значения, используйте флаг ignoreboth. Используйте переменную HISTSIZE, чтобы установить размер истории:
По умолчанию история сохраняется для каждого терминала отдельно. Но если вы хотите чтобы все ваши команды немедленно синхронизировались между всеми терминалами, то это очень просто настроить. Добавьте такую переменную:
Для тестирования работы вы можете набирать эти команды прямо в терминале и сразу видеть результат, но для сохранения добавьте нужные строки в ваш
Готово, теперь осталось сохранить изменения и перезапустить ваши терминалы. Теперь ваша история будет выводить дату, игнорировать дубли и синхронизироваться между терминалами.
Выводы
В этой статье мы рассмотрели что такое история команд linux, как с ней работать, как применяется команда history linux и какие настройки можно использовать для более комфортной работы. Если у вас остались вопросы, спрашивайте в комментариях!
Команда History в Linux-терминале, или Как узнать последние команды
Часто приходится набирать длинные команды, а вспомнить их или повторить такой же набор команд иногда не так просто, особенно если вы вводили их впервые. Поэтому было бы удобно заглянуть в историю и узнать последние команды в терминале Linux. Для этого в терминале можно набрать history, и мы получим последние 500 (по умолчанию) использованных команд.
Давайте посмотрим на эту команду history в действии. После ее набора вы увидите, как описано выше, 500 последних команд, набранных в консоли Linux. Если вы хотите, то можно просто нажать «Вверх» и «Вниз», чтобы пролистать предыдущие команды без использования history. Выйти из просмотра команды истории можно, нажав клавишу Q.
Если вы хотите увидеть историю на одной странице, а не огромным списком, то используйте команду history | less. Так на экране будет показываться столько строк результата команды history, сколько в него помещается, а чтобы увидеть список дальше, нажимайте клавишу «Пробел» (Spacebar). Для выхода нужно также нажать клавишу Q.
Чтобы увидеть только последние 10 строк, используйте следующий ход:
Для просмотра последних 25 строк введите:
Теперь у нас есть очень простой способ узнать последние команды в терминале Linux. А теперь разберем удобный способ повторить нужные команды без копипаста. Как вы возможно заметили команды выводятся двумя колонками, где первая колонка отображает порядковый номер команды, а вторая саму команду.
Так вот, чтобы легко повторить любую команду из истории, достаточно просто узнать ее порядковый номер, ввести в терминал восклицательный знак и номер команды. Например, если нужная нужная команда находится под номером 217, то вводим:
Простой способ повторить команду в терминале Linux
И команда запускается вновь. Можно запомнить номер команды и постоянно его использовать, но я вам рекомендую прописывать алиасы в bashrc.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.