- Команда History в Linux (История Bash)
- Использование команды history и расширений истории
- Сохранение списка истории
- История очистки
- Изменение поведения в истории
- Выводы
- Как очистить конкретную команду от истории Bash в Linux
- Очистить конкретную команду из истории Bash в Linux
- 6 способов очистки терминала в Linux
- Sep 27, 2018 07:01 · 191 words · 1 minute read tips ubuntu debian centos
- История команд Linux
- История команд Linux
- Очистить историю команд Linux
- Как очистить историю терминала?
- 6 ответов
Команда History в Linux (История Bash)
Если вы проводите много времени в командной строке, просмотр истории команд, которые вы ранее запускали, может быть полезной функцией, которая может упростить вашу повседневную работу и повысить вашу производительность.
В этой статье мы поговорим о команде history , которая позволяет просматривать список ранее выполненных команд, выполнять поиск по списку и управлять файлом истории.
Использование команды history и расширений истории
history — это встроенная оболочка, и ее поведение может немного отличаться от оболочки к оболочке. Мы рассмотрим встроенную в Bash версию history .
В простейшей форме при вызове без какой-либо опции или аргумента команда history отображает весь список истории с номерами строк.
При вводе !n выполняется n-я команда из списка истории, а !-n команда возвращается на n строк. В следующем примере мы выполняем команду в строке 467 :
Другой способ выполнить команду — использовать расширение !word . word относится к самой последней команде, начинающейся с слова.
Обычно в 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 .
Когда HISTTIMEFORMAT переменная HISTTIMEFORMAT , Bash HISTTIMEFORMAT времени выполнения команды в каждой строке.
Например, если вы установите:
История будет отображаться в следующем формате:
Выводы
Команда history отображает список ранее выполненных команд. Например, вы можете использовать историю, чтобы просмотреть длинную команду, которую вы использовали раньше, но не можете вспомнить.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Как очистить конкретную команду от истории Bash в Linux
Как мы все знаем, команда history используется для просмотра списка недавно выполненных команд в терминале.
Не только команды, он покажет вам список последних действий в вашем терминале. Каждая команда, которую вы выполняете в терминале, записывается в файл с именем .bash_history в вашем каталоге HOME.
В этом кратком руководстве объясняется, как очистить определенную команду от истории Bash в GNU / Linux.
Очистить конкретную команду из истории Bash в Linux
Чтобы просмотреть список недавно выполненных команд, просто запустите:
Вы увидите последние команды внизу.
Просто нажмите клавиши со стрелками ВВЕРХ или ВНИЗ, чтобы выбрать любую ранее выполненную команду и запустите ее, если хотите.
Вот пример вывода команды history из моего Arch Linux.
Как видно из вышеприведенного вывода, в моем файле списка истории есть около 500 недавно выполненных команд.
Каждая команда имеет номер префикса.
И самые последние выполненные команды найдены внизу.
Вы когда-нибудь задумывались, как очистить определенную команду от истории Bash в Linux?
Это очень легко! Выполните следующие действия.
Например, чтобы удалить команду «sudo pacman -S powershell» из истории, просто запустите:
Здесь флаг -d удаляет выбранную команду из файла истории.
494 – номер префикса команды.
Кроме того, вы можете редактировать файл .bash_history и удалять команды по вашему выбору.
Изменить файл .bash_history:
Вы увидите список недавно выполненных команд в этом файле.
Просто удалите команды, которые вы не хотите видеть в выводе команды history снова.
Чтобы очистить всю историю, просто запустите:
Наконец, выполните следующую команду для немедленного изменения изменений.
Источник
6 способов очистки терминала в Linux
Sep 27, 2018 07:01 · 191 words · 1 minute read tips ubuntu debian centos
Иногда при работе в терминале вызываемые команды и результаты их выполнения полностью “засоряют” экран и делают работу в консоли некомфортной. Давайте разберемся с несколькими способами быстрой очистки терминала в Linux!
На мой взгляд, самый простой и самый быстрый способ очистки терминала — использование комбинации клавиш ctrl+L ( control+L для MacOS).
Вторым широко известным способом очистки консоли является команда clear .
На третьем месте по частоте использования в целях очистки терминала находится команда reset .
Далее следуют несколько экзотические способы. Например, для очистки терминала можно ввести такую команду:
Естественно, это не так удобно в использовании, как первые три варианта, но мы можем сделать алиас:
И это уже не выглядит странно.
- Данный вариант можно использовать для очистки терминала в дистрибутивах с графической оболочкой KDE (там терминал по умолчанию называется Konsole):
Ну или сразу создаем алиас:
- В дистрибутивах с оболочкой GNOME (например, Ubuntu 18.04) можно самостоятельно назначить комбинацию клавиш, которая будет отвечать за очистку терминала, например:
Но, признаться, в повседневной работе мне вполне достаточно и самого первого способа очистки консоли, приведенного в этой статье.
Источник
История команд 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 включается также легко, просто выполните команду:
Источник
Как очистить историю терминала?
Я использую Linux Mint 17.1 Rebecca около 2 дней и случайно ввел свой пароль в терминал, который теперь отображается в списке истории команд, которые я ранее набрал.
Я хочу полностью очистить историю терминала. Я попытался использовать следующие команды в терминале, которые, как я думал, будут очищать историю навсегда, но они этого не делают:
Вышеуказанные команды «будут» очищать историю от терминала, но когда я выйду и открою новую, все мои предыдущие истории все еще есть, и все они могут быть перечислены снова с помощью команды history, а также нажатием стрелки UP на моей клавиатуре. Я не хочу, чтобы это произошло до тех пор, пока я полностью не очистил свою историю, тогда я хочу продолжить ее использование.
Как я могу полностью очистить историю терминала — навсегда и начать новый?
Обратите внимание: я не хочу выходить из терминала без сохранения истории, просто очистив его навсегда в этом одном экземпляре.
6 ответов
reset или tput reset только делает вещи на терминал. История полностью управляется оболочкой, которая остается незатронутой.
history -c очищает вашу историю в текущей оболочке. Этого достаточно (но overkill), если вы только что набрали свой пароль и не вышли из этой оболочки или не сохранили свою историю явно.
Когда вы выходите из bash, история сохраняется в файле истории, который по умолчанию является .bash_history в вашем домашнем каталоге. Точнее, история, созданная в течение текущего сеанса, добавляется к файлу; записи, которые уже присутствуют, не затронуты. Чтобы перезаписать файл истории с текущей историей оболочки, запустите history -w .
Вместо удаления всех записей в истории вы можете открыть .bash_history в редакторе и удалить строки, которые вы не хотите сохранять. Вы также можете сделать это внутри bash, менее удобно, используя history , чтобы отобразить все записи, затем history -d , чтобы удалить записи, которые вы не хотите, и, наконец, history -w для сохранения.
Обратите внимание, что даже после того, как вы отредактировали файл истории, возможно, что ваш пароль все еще присутствует где-то на диске из более ранней версии файла. Он больше не может быть восстановлен через файловую систему, но может оказаться возможным (но, вероятно, нелегко) найти его, обратившись непосредственно к диску. Если вы используете этот пароль в другом месте и ваш диск украден (или кто-то получает доступ к диску), это может быть проблемой.
Я пробовал историю -c, но история возвращается, когда мы выходим и снова открываем. Это помогло мне.
Это очищает историю, сохраненную в файле истории, а также историю в текущем сеансе (так, чтобы она не сохранялась в файл при выходе bash ). Затем он выходит из оболочки. Следующий сеанс оболочки не будет иметь истории.
Вместо удаления всех записей истории введите эти команды в свой терминал:
- history -c (для удаления истории)
- history -w (сохранить историю)
Поскольку здесь есть проблема с безопасностью, вы должны подумать над безопасным удалением файла истории.
Как неофит, столкнувшийся с той же проблемой, я прибегал к довольно жестокому методу удаления и воссоздания файла истории: —
Это сработало для меня, не вызывая никаких неприятных побочных эффектов, о которых я знаю.
Тип: history -c; rm
history -c очищает историю текущего сеанса, rm
/.bash_history очищает вашу долгосрочную историю, поэтому history -c; rm
Источник