Изучите Linux

Команда History в Linux с примерами

Команда History в Linux с примерами

Команда history в Linux - это не сложный жаргон. Это именно то, что вы думаете, и за этим нет скрытого смысла. Так же, как вы смотрите на историю своего браузера после долгого дня в Интернете, вы воспринимаете команду истории. Все дело в отслеживании ваших предыдущих перемещений и действий, но в данном случае это в терминале Linux или в командной строке.

Следовательно, мы можем удобно определить команду history в домене Linux как способ предварительного просмотра ранее выполненных команд. В этом случае мы можем рассматривать терминал как браузер, в котором вы выполняете различные команды в непрерывном временном интервале. Эти выполняемые команды интерпретируются индивидуально как события. Затем каждому событию присваивается номер события. Следовательно, у нас есть команды с идентификаторами в качестве номеров событий, которые хранятся в файле истории после их выполнения в терминале.

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

Позволить истории повторяться

Мы можем начать эту историческую статью весело и процитировав Джорджа Сантаяна. Этот знаменитый человек связывает неспособность вспомнить прошлое с проклятием повторения его. Однако, когда мы вступаем во вселенную Linux, эта цитата квалифицируется только как миф. Это потому, что философия Linux реально противоположна заявленной цитате Джорджа Сантаяны. Находясь на терминале Linux, если вы не можете вспомнить прошлое действие, не нужно беспокоиться об этом, потому что есть шансы, что оно когда-нибудь распадется.

Если, конечно, вы не станете мастером команды истории Linux, тогда вы сможете путешествовать во времени в прошлое и исправлять свои предыдущие терминальные грехи, если вы того пожелаете. Использование команды истории Linux никоим образом не связано с ленью. Экономит время за счет эффективности. По мере того, как вы продвигаетесь к освоению операционной системы Linux, вы обнаружите, что работаете с более длинными и сложными командами. Даже если вы сравните свой IQ с интеллектом Альберта Эйнштейна, у вас не будет времени вспомнить все команды, которые вы выполняете, и вскоре вы начнете совершать ужасные ошибки. Работа с терминалом Linux подвергнет человека двум типам ошибок:

Вы можете думать о команде history как о воине-ниндзя, который устраняет эти два типа ошибок, чтобы повысить вашу производительность. Подумайте, прежде чем мы начнем обучение, команда истории Linux - это нечто большее, чем просто использование клавиши со стрелкой вверх на клавиатуре. Наш подход заставит вас выглядеть более профессионально.

Введите команду истории Linux

Запустить команду history так же просто, как ввести слово history в терминале Linux. Так что запустите свой терминал и пройдите эту простую викторину по правописанию.

история

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

Если вы нажмете Enter, вы получите список всех команд, которые вы выполнили на терминале, с назначенными им идентификаторами или номерами событий. Система нумерации, которую использует интерфейс терминала Linux, отображает самую старую команду вверху списка, а вновь набранную команду внизу списка. Как видите, только что набранной мной команде истории был присвоен идентификатор 24.

список команд истории

Рассмотрим сценарий очень активного Linux-терминала. Если бы мы набрали команду истории на этом терминале, результатом было бы, скажем, список из 500 команд, сохраненных в файле истории. Таким образом, команда history полезна для фильтрации указанного сгруппированного сегмента команд. Допустим, мы хотим просмотреть последние 10 команд, выполненных на терминале. Мы отфильтруем наш путь через терминал, набрав следующее.

история 10

последние десять команд в файле истории

Как видите, команда history 10 отфильтровала последние десять команд, используемых на этом терминале, и перечислила их на нашем терминале с включением в команду history 10.

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

история | хвост -n 10

использование команды tail для отображения последних десяти команд в файле истории

В команде также перечислены последние 10 выполненных команд в терминале Linux, включая ту, которую мы только что выполнили.

Фактически повторяющаяся история

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

!17

использование идентификатора события для выполнения предыдущей команды

В моем случае я хотел просмотреть файл Linux / etc / host, и мне было предложено ввести пароль аутентификации. Как только мои учетные данные были утверждены, команда выполнилась сама.

выполненная команда в файле истории

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

!!

повторное выполнение предыдущей команды

повторно выполненная команда истории

Как видите, команда вернула нас к файлу Linux / etc / host, который я ранее открыл. Мне потребовалась команда с двойным восклицательным знаком, чтобы повторно использовать мою предыдущую команду, которая была выполнена сама по себе. Возможно, вы привыкли к клавише со стрелкой вверх на клавиатуре, для которой вам нужно было выполнить два действия, один раз прокрутить вверх и затем нажать кнопку ввода. Однако команда с двойным восклицательным знаком выглядит более быстрой и профессиональной, поскольку вам нужно выполнить только одно действие.

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

судо !!

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

Одиночный восклицательный знак в сочетании с идентификатором события выполнит отображаемую команду, привязанную к этому идентификатору. Двойной восклицательный знак заставляет вас выполнить последнюю использованную команду с возможностью добавления к команде префикса Sudo, если для ее выполнения требуется пользователь sudoer.

Возможно, вы также захотите поднять свою нервозность на новый уровень и захотите найти способ повторить свои 3rd или 6th предыдущая команда. В этом случае вам нужно будет принять к сведению идентификатор события, связанный с командой. Затем вы объедините идентификатор события с дефисом и одним восклицательным знаком, как показано ниже.

!-21 год

выполнение любой предыдущей команды в файле истории

Со своей стороны, я хотел спросить о моем 21ул предыдущая команда, и это оказался запрос ping для моего IP-адреса localhost. Использование этой последовательности команд полезно, когда вы хотите контрпроверить ранее выполненную команду и определить, действительны ли параметры, которые вы использовали для ее выполнения, или нет.

