Давайте поговорим об истории команд Bash! Оболочка bash хранит файлы в домашнем каталоге пользователя.
история команд, запущенных каждым пользователем, в файле.
По умолчанию это файл .bash_history.
Количество команд, которые затем будут сохранены в файле истории, контролируется переменной среды с
именем HISTFILESIZE (записывается заглавными буквами).
Помните, что в Linux все чувствительно к регистру. Чтобы напечатать значение переменной, выполните:
выведите знак доллара и имя переменной,
в данном случае HISTFILESIZE.
Это переменная, и мы замечаем, что эта система Linux сохраняет 2000 команд в файл истории
; вы можете распечатать всю историю bash на экране, выполнив одну команду, которая является историей.
Я веду историю.
Это все команды, сохраненные в истории.
Вы видите список команд в нашей истории, а также номер слева от каждой.
Команда с цифрой 1 рядом с ней - самая старая команда в вашей истории Bash, а команда с наибольшим
номером - самая последняя; и, конечно же, самая последняя команда и запуск - это история.
Обратите внимание, что запуск команды history не означает перечисление всего содержимого файла истории.
Существует еще одна переменная под названием HISTSIZE, которая контролирует, сколько команд из вашей истории bash будет
храниться в памяти. Посмотрим его ценность!
а это 1000; Итак, сделаем вывод: bash сохранит максимум 2000 команд в
файле .bash_history, в домашнем каталоге пользователя и максимум 1000 команд в памяти.
Это команды, отображаемые командой history.
Таким образом, команда history отобразит только половину команд, сохраненных в файле истории.
Также обратите внимание, что файл истории обновляется только тогда, когда пользователь, выполняющий команды, вышел из системы. Я запускаю
команду ip address show.
Команда отображается в истории.
Послушайте, это команда, но ее нет в файле истории.
Его там нет; сейчас я выйду из системы.
Я снова вхожу в систему.
Я снова открываю терминал и проверяю файл истории.
И последняя команда находится в файле истории.
Чтобы запустить конкретную команду из истории, не используйте восклицательный знак и номер
команды .
Например, я хочу запустить 17-ю команду из своей истории, и я наберу восклицательный знак и
число 17.
А чтобы повторно запустить последнюю команду, введите два восклицательных знака.
Это имеет тот же эффект, что и нажатие стрелки вверх один раз для просмотра предыдущей команды и последующее нажатие
Enter.
Вы также можете обратиться к команде из определенного количества строк в истории bash.
Например,! -7 запустит последнюю 7-ю команду.
Команда была rm1, и это была ошибка.
Попробуем другой пример.
Я хочу повторно запустить команду ВОЗ; так что! -3
И команда была выполнена.
Чтобы найти команду в истории и запустить ее, введите! Имя_команды
Например, я хочу выполнить последнюю команду ping, и для этого я наберу!
и команда.
И я нажимаю Enter, и выполняется последняя команда ping.
Я нажимаю кнопку C, чтобы остановить пинг. Обратите внимание, что это также может быть опасно, потому что вы точно не знаете
, как была выполнена команда, и есть риск выполнения другой команды.
Что вы можете сделать, так это добавить: p к приведенному выше расширению, и bash выведет команду на
терминал, не выполняя ее.
Это полезно, если вы хотите подтвердить, что выбрали правильную команду, прежде чем запускать ее, как
это.
Он просто печатает команду, а не выполняет ее. И если команда верна, я могу ее запустить.
Давайте продолжим и посмотрим, как пройти через историю команд. Control и P или стрелка вверх используются для
перехода к предыдущей команде в истории команд; нажмите ярлык несколько раз, чтобы вернуться
к истории, и нажмите N или стрелку вниз,
чтобы перейти к следующей команде в истории команд; нажмите этот ярлык несколько раз, чтобы просмотреть историю
вперед .
Bash также имеет режим отзыва, который вы можете использовать для поиска
ранее выполненных команд ; нажмите control и R и начните вводить команду для поиска ее в истории Bash
.
Я нажимаю Control и R, набираю пи, и он нашел команду. Когда вы найдете
нужную команду, нажмите клавишу ввода или управления и P, чтобы запустить ее.
Я снова нажимаю control и R, набираю cat, и теперь я не хочу запускать команду, я нажимаю
control и G, чтобы выйти из режима поиска в истории и очистить строку. Я нажимаю control и G.
Может наступить время, когда вы захотите удалить некоторые или все команды из своей истории.
Если вы хотите удалить конкретную команду, введите историю - D и номер
строки .
Например, я хочу удалить эту команду.
Итак, история - D и номер строки.
Команда была удалена из истории, ее больше нет.
Чтобы очистить все содержимое файла истории, выполните history -c. Вся история удалена
Пусто. В конце этой лекции у
меня есть для вас небольшое домашнее задание.
История команд - это очень мощная функция Bash, и ее эффективное использование экономит много
времени.
Однако бывают моменты, когда вы хотите запустить команду, не сохраняя ее в истории; Предположим,
вы хотите скопировать или просмотреть файл, который
вам не нужен , подключиться к другому компьютеру, который
вам не разрешен, и так далее.
Как можно запустить команду, не оставив следов?
Подумай об этом!
Попробуйте разные способы справиться с этим и даже найдите решение в Google.
Сделаем небольшой перерыв, и в следующей лекции я покажу вам, как это сделать.