Какая команда используется для открытия текстового редактора в системе linux ifconfig vim grep ls

Обновлено: 04.07.2024

Введение в Vim, Редактор текста Unix, с которым должен быть знаком каждый хакер

Как пентестерам и хакерам, нам часто предстоит работать с текстами – со списками, файлами настроек и т.д. Большинство из этого мы будем делать на наших машинах, где у нас есть доступ к любым возможным редакторам. Остальное нам предстоит сделать на удаленных машинах, где инструменты для редактирования будут ограничены. Если установлен nano, то нам доступен легкий в использовании терминал текстового редактора, но он не является достаточно мощным. К счастью, на большинстве систем будут установлены Vi или Vim. Vi означает визуальный, и это мощный, быстрый модальный текстовый редактор, который работает в любом режиме вставки (где вы печатаете внутри документа) или в нормальном режиме (где вы вводите команды для сессии). Переключиться между этими сессиями также просто, как нажать на клавишу, и это отлично подходит для тех из вас кто не любит убирать руки с клавиатуры.

3 января стартует курс «SQL-injection Master» © от команды The Codeby

За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

Запись на курс до 10 января. Подробнее .

Vim, что означает Vi IMproved, обладает всеми свойствами Vi с некоторыми замечательными дополнениями, которые помогают в редактировании исходного кода. Тут также есть всеобъемлющая система помощи и доступны множество опций настройки. Многие системы symlink Vi to Vim, включая macOS. Лично я использую Vim для всех операций редактирования на удаленных хостах.

Введение в Vim, Редактор текста Unix

Введение в Vim, Редактор текста Unix

Vim может показаться сложным и замысловатой для освоения, но не переживайте – с этим сталкиваются все, кто начинает использовать Vim. Хитрость в том, чтобы продолжать упорно осваивать его. Чем дольше вы используете Vim, тем лучше вы его освоите – вплоть до того момента, когда вам не нужно будет отрывать руки от клавиатуры.

Это руководство будет вступительным. Существует множество книг, посвященных Vi/Vim, но я хотел бы быть уверен, что вы знаете основы и сможете в дальнейшем использовать их в работе.



Настраиваем Vim

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

Step 1 Откройте терминал

Откройте эмулятор терминала, такой как iTerm, и убедитесь, что вы находитесь в своей домашней директории, используя команду:

Терминал должен показать, что вы находитесь в /Users/$yourusername. Если этого не произойдет, то выполните команду:

Это поменяет текущую директорию на вашу домашнюю.

Step 2 Отредактируйте файл

Ваш .vimrc файл является местом, где хранятся конфигурации Vim. По мере использования Vim, в .vimrc файле будет появляться все больше пользовательских настроек. Я храню копию своего .vimrc на GitHub, но в общем, пока вы используете Vim на удаленном хосте, и не являетесь авторизированным пользователем, у вас не будет пользовательского .vimrc, поэтому очень важно быть знакомым с базовыми конфигурациями.

В терминале введите команду:

Это скажет Vim открыть файл .vimrc . Этого файла может не существовать. В моем случае, я пока не нашел .vimrc .



Vim запускается в командном режиме (так называемый нормальный режим), не в режиме вставки. Это означает, что последующие нажатия клавиш будут интерпретироваться как команды для Vim, а не как ввод данных. Для того чтобы выйти из командного режима, вам необходимо нажать клавишу i. Это делает доступным режим вставки. Если вы нажмете a, то Vim переместит курсор на один пробел влево и запустит режим вставки там.

blank

В левом нижнем углу, мы видим, что мы находимся в режиме вставки. Теперь мы можем печатать в нашей конфигурации. Вам понадобятся следующие строки в файле:

blank

Step 3 Сохраните ваши изменения и выйдите

Теперь у нас есть файл .vimrc, и в следующий раз, когда мы отредактируем что-либо в Vim, мы увидим изменения.