Командные строки

Допустим, вы выполнили некоторую команду на своем терминале, но не полностью запомнили ее. Однако вы уверены в эффективности команды и в том, как она вам помогла. Очень полезно знать часть строки, которая составляет эту команду. В моем случае я очень уверен, что однажды запустил команду для обновления моей системы. Скажем, я еще не запомнил эту команду обновления системы полностью, но я знаю, что часть команды содержит строку 'apt' в качестве начальной формулировки команды. Чтобы снова использовать эту команду, я наберу следующую команду на своем терминале. Однако, поскольку для большинства команд обновления системы требуется авторизация пользователя sudoer, я добавлю префикс к командной строке, которую хочу использовать с Sudo.

судо !подходящий

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

Как видите, я успешно обновил свою систему Linux из командной строки без использования полной команды sudo apt update. Этот прием из руководства по командам истории Linux полезен при работе с более длинными командами, которые могут быть утомительными для ввода или могут привести к назойливой опечатке. Возможно, вы редактируете файл, относительный путь которого дает длинную команду, или просто копируете файлы. В любом случае вам нужен свободный от стресса подход к переработке повторяющихся команд.

Поскольку мы коснулись аспекта авторизации пользователей sudoer, мы можем в конечном итоге упереться в стену, если не будем осторожны. Для выполнения большинства команд от привилегированных пользователей sudoer требуется префикс Sudo. Поэтому ввод строковой команды вроде '!sudo 'для команд, начинающихся с Sudo, может быть недостаточно, так как это может привести к выполнению нежелательной последовательности команд. Однако мы можем обеспечить подстраховку с помощью параметра: p, который является модификатором печати. Следовательно, объединение нашей строковой команды с ней должно дать следующие результаты:.

!sudo: p

команда history с модификатором печати

Команда распечатала доступные команды Sudo, которые я только что использовал. Чтобы повторно использовать эту команду, я воспользуюсь клавишей со стрелкой вверх на клавиатуре и нажму Enter, чтобы выполнить ее. Если бы в списке отображалось более одной команды Sudo, я бы все равно использовал клавишу со стрелкой вверх, чтобы перейти к конкретной команде Sudo, которую я хотел бы повторно использовать.

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

!?пинг

выполнение определенной команды из файла истории через строки

Я использовал '!?ping ', которая мгновенно выполнила мой предыдущий запрос ping. Вы можете использовать эту последовательность для выполнения предыдущих команд на вашем терминале, которые уникальны для других.

Интерактивный поиск

Предположим, у вас есть несколько предыдущих команд, которые вы выполнили, и они имеют похожие или совпадающие последовательности строк. Из всех этих совпадающих сигналов вы можете захотеть выполнить только определенную последовательность команд в этом сгибе. Интерактивный поиск позволяет вам перейти к этой единственной команде, которую вы хотите выполнить. Чтобы запустить интерактивный поиск, объедините клавиши Ctrl + r. Дисплей вашего терминала Linux должен выглядеть примерно так, как показано ниже.

команда истории и интерактивный поиск

Просто введите поисковую подсказку для команды, которую нужно выполнить. В моем случае я набрал apt, и, как вы можете видеть, оно появилось между апострофом и обратным апострофом. Вы можете ввести больше строковых подсказок о запрошенной команде, и интерактивный поиск будет постоянно обновлять связанные результаты. Нажатие Enter немедленно выполнит найденную команду.

sudo apt update

с помощью интерактивного поиска

Более того, вы можете захотеть отредактировать найденную команду перед ее выполнением. Для этого используйте стрелки влево и вправо на клавиатуре. Найденная команда теперь отобразится на терминале, где вы можете внести необходимые изменения.

sudo apt update && cd FOSSLinux

редактирование интерактивного поиска

Удаление команд истории

Пока что теперь вы можете извлекать, запрашивать, обновлять и выполнять команды из файла истории. Однако вы можете искать способ очистить список истории от некоторых или всех его команд. Возможно, вы относитесь к тому типу пользователей, которые не хотят, чтобы кто-либо отслеживал, как они используют их систему Linux. Параметр -d помогает избавиться от некоторых нежелательных команд в файле истории. В моем случае файл истории содержит команду с ошибкой с идентификатором события 44.

поиск команды истории для удаления

Чтобы избавиться от этой команды с ошибкой, я сделаю следующее на своем терминале.

history -d 44

использование идентификатора события для удаления команды истории

Повторный запуск команды 'history' показывает, что команда с ошибкой была удалена.

подтверждение удаления команды истории

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

история -d 10 20

Эта команда удалит записи файла истории от события с идентификатором 10 до события с идентификатором 20. Еще одна команда истории, которую следует учитывать, это следующая.

история -d -6

Эта команда избавится от последних шести команд, которые вы ввели на терминале и хранятся в файле истории.

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

история -c

очистить все команды истории

Заключение

Теперь у вас есть вся необходимая информация, чтобы решить, должна или не должна повторяться история вашего терминала. Для опытных пользователей есть случаи, когда вы можете запустить приложение через терминал, и вам может быть предложено оставить за собой след конфиденциальной информации. Файл истории также хранит такие конфиденциальные данные. Поэтому рекомендуется всегда очищать файл истории перед выходом из командной строки, особенно в случаях, когда хранятся конфиденциальные данные. Команда history дает вам возможность пережить хорошие времена в терминале, а также исправить прошлые ошибки командной строки.

Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...
Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...
OpenTTD против Simutrans
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...