Очистить историю командной строки linux

История команд Linux

На сегодняшний день большинство дистрибутивов Linux имеют мощный GUI. Тем не менее, как и 20 лет назад, с помощью одного лишь терминала, вы получаете неограниченные возможности для управления системой в Linux.

Каков бы ни был ваш опыт, порой вспомнить ту или иную команду бывает достаточно сложно. Но благодаря функциям командного процессора Bash, история команд Linux превращает использование консоли в невероятно комфортный процесс.

В Bash история команд позволяет существенно сэкономить время и делает процесс работы в командной строке более эффективной. Вам не нужно постоянно вводить одни и те же команды. Нажимая клавиши управления курсором, Bash будет поочередно выводить набранные ранее команды.

История команд Linux

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

История команд Linux хранится в файле

/.bash_history . Размер файла ограничен списком из 500 выполненных команд, которые затираются по мере заполнения файла.

Чтобы увеличить количество команд в истории, необходимо добавить в файл

/.bashrc следующие настройки:

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

/.bashrc следующую строку:

Применить настройки без перезапуска:

Очистить историю команд Linux

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

По умолчанию, история команд Linux включена, и все команды, которые вы выполняете в командной строке, можно использовать повторно без особых затрат времени на их набор. При желании эту функцию можно отключить. В bash история команд отключается с помощью команды ниже:

Если вы передумаете, история команд Linux включается также легко, просто выполните команду:

Источник

Команда History в Linux (История Bash)

Если вы проводите много времени в командной строке, просмотр истории команд, которые вы ранее запускали, может быть полезной функцией, которая может упростить вашу повседневную работу и повысить вашу производительность.

В этой статье мы поговорим о команде history , которая позволяет просматривать список ранее выполненных команд, выполнять поиск по списку и управлять файлом истории.

Использование команды history и расширений истории

history — это встроенная оболочка, и ее поведение может немного отличаться от оболочки к оболочке. Мы рассмотрим встроенную в Bash версию history .

В простейшей форме при вызове без какой-либо опции или аргумента команда history отображает весь список истории с номерами строк.

При вводе !n выполняется n-я команда из списка истории, а !-n команда возвращается на n строк. В следующем примере мы выполняем команду в строке 467 :

Другой способ выполнить команду — использовать расширение !word . word относится к самой последней команде, начинающейся с слова.

Читайте также:  Windows 10 ltsb micro x86

Обычно в history отображается много строк вывода, которые не помещаются на экране. Чтобы просмотреть вывод по одной странице за раз, направьте его в программу пейджера, например, команду more или less :

Чтобы отобразить последние n строк, передайте число в качестве аргумента команды. Например, чтобы просмотреть только последние пять строк из списка истории, введите:

Используйте клавиши со стрелками up и down для перемещения по записям в списке. Когда отобразится искомая команда, нажмите Enter чтобы выполнить ее.

Типа !! для выполнения предыдущей команды:

Это особенно полезно, когда вы забываете привязать команду к sudo и вместо повторного ввода команды можете ввести:

!-1 совпадает с !! и выполняет последнюю команду из списка истории !-2 секунды до последней и так далее.

^word1^word2^ позволяет повторно запустить последнюю команду, заменив «word1» на «word2». Если вы случайно набрали sduo command вместо команды sudo command вы можете повторить команду, используя правильное слово:

Используйте команду grep для фильтрации вывода. Например, чтобы просмотреть все команды, включая «nano», вы должны выполнить:

Теперь, если вы хотите повторно запустить команду nano setup.py просто введите:

Другой способ поиска в истории команд — нажать Ctrl-R . Приглашение изменится на следующее, и вы сможете начать поиск ранее выполненной команды.

Оболочка отобразит соответствующую строку. Чтобы перейти к следующему подходящему предложению, снова нажмите Ctrl-R .

Обратитесь к руководству Bash для получения дополнительной информации о расширении истории , модификаторах и позиционных обозначениях.

Сохранение списка истории

По умолчанию при запуске нового сеанса Bash читает список истории из файла .bash_history . Список команд, которые выполняются в текущем сеансе, хранятся в памяти и сохраняются в файле при закрытии сеанса.

Если вы открыли несколько сеансов оболочки, сохраняется только история сеанса, который был закрыт последним.

Параметр -a позволяет сохранить список истории текущего сеанса в файл .bash_history :

Параметр -w записывает полный список истории в файл истории.

История очистки

Команда history позволяет очистить полный список истории или удалить определенные части.