blank

Так выглядит намного лучше.

Перемещение в командном режиме

Когда мы находимся в командном режиме, мы можем быстро перемещаться от документа к документу. Клавиши со стрелками будут помогать нам перемещаться по документу, также как и клавиши h, j, k, l, которые в данном случае имеют такие же функции. Если вы когда-нибудь играли в Crawl, вам будет легко освоиться.

Дополнительные клавиши передвижений:

  • e переместит вас прямо в конец слова;
  • w переместит вас прямо на начало слова;
  • b переместит вас обратно в начало слова;
  • $ переместит вас в конец строки;
  • 0 (ноль) переместит вас в начало строки;
  • G переместит вас в конец файла;
  • gg переместит вас в начало файла.

Безусловно, есть много других способов перемещаться внутри файла, но приведенные здесь должны удовлетворять в большинстве случаях.

Поиск файла

Часто нам нужно будет искать строки в файле, чаще в конфигурации, но это также может помочь с историей файлов или с чем-либо еще, что мы редактируем. Для этого вам нужно находиться в командном режиме. Если вы не уверены в каком режиме находитесь, нажмите клавишу esc, которая переведет вас в командный режим, если вы еще не находитесь в нем.

  • Для простого поиска мы используем / , а потом идет строка. Например, /password . Если бы мы были в конце файла, мы бы использовали ?, так используйте ?password для обратного поиска.
  • Команда n повторит последний поиск вперед, а команда N повторит последний обратный поиск.

Для поиска и замены, мы используем :%s/search/replace/ . Вам нужно будет ввести.

  • :%s/tcpdump/ls/ будет проводить поиск во всем файле, каждый элемент имеющий tcpdump на ls.
  • :%s/myPrivEscalationScript/ls/ c будет проводить поиск во всем файле, каждый элемент только после вашего подтверждения.

Vim также поддерживает регулярные выражения таким же образом, как это делает grep.

Сохранение, Выход & Shell Escaping

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

  • :w запишет файл;
  • :wq запишет файл и выйдет из него;
  • :q! выйдет из редактора и сбросит все изменения;
  • :w someFileName сохранит изменения в файле под названием someFileName.

В некоторых случаях нам может понадобиться выйти в оболочку и просмотреть дерево директории или другие файлы. Для того, чтобы выполнить системную команду в Vim, используйте следующее:

Формулировка в данном формате выполнит любую команду, которую мы укажем после восклицательного знака. Это может быть оболочка :!bash , которая может быть использована для выхода и возврата в Vim, или :!ls /etc , которая используется, чтобы просмотреть содержание директории /etc.

Это должно помочь вам начать

Эта статья затрагивает очень поверхностную информацию. Как я сказал во вступлении, Vim представляет собой очень мощный инструмент, с огромным количеством посвященных ему книг. Однако, зная эти базовые команды, вы сможете просматривать файлы, управлять ими и выходить из редактора.

1 декабря стартует зимний поток курса " Тестирование Веб-Приложений на проникновение " от команды codeby . Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, активный фаззинг, уязвимости, пост-эксплуатация, инструментальные средства, Social Engeneering и многое другое. На курс можно записаться до 10 декабря включительно. Подробнее .

Текстовый редактор vim, созданный на основе более старого vi. Один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам. По умолчанию входит в состав любого дистрибутива Linux.

Открываем файл с помощью vi / vim:

Основные режимы работы.

«Обычный режим» — перемещение по файлу, стирание текста и другие редактирующие функции. Это - основной режим, только из него можно сразу перейти в другие режимы. Для возврата в основной режим из любого другого режима:

«Режим ввода» - ввод текста. Как только завершается ввод текста, принято сразу возвращаться в обычный режим. Заметьте, что стирание и ввод текста происходит в двух разных режимах. Переход в него из обычного режима:

«Командный режим» - Команды (операции с файлом, поиск и замена, настройка редактора…). Переход в него из обычного режима:

