Редактирование текста в Linux с помощью команд Vi, cat, less
Vi — очень мощный инструмент. В статье сделан упор не на возможностях редактора, а научить его основам.
Редактор командной строки
Vi — текстовый редактор командной строки. Командная строка — это совершенно другая среда для вашего графического интерфейса. Это одно окно с вводом и выводом текста. Vi был спроектирован для работы с этими ограничениями и в результате он достаточно мощный. Vi предназначен для работы в качестве простого текстового редактора. Однако он обладает гораздо большей мощностью по сравнению с Notepad или Textedit.
В итоге, вы должны забыть про мышь. Все в Vi делается через клавиатуру.
В Vi есть два режима. Режим вставки и режим редактирования. В режиме ввода вы можете вводить содержимое в файл. В режиме редактирования вы можете перемещаться по файлу, выполняя следующие действия:
Перечислим основные распространенные ошибки. Во-первых, начинать вводить команды, не возвращаясь в режим редактирования. Во — вторых, вводить ввод без предварительной вставки.
Когда мы запускаем vi, мы обычно выдаем его с одним аргументом командной строки. Он же является файлом для редактирования.
Если вы забыли указать файл, есть способ открыть его в vi. Когда мы указываем файл, он может иметь абсолютный или относительный путь.
Отредактируем наш первый файл.
Когда вы запускаете эту команду, она открывает файл. Если файл не существует, он создаст его для вас, а затем откройте его. После ввода vi это будет выглядеть примерно так.
Вы всегда начинаете в режиме редактирования, поэтому первое, что мы собираемся сделать, это переключиться в режим вставки, нажав i
Теперь введите несколько строк текста и нажмите клавишу Esc, и вы вернетесь в режим редактирования.
Сохранение и выход
Есть несколько способов сделать данный маневр. Для начала убедитесь, что вы находитесь в режиме редактирования.
Если вы не уверены, находитесь ли вы в режиме редактирования можно посмотреть в нижнем левом углу. В качестве альтернативы вы можете просто нажать Esc, чтобы быть уверенным. Если вы уже находитесь в режиме редактирования, нажатие клавиши « Esc» ничего не делает, поэтому вы не причините вреда.
Большинство команд в vi выполняются, как только вы нажимаете последовательность клавиш. Любая команда, начинающаяся с двоеточия (:), требует, чтобы вы нажали для завершения команды.
Другие способы просмотра файлов
vi позволяет нам редактировать файлы. Кроме того, мы можем использовать его для просмотра файлов. Надо признать, есть две другие команды, которые немного более удобны для этой цели. Во-первых, cat, который на самом деле означает конкатенацию. Ее основная цель — объединить файлы, но в своей основной форме это полезно для просмотра файлов.
Запустив команду cat с одним аргументом командной строки, можно увидеть содержимое файла на экране, а затем появится подсказка.
На самом деле, когда у вас возникают проблемы, вы обычно можете нажать + c, чтобы избежать неприятностей.
Эта команда хороша, когда у нас есть маленький файл для просмотра.
А если файл большой? Основная часть контента будет летать по экрану, и мы увидим только последнюю страницу контента. Для больших файлов лучше подходит команда, less.
less
less позволяет перемещаться вверх и вниз по файлу с помощью клавиш со стрелками. Вы можете перейти вперед на целую страницу с помощью пробела или назад на страницу, нажав b. При завершении, следует нажать q для выхода.
Навигация по файлу в Vi
Теперь вернемся к файлу, который мы только что создали, и введем еще немного контента. В режиме вставки вы можете использовать клавиши со стрелками для перемещения курсора. Введите еще два абзаца содержания, затем нажмите Esc, чтобы вернуться в режим редактирования.
Ниже приведены некоторые из множества команд, которые вы можете вводить для перемещения по файлу. Посмотрите как они работают.
Набрав set nu в режиме редактирования в vi, позволяет включить номера строк. В итоге, включение номеров строк делает работу с файлами намного проще.
Удаление текста
Если мы хотим перейти в vi, у нас будет довольно много вариантов. Некоторые из них также позволяют нам предшествовать им с числом, которое можно перемещать столько раз. Удаление работает аналогично перемещению. Всего несколько команд удаления позволяют нам включить команду перемещения, чтобы определить, что будет удалено.
Вот некоторые способы, которыми мы можем удалять текст в vi.
Отмена
Вывод
Теперь вы можете сделать основное редактирование в vi.
Кроме того, в статье мы ознакомились со следующими командами:
Кунг-фу стиля Linux: наблюдение за файлами
Linux или Unix приятно отличаются от многих других операционных систем тем, что Linux-программы часто выдают сообщения, которые записываются в какой-нибудь журнал. А многие команды даже можно настроить так, чтобы они генерировали бы больше сообщений, чем обычно. Я знаю о том, что в Windows есть средство для просмотра событий, но множество программ не особенно охотно делятся сведениями о своей работе. Это усложняет поиск источников проблем в тех случаях, когда что-то идёт не так, как ожидалось.
В случае с Linux проблема заключается в том, что иногда программы сообщают нам слишком много сведений о своей работе. Как найти в этом море информации именно то, что нужно? Когда киношный хакер сидит перед терминалом и смотрит на текст, прокручивающийся со скоростью 500 строк в секунду, выглядит это впечатляюще. Но в реальной жизни почти бесполезно изучать логи, выводимые на экран с такой скоростью. Хотя, если попрактиковаться, из этого потока информации можно иногда, рискуя ошибиться, выхватить какое-нибудь ключевое слово. Но задачу анализа логов в реальном времени это не решает.
Хакерский подход к анализу логов
Команда tail
Как по мне, так всё это выглядит очень даже хорошо. Попробуйте такую команду:
Вы увидите несколько строк из конца файла системного журнала. А если подключить к компьютеру USB-устройство или отключить такое устройство от компьютера, можно увидеть, как сведения, попавшие в журнал, практически мгновенно выводятся на экране. Повторно запускать tail при этом не нужно.
Возможно, вы уже пользовались этим приёмом. Вышеописанная конструкция хорошо справляется со своей задачей, она известна и применяется довольно часто. Но есть и другие способы наблюдения за файлами, которыми вы, возможно, ещё не пользовались.
Меньше — значит больше: полезные возможности команды less
Вот как вывод этой команды выглядит на моём компьютере.
Результаты работы команды less
Если вы пользуетесь less в обычном режиме (то есть — не использовали при запуске утилиты опцию +F ), вы можете нажать клавишу F на клавиатуре для перехода в «tail-режим». А ещё интереснее то, что, нажав ESC-F можно в этом режиме что-то искать, при этом, если в поступающих данных найдётся совпадение с тем, что вас интересует, система вам об этом сообщит.
Наблюдение за файлами с помощью команды watch
Результат выполнения команды watch
Использование текстового редактора для наблюдения за файлами
Если вы не ищете лёгких путей, то вам, возможно, подойдёт инструмент наподобие lnav, который сделан специально для просмотра логов. Просмотрщики журналов имеются, кроме того, в KDE и Gnome.
Итоги
Как это обычно бывает в Linux и Unix, у задачи организации наблюдения за файлами есть множество решений. Какое из этих решений «лучше» других? У каждого будет собственный ответ на этот вопрос. Именно это и делает Linux системой, привлекательной для продвинутых пользователей. Каждый из них может выбрать именно то, что подходит ему лучше всего.
Те команды, о которых мы говорили, могут пригодиться и тем, кто пользуется настольным дистрибутивом Linux, и тем, кто работает с серверами или с Raspberry Pi.
Как вы наблюдаете за постоянно изменяющимися файлами в Linux?
Команда less в Linux
Об утилите и команде more, которая предназначена для постраничного просмотра больших текстовых файлов, мы уже писали. А сегодня расскажем о более функциональной команде less — она позволяет перематывать текст не только вперёд, но и назад, осуществлять поиск в обоих направлениях, переходить сразу в конец или в начало файла.
Особенность less заключается в том, что команда не считывает текст полностью, а загружает его небольшими фрагментами.
Синтаксис и опции less
Запись команды less в терминале выглядит так:
команда опции файл
Наиболее популярные опции:
Во время просмотра текста утилитой можно управлять при помощи внутренних команд, набирая их на клавиатуре компьютера. Наиболее часто используемые из них:
Перечень всех опций и внутренних команд можно просмотреть в терминале, выполнив команду
Примеры использования less
Использование опций не является обязательным. Открыть файл можно, выполнив следующую команду:
Командная строка исчезнет, а в окне терминала откроется указанный вами документ. После этого его можно читать, пользуясь для прокручивания строк вперед и назад клавишами Enter и y либо другими.
Внизу окна вы увидите поле с мигающим курсором — здесь можно напечатать какую-либо внутреннюю команду, например, задать утилите паттерн поиска.
Опции нужны для того, чтобы оптимизировать отображение текста и сделать работу с утилитой более удобной. К примеру, в текстах часто встречаются множественные пустые строки. Они «съедают» место на экране, не принося никакой пользы. Поэтому к команде less стоит всегда добавлять опцию -s или —squeeze-blank-lines — она удаляет лишние пустые строки.
Впрочем, утилиту less зачастую используют не для чтения текста, а для поиска определенных участков в больших документах. Если вам нужно найти то или иное слово, напечатайте в поле с мигающим курсором /текст (для поиска вниз по тексту) или ?текст (чтобы выполнить поиск less вверх по тексту) и нажмите Enter. При необходимости используйте стандартные паттерны. Все участки текста, которые соответствуют заданным условиям поиска, будут подсвечены контрастным цветом.
Если вас интересует как выйти из less, то для выхода из утилиты и возвращения к командной строке терминала нажмите q, ZZ или выполните другую команду, сигнализирующую о завершении работы.
Следует заметить, что утилита less предназначена только для просмотра документов. Она не позволяет вносить в текст правки, форматировать или пересохранять его.
Выводы
Команда less в Linux пригодится для просмотра по-настоящему больших текстовых файлов, с которыми затруднительно работать в текстовых редакторах вроде vim или с помощью утилит, загружающих весь документ сразу. Если какие-то нюансы управления утилитой less остались вам непонятны, оставьте свой вопрос в комментариях и более опытные пользователи помогут решить проблему.
Команда less в линукс
Команда less позволяет задействовать одноименную утилиту, предназначенную для постраничного вывода содержимого текстовых файлов значительного объема. Она похожа на команду more, но имеет больше функций, которые, тем не менее, могут потребоваться далеко не всем пользователям. Утилита особенно удобна для быстрого открытия текстовых файлов, так как не загружает их содержимое полностью.
Базовый синтаксис команды выглядит следующим образом:
$ less [параметры] имя-текстового-файла
Утилита поддерживает большое количество параметров, причем практически все из этих параметров являются узкоспециализированным и едва ли пригодятся большинству пользователей, а самыми востребованными из них являются параметр -N, позволяющий выводить номера строк, что очень удобно при чтении программного кода, параметр -X, позволяющий не очищать содержимое терминала после завершения работы утилиты, а также параметр -I, позволяющий осуществлять поиск в тексте без учета регистра символов. Утилита работает в интерактивном режиме и позволяет использовать команды для навигации по содержимому файла, поиска строк и управления работой утилиты:
| Команда | Назначение |
| Клавиша со стрелкой вниз, Enter, e, j | Перемещение на одну строку к концу файла |
| Клавиша со стрелкой вверх, y, k | Перемещение на одну строку к началу файла |
| Пробел, f | Перемещение на одну страницу к концу файла |
| b | Перемещение на одну страницу к началу файла |
| /текст | Поиск текста по направлению к концу файла |
| ?текст | Поиск текста по направлению к началу файла |
| n | Повторение предыдущего поиска |
| N | Повторение предыдущего поиска в обратном направлении |
| Home, g | Переход к первой строке файла |
| Ng | Переход к строке файла номер N |
| End, G | Переход к последней строке файла |
| Home, p | Переход к началу файла |
| Np | Переход к позиции файла в N процентов |
| q | Завершение работы утилиты |
| h | Вывод информации о доступных командах |
Команды, не представленные одной клавишей, вводятся после имени файла или двоеточия в последней строке в нижней части экрана.
Примеры использования
Отображение содержимого текстового файла
Для отображения содержимого тестового файла достаточно передать утилите имя этого файла без каких-либо параметров:
$ less oui.txt
OUI/MA-L Organization
company_id Organization
Address
00-22-72 (hex) American Micro-Fuel Device Corp.
002272 (base 16) American Micro-Fuel Device Corp.
2181 Buchanan Loop
Ferndale WA 98248
US
00-D0-EF (hex) IGT
00D0EF (base 16) IGT
9295 PROTOTYPE DRIVE
RENO NV 89511
US
08-61-95 (hex) Rockwell Automation
086195 (base 16) Rockwell Automation
1 Allen-Bradley Dr.
Mayfield Heights OH 44124-6118
oui.txt
Для прокрутки содержимого удобнее всего пользоваться клавишами со стрелками, пробелом, а также клавишами Home и End. Для закрытия файла может использоваться клавиша q.
Поиск в текстовом файле
San Francisco CA 94107
US
50-EC-50 (hex) Beijing Xiaomi Mobile Software Co., Ltd
50EC50 (base 16) Beijing Xiaomi Mobile Software Co., Ltd
The Rainbow City Office Building, 68 Qinghe Middle Street Haidian District
Beijing Beijing 100085
CN
60-61-DF (hex) Z-meta Research LLC
6061DF (base 16) Z-meta Research LLC
8365 Quay Drive
Arvada CO 80003
US
70-57-BF (hex) New H3C Technologies Co., Ltd
7057BF (base 16) New H3C Technologies Co., Ltd
466 Changhe Road, Binjiang District
Hangzhou Zhejiang 310052
CN
8C-E7-48 (hex) Private
/cisco
Если вы хотите осуществлять поиск без учета регистра, следует открыть файл с использованием параметра -I:
58-85-E9 (hex) Realme Chongqing MobileTelecommunications Corp Ltd
5885E9 (base 16) Realme Chongqing MobileTelecommunications Corp Ltd
No.24 Nichang Boulevard, Huixing Block, Yubei District, Chongqing.
Chongqing China 401120
CN
BC-23-92 (hex) BYD Precision Manufacture Company Ltd.
BC2392 (base 16) BYD Precision Manufacture Company Ltd.
No.3001, Bao He Road, Baolong Industrial, Longgang Street,Longgang Zone, Shenzhen
shenzhen 518116
CN
94-E6-F7 (hex) Intel Corporate
/cisco
Как видите, результаты поиска отличаются.
Чтение программного кода
Для чтения программного кода удобнее использовать режим вывода номеров строк. Для этого следует использовать параметр -N.
Навигация по файлу будет осуществляться аналогичным образом. Для перехода к строке с заданными номером следует использовать команду Ng, то есть, к примеру, для перехода к десятой строке следует использовать команду 10g.
Less команда в Linux
Less Command in Linux
При запуске less не читает весь файл, что приводит к гораздо более быстрому времени загрузки по сравнению с текстовыми редакторами, такими как vim или nano.
Как использовать меньше
Общий синтаксис less программы следующий:
Например, чтобы просмотреть содержимое /usr/share/common-licenses/GPL-3 файла, введите:
Вы также можете перенаправить вывод команды на less использование канала. Например, чтобы просмотреть вывод ps команды страница за страницей, вы должны набрать:
Навигация по содержимому файла
При открытии файла, содержимое которого слишком велико, чтобы поместиться на одной странице, вы увидите одну двоеточие ( : ).
Вы можете нажать Down arrow или, Enter чтобы прокрутить вперед на одну строку и Up arrow прокрутить назад на одну строку.
Чтобы вернуться на предыдущую страницу, нажмите b клавишу. Переместитесь вверх на определенное количество строк, набрав номер, а затем b клавишу.
Когда достигнут конец файла, строка (END) показывается внизу экрана.
Чтобы выйти less и вернуться в командную строку, нажмите q
Меньше опций
Меньше Команд
Ниже приведены некоторые из наиболее часто используемых команд для навигации по содержимому файла при просмотре less:
Вывод
К настоящему времени вы должны хорошо понимать, как использовать less команду. Для получения полного списка всех опций и команд введите man less в своем терминале.