Чтобы очистить список истории, используйте параметр -c :

Чтобы удалить определенную строку или строки между начальной и конечной позициями из списка истории, используйте параметр -d .

Например, чтобы удалить строки между 365 и 375 (включая эти строки), вы должны ввести:

Если вы укажете только одно число для опции -d , команда удалит данную строку.

Когда используется отрицательное целое число, строки отсчитываются от конца списка истории.

Приведенные выше команды очищают список истории, который хранится в памяти, но не удаляют записи из файла .bash_history на диске. Чтобы очистить файл, вам нужно записать в файл список истории:

Изменение поведения в истории

Поведение истории Bash можно определить с помощью нескольких различных переменных среды . При изменении поведения истории установите переменные в

/.bashrc или любом другом файле конфигурации, который загружается при входе пользователя в систему.

По умолчанию Bash сохраняет 500 строк в списке истории команд. Переменная HISTSIZE позволяет вам изменять это значение. Чтобы установить значение 10000, добавьте в файл .bashrc следующую строку:

Переменная HISTCONTROL принимает список значений, разделенных двоеточиями, которые определяют способ сохранения команд в списке истории:

  • ignorespace — команды, начинающиеся с пробела, не сохраняются в списке истории.
  • ignoredups — повторяющиеся команды не сохраняются.
  • ignoreboth — это сокращение, включая как ignorespace и ignoredups .
Читайте также:  Regedit mouse windows 10

Когда HISTTIMEFORMAT переменная HISTTIMEFORMAT , Bash HISTTIMEFORMAT времени выполнения команды в каждой строке.

Например, если вы установите:

История будет отображаться в следующем формате:

Выводы

Команда history отображает список ранее выполненных команд. Например, вы можете использовать историю, чтобы просмотреть длинную команду, которую вы использовали раньше, но не можете вспомнить.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

On-line журнал o Linux

Работа в Linux с историей команд (history)

Как говориться «лень — двигатель прогресса» поэтому я покажу как можно еще работать с командной строкой bash, стандартно с помощью клавиш перемещения курсора можно перемещаться по списку ранее введенных команд. Если мне была нужна определенная команда из ранее введенных — „стрелка вверх“ и до тех пор пока нужная команда не появиться в терминале далее корректировка по надобности и выполнения ее.
Оказываеться есть еще один хороший способ — для просмотра списка ранее введенных команд в bash — имеется команда history. По умолчанию она выводит список команд хранящийся в истории.
$ history
1 sudo route del -net
2 cat /etc/resolv.conf
3 htop
.
50 nslookup
51 ping mail.ru
52 ifconfig
.
200 sudo aptitude full-upgrade
.
300 mc

По умолчанию все пишиться в файл

/.bash_history, а его размер — 500 команд.
Если хотим хранить историю в другом файле, то нужно в .bashrc, задать команду HISTFILE=

/.my_history.
HISTSIZE — определяет число строк, хранящихся в списке истории (в памяти интерпретатора).
HISTFILESIZE — максимальное количество команд хранящихся в файле истории.
Если интересует больше записей, по можно поменять под себя:

$ export HISTSIZE=1000
$ export HISTFILESIZE=1000

При запуске команды history без параметров, выдаеться весь список сохранненных команд, что довольно громоздко, поэтому есть возможность указать
количество выводимых строк (команд):
$ history 20
280 sudo aptitude full-upgrade
281 ps ax | grep conky
282 dig @217.23.122.130 ya.ru mx
.
300 mc
Выдаст 20 последних команд, все команды имеею свой номер, с помощью которого к ней можно обратится.
Если нам надо повторить 282 команду, то просто набираем в терминале:
$ !282
dig @217.23.122.130 ya.ru mx
; > DiG 9.5.0-P2 > @217.23.122.130 ya.ru mx
; (1 server found)
. .
Сначало показываеться команда соответствующая этому номеру, потом ее выполнения.
Cписок наиболее распространенных команд:

  • !! — ссылается на предыдущую команду;
  • !n — ссылается на команду под номером n;
  • !-n — ссылается на команду по номером „текущая минус n“;
  • history -c — очистить историю команд, удалив все записи
  • history -d n — удалить из истории запись под номером n
  • history -a — дописать команды, введенные в текущей сессии bash, в конец файла $HISTFILE

    Дополнения:
    Так же можно сохранить дату и время для каждой команды в истории, для этого в конец .bashrc дописываем:
    $ nano .bashrc

    и применяем изменений в .bashrc без перезапуска сеанса/системы делаем командой
    $ bash
    Получаем :
    $ history 3

    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

    Источник

    Очистить историю командной строки linux

    Команда history является встроенной командой командных оболочек C shell, csh и bash (но не sh), предназначенной для повторного исполнения ранее исполненных команд. Обычно история команд хранится в отдельном файле, например, командная оболочка bash хранит ее в файле .bash_history, расположенном в домашней директории пользователя. Это очень полезная команда, позволяющая сэкономить время, требующееся для повторного ввода длинных команд.

    Читайте также:  Как отформатировать жесткий диск с windows 10 exfat

    Базовый синтаксис команды выглядит следующим образом:

    Команда поддерживает различные параметры, позволяющие модифицировать файл, а также историю команд текущей сессии, которые, впрочем, используются крайне редко. В частности, параметр -c позволяет очистить историю команд, параметр -d позволяет удалить команду с заданным идентификатором из истории, параметр -a позволяет добавить команды из текущей сессии в файл истории команд с заданным именем, параметр -n позволяет прочитать новые команды из файла истории команд с заданным именем и добавить их в историю команд текущей сессии, параметр -r позволяет прочитать все команды из файла истории команд с заданным именем и добавить их в историю команд текущей сессии, параметр -w позволяет записать всю историю команд в файл с заданным именем, параметр -p позволяет раскрыть аргументы и вывести результаты без добавления в историю и параметр -s позволяет добавить аргументы в качестве единственной команды истории текущей сессии.

    Команда учитывает значения переменных окружения. Например, переменные окружения FILENAME и HISTFILE позволяют задать имя файла истории команд, переменная окружения HISTTIMEFORMAT — установить формат вывода даты и времени, переменные окружения HISTSIZE и HISTFILESIZE — установить максимальное количество строк файла истории команд, переменная окружения HISTCONTROL — задать правила обработки команд перед помещением их в историю текущей сессии.

    Примеры использования

    Работа с историей команд

    Для вывода истории команд, выполненных с помощью командной оболочки, следует использовать команду history без каких-либо параметров:

    $ history
    1 mc
    2 nano /etc/apt/sources.list
    3 apt-get update

    Команда выведет длинный список команд с их номерами. Для исполнения команды с заданным номером достаточно записать этот номер после восклицательного знака. Например, следующая команда позволит выполнить команду mc:

    Если использовать два восклицательных знака, будет повторена предыдущая команда:

    Если же нужно найти определенные команды, достаточно задействовать утилиту grep:

    $ history | grep kwboot
    196 apt search kwboot
    200 kwboot
    203 kwboot -t -B 115200 /dev/ttyUSB0 -b u-boot.kwb -p

    Также в bash существует сочетание клавиш CTRL+R, позволяющее искать команды в истории команд в интерактивном режиме:

    (reverse-i-search)`kwboot -t’: kwboot -t -B 115200 /dev/ttyUSB3 -b u-boot.kwb -p

    Блокировка механизма записи команд

    Если вы не хотите, чтобы исполняемые команды записывались в историю, вы можете использовать переменную окружения HISTSIZE. По сути, вам нужно лишь экспортировать эту переменную с нулевым значением, после чего команды перестанут записываться в историю:

    $ export HISTSIZE=0
    $ history
    $

    Очевидно, что после этого команда history не выводит никаких результатов.

    Блокировка записи отдельных команд

    Если вы хотите использовать историю команд командной оболочки, но не желаете, чтобы в нее записывались все исполняемые команды, вы можете воспользоваться переменной окружения HISTCONTROL. К примеру, вы можете экспортировать эту переменную с значением ignorespace, после чего все команды, начинающиеся с символа пробела, не будут записываться в историю команд:

    $ export HISTCONTROL=ignorespace
    $ history
    1 mc

    344 export HISTCONTROL=ignorespace
    345 history
    $ ls
    $ history
    1 mc

    344 export HISTCONTROL=ignorespace
    345 history
    346 history

    Очевидно, что команда ls с начальным символом пробела не была записана в историю.

    Игнорирование дублей команд

    Для того, чтобы вывести историю команд с игнорированием дублей достаточно использовать значение erasedups переменной окружения HISTCONTROL:

    $ export HISTCONTROL=ignoreboth:erasedups
    $ history
    1 mc

    344 export HISTCONTROL=ignoreboth:erasedups
    345 history

    Очистка истории команд

    Для очистки истории команд достаточно использовать параметр -c команды history:

    Источник

  • Оцените статью