«Режим поиска» - ввод поискового запроса. Переход в него из обычного режима

«Визуальный режим» - режим выделения текста:

Перемещение по файлу

После загрузки Vim, на экране вы увидите часть загруженного вами текстового файла. Загрузившись, Vim находится в «командном режиме» - один из основных режимов. Это значит, что если вы нажмете клавишу <l> (строчная L), вместо появления «l» на месте курсора вы увидите, что курсор сдвинулся на один символ вправо. В командном режиме знаки, набираемые на клавиатуре, используются как команды для Vim, а не как помещаемые в текст символы. Команды перемещения - один из наиболее важных типов команд. Вот некоторые из них:

Ввод текста

Следующие команды переводят редактор в режим ввода:

Удаление и вставка

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

Отмена изменений

Поиск

Перейти на строку:

Выход

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

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

Vim — очень мощный редактор с огромным набором функций. Эта статья охватывает основные команды, которых достаточно для того, чтобы начать работу в vim-е.

Очень важно не просто читать статью, а параллельно пробовать все действия на каком-нибудь тестовом текстовом файле. Для этого создайте текстовый файл и откройте его с помощью редактора vim:

Два режима

Есть два режима работы редактора: режим редактирования и нормальный режим. Переход в режим редактирования осуществляется различными командами, речь о которых пойдёт дальше. Выход из режима редактирования — кнопка <Esc>

Команды перемещения курсора

Команды перемещения работают в нормальном режиме. Нажмите <Esc>, чтобы убедиться что находитесь в нём.

Курсор можно перемещать стрелками на клавиатуре или, что гораздо быстрее, клавишами h, j, k, l:
h — влево
j — вниз
k — вверх
l — вправо

Команды удаления

Сохранение изменений

Для того чтобы сохранить отредактированный файл нужно:

  • перейти в нормальный режим, нажав <Esc>
  • ввести команду :write <имя_файла> <ENTER>,
  • или её сокращённый вариант :w <имя_файла> <ENTER>

Если имя_файла отсутствует, то сохраняется текущий файл
Чтобы выйти из редактора введите :quit <ENTER> или просто :q <ENTER>
Выйти не сохранив изменения — :q! <ENTER>
:wq — сохранить изменения в текущем файле и выйти.

Вставка текста

Для перехода в режим вставки нажмите <i>.
A — переход к концу строки и начало режима вставки
a — переход к следующему символу и начало режима вставки
o — начать вставку под текущей строкой
O — начать вставку над текущей строкой
<Esc> — переход к нормальному режиму

Отмена последних изменений

u — отмена последнего изменения
U — отмена изменений во всей строке
<CTRL-R> — отмена отмены.

Копирование и вставка

yy — скопировать всю строку в буфер обмена
p — вставить содержимое буфера обмена после курсора
y5y или 5yy — скопировать 5 строк
yw — скопировать слово
В буфер обмена попадают и только что удалённый текст. Например если удалить строку dd, то сразу же после этого её можно вставить с помощью p

Замена

Поиск

/ — поиск в прямом направлении
? — поиск в обратном направлении
n — перейти к следующему найденному элементу
N — перейти к предыдущему найденному элементу.

Поиск соответствующей скобки ], ), >

Наведите курсор в нормальном режиме на открывающуюся/закрывающуюся скобку и нажмите %. Курсор перейдёт к соответствующей закрывающейся/открывающейся скобке, если таковая есть.

Определение положения в файле

Чтобы определить текущее положение нажмите <CTRL-G> в нормальном режиме. В нижней части терминала появится строка, содержащая информацию о количестве строк, текущем положении, имя файла.

Автоматическая замена

Вызов справки

:help <команда> <ENTER> — вызов справки по команде редактора.

Исполнение shell-команд

:!<команда>
Например:
:!ls — исполнить команду ls в текущей директории

