- Команда History в Linux-терминале, или Как узнать последние команды
- Команда History в Linux (История Bash)
- Использование команды history и расширений истории
- Сохранение списка истории
- История очистки
- Изменение поведения в истории
- Выводы
- Команда history в Linux
- Синтаксис
- Примеры
- Запускаем и ищем предыдущие команды в Linux
- Повторный запуск команды без указания аргументов. Используем «!»
- Выполнение предыдущей команды. Используем «!!»
- Поиск по истории команд. Команда history
- Поиск по истории. Сочетание клавиш Ctrl+R
Команда History в Linux-терминале, или Как узнать последние команды
Часто приходится набирать длинные команды, а вспомнить их или повторить такой же набор команд иногда не так просто, особенно если вы вводили их впервые. Поэтому было бы удобно заглянуть в историю и узнать последние команды в терминале Linux. Для этого в терминале можно набрать history, и мы получим последние 500 (по умолчанию) использованных команд.
Кстати, список этих команд можно ещё глянуть и в файлике .bash_history. Он хранится в домашней папке пользователя:
Давайте посмотрим на эту команду history в действии. После ее набора вы увидите, как описано выше, 500 последних команд, набранных в консоли Linux. Если вы хотите, то можно просто нажать «Вверх» и «Вниз», чтобы пролистать предыдущие команды без использования history. Выйти из просмотра команды истории можно, нажав клавишу Q.
Если вы хотите увидеть историю на одной странице, а не огромным списком, то используйте команду history | less. Так на экране будет показываться столько строк результата команды history, сколько в него помещается, а чтобы увидеть список дальше, нажимайте клавишу «Пробел» (Spacebar). Для выхода нужно также нажать клавишу Q.
Чтобы увидеть только последние 10 строк, используйте следующий ход:
Для просмотра последних 25 строк введите:
Теперь у нас есть очень простой способ узнать последние команды в терминале Linux. А теперь разберем удобный способ повторить нужные команды без копипаста. Как вы возможно заметили команды выводятся двумя колонками, где первая колонка отображает порядковый номер команды, а вторая саму команду.
Так вот, чтобы легко повторить любую команду из истории, достаточно просто узнать ее порядковый номер, ввести в терминал восклицательный знак и номер команды. Например, если нужная нужная команда находится под номером 217, то вводим:
Простой способ повторить команду в терминале Linux
И команда запускается вновь. Можно запомнить номер команды и постоянно его использовать, но я вам рекомендую прописывать алиасы в bashrc.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Команда 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 отображает список ранее выполненных команд. Например, вы можете использовать историю, чтобы просмотреть длинную команду, которую вы использовали раньше, но не можете вспомнить.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Команда history в Linux
В операционной системе Linux в терминальном режиме есть возможность посмотреть историю команд. Все последние команды (около 1000 по умолчанию), которые вводились в командной строке сохраняются, их можно вывести на экран. Чтобы не вводить сложные названия утилит вместе с опциями, система позволяет вернуть раннее введенную команду и выполнить ее еще раз.
Синтаксис
Рассмотрим синтаксис утилиты history (History Library).
- -a — включить в файл bash новый запрос;
- -c — удалить историю введенных раннее команд;
- -d — очистить из истории определенную строку с заданным идентификатором;
- -n — читает все запросы из файла и добавляет в текущyю сессию;
- -r — читает все команды из файла и добавляет в текущий список.
- -w — записывает всю историю в файл, который указан в качестве аргумента. Например «history -w newfile».
Файл — это необязательный аргумент, его можно не указывать.
В качестве аргументу можно указать в какой документ записать запрос.
По умолчанию все записывается в домашний каталог пользователя в файл .bash_history. Если нужно изменить максимальный размер файла, то все настройки хранятся в «.bashcr».
В документе bashcr видим:
- «HISTSIZE=1000» — максимальное число строк, хранящихся в памяти оболочки;
- «HISTFILESIZE=2000» — максимальное число записей, хранящихся в файле.
Примеры
Для первого примера, посмотрим всю историю последних 1000 строк. Введем название утилиты без аргументов.
Визуально смотреть текст из 1000 строк сразу неудобно, поэтому покажем на экране 5 последних запросов. Синтаксис будет выглядеть так:
history 5
На скриншоте видим два столбика:
- 501, 502,503 — номер запроса, согласно истории;
- cd . clear — название запроса.
Выполним команду под номером 504 «clear» очистка экрана. Для этого введем восклицательный знак и номер.
Внимание! Написать все нужно слитно без пробела.
Чтобы удалить всю историю, необходимо использовать ключ «-c».
Если нужно очистить только какую-нибудь определенную команду, то пишем название утилиты с ключом «-d». Например удалим запрос под номером 503.
Для поиска введенных раннее команд, можно воспользоваться дополнительной утилитой grep. Найдем все, что совпадает с «ls».
history | grep ls
Другой вариант выполнить поиск, использовать конструкцию «!?».
Более простой способ поиска по истории через оболочку терминала. Можно нажать горячие клавиши Ctrl + r. На экране появиться надпись: «(reverse-i-search)». Набирая символы с клавиатуры — оболочка будет выводить на экран подходящие команды из истории.
Если нажать на клавишу вверх в терминале Linux — оболочка покажет последний запрос. Таким образом можно перебирать введенные раннее команды.
Источник
Запускаем и ищем предыдущие команды в Linux
Работу в командной строке можно сделать немного эффективнее и быстрее, если знать несколько простых хитростей. Рассмотрим, как быстро запускать предыдущие команды, как выполнять поиск по истории команд.
Повторный запуск команды без указания аргументов. Используем «!»
!команда — используется для выполнения команды с аргументами, которые использовались при последнем запуске.
Предположим, мы выполняем какие-нибудь команды и дополняем их аргументами. Например, мы решили отредактировать файл myfile.txt в текстовом редакторе nano. Для этого мы выполняем:
Далее мы можем выполнять еще какие-нибудь команды, затем снова хотим выполнить nano, чтобы открыть в нем файл myfile.txt. Мы можем воспользоваться волшебным «!». Для этого достаточно написать восклицательный знак и без пробела название команды:
В результате будет вызвана команда nano с теми аргументами, с которыми она вызвалась последний раз, то есть в нашем случае !nano будет аналогично вызову nano /home/pingvinus/path/to/file/myfile.txt.
Выполнение предыдущей команды. Используем «!!»
!! — используется, чтобы выполнить предыдущую команду. Можно использовать в тексте другой команды.
Про два восклицательных знака я уже рассказывал. Например, вы вызвали команду:
И забыли написать в начале sudo. Чтобы не перепечатывать всю команду, можно выполнить:
Отмечу, что !! можно использовать прямо внутри текста команды. Например, мы перейдем в домашнюю директорию пользователя pingvinus:
А теперь войдем в папку /home/pingvinus/Downloads вот таким образом:
Поиск по истории команд. Команда history
history — поиск по истории команд — предназначена для вывода истории команд, поиска по ним и быстрого запуска предыдущих команд.
Если мы выполним history, то на экран будет выведен список последних введенных вами команд:
Каждая команда пронумерована. Чтобы вызвать какую-нибудь команду из списка достаточно выполнить в командной строке: !номер. Например выполним команду под номером 139:
Можно указать номер с минусом. Например, выполнив !-2 мы выполним пред-предыдущую команду. Выполнив, !-1 мы выполним предыдущую команду, это эквивалентно команде !!, описанной выше.
Для поиска по истории можно воспользоваться утилитой grep:
У команды history есть еще несколько дополнительных возможностей. Почитать руководство по history можно, выполнив man history.
Поиск по истории. Сочетание клавиш Ctrl+R
Ctrl+R — сочетание клавиш, которое используется для вызова «интерактивного» поиска по истории команд.
Нажмите Ctrl+R, находясь в командной строке. В результате на экране отобразится приглашение к поиску команды:
Начинайте вводить начальную часть или середину команды, которую вы ищете. То, что вы вводите будет заключено в кавычки, а после значка двоеточия вам будет предложена команда, найденная в истории команд, которая максимально удовлетворяет поиску. Например, я нажал Ctrl+R и начал вводить id-, и нашлась команда, содержащая символы id-:
Источник