Чтение файла

:r <filename> — вставить содержимое filename после курсора

Команда set

Файл настроек

Скрипт, который исполняется при запуске редактора vim находится в домашней директории пользователя и называется .vimrc.
В нём можно задать некоторые дополнительные настройки, например:

Примеры этого файла поставляются вместе с дистрибутивом редактора.

Дополнительная информация

Подробную информацию можно получить из встроенной справки с помощью команды :help или на страницах мануала man vi.

Команда Linux в общем случае представлена либо исполняемым файлом, либо встроенной функцией командной оболочки. Например, cd, ls, echo и firefox являются командами. Действия, выполняемые в результате исполнения большинства этих команд, полностью описываются в рамках командной строки за исключением последней команды firefox. Более сложные команды сразу же после запуска взаимодействуют с пользователем в интерактивном режиме и называются приложениями. Многие, но не все приложения осуществляют интерактивное взаимодействие с пользователем посредством графического интерфейса или GUI.

Общая информация о командах

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

В данном случае «-l /bin» является парой аргументов (отделенных друг от друга, а также от самой команды с помощью символов пробелов), причем «-l» является аргументом, который изменяет поведение команды ls (данный аргумент позволяет команде выводить подробный листинг содержимого директории), а «/bin» - просто указывает директорию, с которой должна работать команда ls.

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

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

Еще один способ запуска последовательности команд заключается в использовании механизма условного запуска, активируемого в командной оболочке Bash с помощью последовательности символов «&&» и позволяющего исполнить вторую команду лишь в том случае, если первая команда вернет код завершения 0 (то есть, завершится успешно).

При использовании обычного разделителя команд («;») даже в случае некорректной смены текущей директории с помощью первой команды, вторая команда ls будет вызвана и просто выведет список файлов из текущей рабочей директории. Ну а при использовании оператора для условного запуска команд («&&») команда ls не будет вызываться в случае некорректного завершения работы команды cd.

По аналогии оператор «||» позволяет выполнить вторую команду только в том случае, если первая команда вернула ненулевой код завершения (то есть, завершилась некорректно).

Получение информации о командах из локальной документации

Система Linux должна содержать документацию в формате страниц руководства (man-страниц) и, возможно, информационных страниц (info-страниц). Если вы знаете имя команды, о которой необходимо получить информацию, команда

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

для поиска соответствующих команд.

К сожалению, хотя практически все страницы руководств являются информативными и достаточно полными, в случае множества утилит от проекта GNU man-страницы являются максимально примитивными и предназначены для отсылки пользователей к соответствующим информационным страницам. В подобных случаях команда

позволит получить информацию об интересующей вас утилите.

К тому же, многие команды поддерживают такие аргументы, как «-h», «-H», «-help», «--help» или их комбинации. К сожалению, некоторые команды выполняют какие-либо действия вместо вывода справочной информации при использовании таких аргументов, как «-h» и «-H», поэтому вам следует быть готовым и к нестандартным ситуациям.

Также дополнительные файлы с документацией на английском языке могут располагаться в таких директориях, как «/usr/doc», «/usr/local/doc» и «/usr/src/linux/Documentation» (документация ядра Linux) и некоторых других.

Доступ к информации

Информационные страницы обычно разделены на небольшие разделы и содержат гиперссылки на другие страницы. При этом вам нужно знать хотя бы в минимальном объеме сочетания клавиш для навигации по ним. Эти сочетания клавиш аналогичны сочетаниям клавиш, используемым в текстовом редакторе Emacs. Кроме того, вы можете экспортировать все дерево информационных страниц в единый текстовый файл и просматривать его в рамках пейджера с помощью команды

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

Linux_Deep_27.12-5020-09dff9.jpg

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

Просмотр текстового файла в Linux полностью

Чтобы вывести содержимое всего текстового файла, в Linux используют команду cat. Она отлично походит для вывода небольших текстовых файлов, к примеру, конфигурационных файлов. Синтаксис прост:

Представьте, что надо посмотреть содержимое файла с названием myfile.txt:

Также можно вместо имени прописать адрес (путь) к файлу:

Если нужно посмотреть несколько файлов сразу, это тоже не вызовет проблем:

terminal_linux_16_1-20219-fd57a5.jpg

Кроме того, при просмотре текстового файла в Linux мы можем отобразить номера строк. Для этого потребуется всего лишь использовать опцию -n :

terminal_linux_17_1-20219-bc46ed.jpg

Команда nl функционирует аналогично команде cat с опцией -n , выводя номера строк в столбце слева.

При необходимости вы можете сделать так, чтобы при выводе текстового файла в конце каждой строки отображался символ $ :

Вывод будет следующим:

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

terminal_linux_21_1-20219-6bcb32.jpg

Как просмотреть файл в Linux с прокруткой

Бывает, что текстовый файл большой, поэтому его содержимое не помещается в один экран. Использовать в таком случае cat неудобно, зато есть less. Синтаксис у неё такой же:

Команда less обеспечит постраничный просмотр, что очень удобно. При этом: 1) less позволяет просматривать текст по определённому числу строк, для чего достаточно указать - (тире или минус) и количество строк:

2) можно начать просмотр с конкретной строки в файле, указав + (плюс) и номер строки, с которой хотим начать чтение:

Открыв текст, мы можем управлять его просмотром:

1-20219-f917a7.jpg

Просматриваем начало или конец файла в Linux

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

Команда head по умолчанию показывает лишь 10 первых строчек в текстовом файле в Linux:

Вот, что мы увидим:

Кстати, тут мы тоже можем открыть сразу несколько текстовых файлов в Linux одновременно. Вот просмотр сразу двух файлов:

Если же вас не интересуют все 10 строчек, то, как и в случае с cat, можно использовать опцию –n , цифрой указывая число строк к выводу:

В итоге мы вывели только пять строк:

По правде говоря, букву n можно и не использовать, достаточно просто передать цифру:

Кстати, выводить содержимое текстового файла в Linux можно не построчно, а посимвольно. Давайте зададим число символов, которое нужно вывести (используем опцию -с ):

Итак, выводим 45 символов:

Не верите, что их действительно 45? Проверить можно командой wc:

С «головой» разобрались, давайте поговорим про «хвост». Очевидно, что команда tail работает наоборот, выводя десять последних строк текстового Linux-файла:

Количество строк при выводе тоже можно менять. Однако в tail есть такая полезная опция, как -f . С её помощью содержимое текстового файла будет постоянно обновляться, в результате чего вы станете видеть изменения сразу (постоянно открывать и закрывать файл не придётся). Это весьма удобно, если вы хотите просматривать логи Linux в реальном времени:

Просматриваем содержимое файла по шаблону в Linux

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

Команду можно применять и совместно с cat:

Давайте выведем из лога лишь предупреждения:

Есть и ряд полезных опций: -A , -B , -C . Допустим, нам надо выполнить вывод двух строк после вхождения enp2s0:

А теперь, то же самое, но до вхождения loop:

Можно по две строки как до, так и после loop:

Просматриваем Linux-файл в сжатом виде

Порой, в системе встречаются текстовые файлы в сжатом виде и формате gz. Это могут быть конфигурационные файлы ядра либо логи программ. Открыть такие файлы можно тоже через терминал, не прибегая к распаковке. Для этого существует множество аналогов вышеназванных утилит с той лишь разницей, что они имеют приставку z: zgerp, zegrep, zcat, zless.

Давайте откроем сжатый файл в Linux для просмотра:

Или выполним просмотр сжатого файла с прокруткой:

Вот, пожалуй, и всё. Теперь вы точно в курсе, как правильно открывать и просматривать текстовые файлы в терминале Linux.

Читайте также: