Sysadminium
На этом уроке по Linux мы рассмотрим создание (touch), редактирование (nano) и чтение (cat, tac, grep, less, tail) текстовых файлов.
Оглавление скрыть
Создание файлов и просмотр их в каталоге
Все примеры я буду показывать на Debian 11, так как на Ubuntu 22.04 все выполняется аналогично. Вообще в Linux работа в терминале на любых системах практически одинакова. Поэтому создание, редактирование и чтение файлов можно продемонстрировать на любой системе.
Для создания текстового файла служит команда touch:
alex@deb:~$ touch file.txt
С помощью команды ls можно посмотреть какие файлы есть в каталоге:
alex@deb:~$ ls file.txt
Для команды ls есть дополнительные опции:
- -l — показывает информацию по каждому файлу;
- -h — показывает размер файла в удобном для человека виде (байты, килобайты, мегабайты и т.д.). Эту опцию можно использовать только вместе в -l.
Опции можно писать слитно (ls -lh) или раздельно (ls -l -h). Вот пример:
alex@deb:~$ ls -lh итого 0 -rw-r--r-- 1 alex alex 0 ноя 26 16:15 file.txt
Команда touch не только создает файл, но если этот файл уже есть, то обновляет время доступа и модификации данного файла:
alex@deb:~$ touch file.txt alex@deb:~$ ls -lh итого 0 -rw-r--r-- 1 alex alex 0 ноя 26 16:17 file.txt
Как вы могли заметить вначале время последнего изменения файла было 16:15, а после выполнения команды touch оно изменилось на 16:17. На самом деле команда touch не изменила файл, она лишь прикоснулась к файлу и тем самым изменила его время доступа. Кстати, с английского touch переводится как прикасаться.
Давайте теперь разберём вывод команды ls -lh:
Тип файла | Права | | Кол-во ссылок | | | Владелец | | | | Группа | | | | | Размер | | | | | | Дата и время последнего касания или изменения | | | | | | | Имя файла | | | | | | | | - rw-r--r-- 1 alex alex 0 ноя 26 16:17 file.txt
Пока что вам нужно запомнить что таким образом можно посмотреть размер файла и дату его изменения, с остальным разберемся позже. И ещё запомните 2 типа файлов:
- знак тире «-« — это обычный файл;
- символ «d» — это каталог;
- есть и другие типы файлов, но пока их рассматривать не будем.
Редактирование файлов
Отредактировать текстовый файл можно с помощью текстового редактора «nano»:
alex@deb:~$ nano file.txt
После выполнения этой команды у Вас откроется текстовый редактор:

Для того чтобы сохранить этот файл нужно нажать комбинацию клавиш «Ctrl+o«.
А чтобы закончить редактирование и закрыть этот файл нужно нажать «Ctrl+x«. При этом у вас спросят, хотите ли вы сохранить этот файл и если да, то нужно ввести «y» и нажать клавишу «Enter«. Таким образом необязательно использовать комбинацию «Ctrl+o» перед закрытием файла.
Внизу я выделил подсказки текстового редактора Nano, в подсказках символ «^» — это клавиша Ctrl.
Если с помощью nano открыть несуществующий файл, то файл будет создан как только вы его сохраните. Поэтому выполнять touch перед nano не обязательно.
Чтение файлов
Команды cat и tac
Давайте теперь научимся читать текстовые файлы. Чаще всего для этого используется команда cat:
alex@deb:~$ cat file.txt И тут мы можем вводить текст, какой только пожелаем.
У команды cat есть опция -n, которая выводит номера строк:
alex@deb:~$ cat -n file.txt 1 И тут мы можем 2 вводить текст, 3 какой только пожелаем.
Для команды cat есть команда перевёртыш, это команда tac. Она выводит текст задом наперед:
alex@deb:~$ tac file.txt какой только пожелаем. вводить текст, И тут мы можем
Команда grep
Если Вам нужно что-то найти в тексте, то для этого используйте команду grep. Например, мы ищем строку в которой встречается слово «какой»:
alex@deb:~$ grep какой file.txt какой только пожелаем.
Команда less
Если текст длинный то вместо cat лучше использовать команду less:
alex@deb:~$ less /etc/ssh/sshd_config
Используя less мы можем кнопками вверх / вниз перемещаться по тексту:

Если нажать кнопу «/», то откроется строка, куда можно ввести фразу для поиска в этом файле. Давайте, например, найдём строку со словом «Port»:

При поиске удобно использовать кнопку «n» для дальнейшего поиска введенной фразы, и комбинацию «Shift+n» для поиска в обратном направлении (к началу файла). Для выхода из программы используйте клавишу»q«.
Команды tail и head
Если Вам нужно посмотреть последние строки файла используйте команду «tail«:
alex@deb:~$ tail /etc/ssh/sshd_config # override default of no subsystems Subsystem sftp /usr/lib/openssh/sftp-server # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server
А если нужно посмотреть первые строки файла то команду «head«:
alex@deb:~$ head /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the
Эти две команды выводят 10 последних (tail) или 10 первых (head) строк файла. И у этих команд есть параметр -n, с помощью которого можно указать сколько строк выводить, например выведем по 3 строки:
alex@deb:~$ tail -n 3 /etc/ssh/sshd_config # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server alex@deb:~$ head -n 3 /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ # This is the sshd server system-wide configuration file. See
А ещё команда tail позволяет выводить изменяющиеся файлы, например логи. Для этого используется опция -f. Чтобы закончить наблюдение за файлом, нужно нажать комбинацию Ctrl+c.
Как редактировать файлы в Ubuntu
Это еще одна инструкция для самых начинающих. В операционной системе довольно часто приходится редактировать файлы. Например, вам может понадобится создать какую-нибудь заметку с действиями, командами или другой информацией, но чаще всего приходится редактировать конфигурационные файлы для внесения различных настроек в систему.
Да, для многого придуман графический интерфейс, и уже почти все можно сделать в нем, но ручной способ все еще остается мощным и очень гибким путем настройки системы. В этой статье мы рассмотрим как редактировать файлы в Ubuntu. Мы будем рассматривать именно этот дистрибутив, потому что он самый популярный среди начинающих.
Как редактировать файлы в Ubuntu
Новичкам намного проще редактирование файлов ubuntu в графическом интерфейсе и для этого в этой системе по умолчанию поставляется программа Gedit. Это очень простой, но достаточно функциональный текстовый редактор, который позволяет делать все что нужно.
Функция создания файлов интегрирована в Nautilus, поэтому вы можете просто выбрать пункт создать, а затем пустой файл чтобы получить новый файл в своем домашнем каталоге.
Открыть файл тоже можно с помощью проводника, текстовый редактор Gedit по умолчанию назначен для работы с текстовыми файлами, поэтому достаточно выполнить двойной клик по нужному файлу.

Также вы можете запустить Gedit через терминал. Для этого откройте терминал с помощью сочетания клавиш Ctrl+Alt+T, и выполните:

Но проблемы появляются, если вы попытаетесь открыть с помощью Nautilus конфигурационный файл, расположенный выше вашей домашней папки, он принадлежит пользователю root и только он может его редактировать. Поэтому открыть такой файл прямо из файлового менеджера не получится. Он откроется, но сохранить вы его не сможете.
Обычно права установлены таким образом, что открыть то вы его сможете, а вот сохранить изменения уже нет. Запустите терминал и выполните:
gksu gedit /путь/к/папке/с_файлом/файл
После этого программа запросит пароль и запустит текстовый редактор от имени администратора. Дальше вы сможете успешно выполнить редактирование файлов в Ubutnu и сохранить изменения в файле.
Есть еще одной обходной способ, вы можете, добавить пункт открыть от имени администратора в контекстное меню Nautilus. Для этого нужно выполнить несколько команд в терминале. Сначала обновите списки пакетов из репозиториев:
sudo apt update
Установите пакет nautilus-admin:
sudo apt install -y nautilus-admin
Затем выполните такую команду чтобы полностью закрыть Nautilus:
Теперь загрузите Nautilus, и в меню появится пункт Редактировать как администратор:

После нажатия на этот пункт система запросит пароль и вы получите возможность работать с файлом от имени администратора. Но не все любят запускать графические программы, более опытным пользователям нравится выполнять редактирование файла в терминале Ubuntu через терминал, именно такой способ работы с файлами используется везде у нас на сайте. Дальше мы рассмотрим с помощью каких программ это можно сделать.
Редактирование файлов в Ubuntu через терминал
Очень часто среди опытных пользователей принято работать с текстовыми файлами через терминал, для этого применяются две программы. Одна из них более простая и рассчитана на новичков — nano, а вторая более сложная, но очень эффективная — vim. Для редактирования файла с помощью nano используйте соответствующую команду:
Если файл нужно открыть от имени администратора:
sudo nano /путь/к/файлу/имя_файла
Редактор nano очень прост, для перемещения по файлу используйте кнопки со стрелками, после того, как закончите редактировать файл ubuntu, нажмите чтобы сохранить Ctrl+O, а для выхода Ctrl+X. Еще поддерживается поиск и замена, но все на очень примитивном уровне, и этого явно недостаточно для того чтобы работать эффективно.
Другой редактор ориентирован на профессионалов — это редактор vim. Он очень гибкий, может работать в двух режимах — командном и обычном режиме набора текста. Чтобы открыть с помощью него файл выполните:
Или для редактирования файла с правами суперпользователя:
sudo vi /путь/к/файлу/имя_файла
В командном режиме вы можете выполнять поиск, быстро перемещаться по строкам и символам с помощью клавиш набора, а также много других действий. Мы подробно рассматривали как работать с vim в отдельной статье.
Выводы
В этой небольшой статье мы рассмотрели как редактировать файлы в терминале Ubuntu, а также как это более удобно выполнять через графический интерфейс. Это довольно простая задача, для нас — уже опытных пользователей, но для новичков она может показаться совсем непростой. Если у вас остались вопросы, спрашивайте в комментариях!
Текстовый редактор Nano в Linux для новичков
Несмотря на то что большинство действий в операционной системе Linux можно сделать через графический интерфейс, если вы хотите большого контроля над процессом и большей гибкости, вам придется прибегнуть к ручному редактированию конфигурационных файлов.
Так вы сможете точно настроить каждый параметр и будете знать, за что отвечает та или иная строка. Для работы с конфигурационными файлами можно использовать разные редакторы. Новички, чаще всего, используют Gedit, более опытные пользователи, которые уже привыкли к терминалу предпочитают редактор nano, а многие профессионалы хотят использовать только Vim.
Как использовать Vim мы уже рассматривали в одной из предыдущих статей, он очень гибкий, но за эту гибкость пришлось заплатить сложностью и вертикальной кривой обучения. В этой статье я хочу рассмотреть как использовать текстовый редактор Nano в операционной системе Linux. Это очень простой редактор и с ним справиться любой новичок. Но, в свою очередь, это будет отличным шагом в сторону освоения терминала.
Что такое редактор Nano?
Текстовый редактор Nano входит в набор программ GNU и является стандартным консольным редактором для многих дистрибутивов Linux. Разработка программы, как и многих других программ из набора GNU началась в девяностых годах.
В те времена существовала программа для отправки и приема электронной почты — Pine. Ее частью был текстовый редактор Pico, который можно было использовать для написания своих сообщений. Многим новичкам нравился Pico за его простоту и интуитивно понятный интерфейс. Но дистрибутивы Linux, в том числе Debian, не могли включить в свои репозитории закрытые бинарники для Pine и Pico.
Учитывая все это было принято решение создать редактор TIP или Tip Isn’t Pico. Но потом из-за конфликта названий с другой утилитой, редактор переименовали в nano.
Главное преимущество nano в простоте использования. Работать с ним так же просто, как с OpenOffice или Gedit. Поэтому работе с программой очень просто научиться. А теперь давайте перейдем к вопросу как использовать nano.
Как использовать редактор Nano?
В первую очередь нужно сказать, что nano — это консольный текстовый редактор, а это значит что его принято выполнять именно из терминала. Для этого применяется такой синтаксис:
$ nano опции /адрес/файла/файл
Использовать опции командной строки не обязательно достаточно только указать имя файла, но в некоторых случаях опции могут быть очень полезны. Рассмотрим их подробнее:
- +номер — указать строку в файле, с которой нужно начинать редактирование;
- -B — создавать резервную копию для файла при сохранении;
- -С — папка для резервной копии;
- -D — выводить текст жирным;
- -E — конвертировать табуляции в пробелы;
- -F — включить поддержку редактирования нескольких файлов;
- -H — сохранять историю поиска и замены;
- -I — не читать конфигурацию из файлов nanorc;
- -P — запоминать и восстанавливать позицию курсора во время последнего редактирования;
- -T — размер табуляции в пробелах;
- -m — включить поддержку мыши;
- -v — режим только для чтения, вы не можете сохранить файл.
Мы рассмотрели только самые главные опции программы, естественно, что на самом деле их намного больше, но для начала этих будет вполне достаточно. Дальше мы рассмотрим как работать с самой программой ее внешний вид и сочетания клавиш.
Чтобы открыть какой-либо файл, достаточно передать его в параметрах команде nano. Если такого файла не существует, будет создан новый. Например:

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

Для перемещения по тексту вы можете использовать мышку, стрелки на клавиатуре или специальные сочетания клавиш. В программе нет никакого меню, а все действия выполняются именно с помощью горячих клавиш. Возможно, некоторые из них будет не просто запомнить с первого раза,но после нескольких раз практики все получится. Тем более, что все самое необходимое отображается внизу экрана. Для активации того или иного действия достаточно нажать Ctrl и указанную букву. Клавиша Shift нигде не используется.
Основные комбинации клавиш
А теперь рассмотрим подробнее какие сочетания клавиш предлагает текстовый редактор nano linux. Чтобы открыть более подробную информацию о сочетаниях клавиш нажмите Ctrl+G:

Когда завершите работу с редактором и сохраните изменения нажмите Ctrl+X для выхода, если файл не был сохранен, программа предложит это сделать:

Перед тем как закрывать программу, нужно сохранить изменения в файл на диске. Для этого используйте сочетание Ctrl+O. Если вы запустили nano без параметров, вам нужно будет ввести имя файла.

Вы можете вставить содержимое другого файла на позицию курсора, для этого нажмите Ctrl+R и введите имя целевого файла:

Чтобы отменить последнее действие нажмите Alt+U. А повторить последнее действие еще раз вы можете с помощью Alt+E. Для поиска по строке или регулярному выражению нажмите Ctrl+W, вы можете использовать стандартные регулярные выражения синтаксиса perl:

С помощью сочетания клавиш Alt+R вы можете использовать поиск и замену:

Мы рассмотрели основные комбинации клавиш, которые используются для управления функциями редактора. Возможно, они покажутся вам сложными, но для начала достаточно знать только Ctrl+O и Ctrl+X, все остальное придет потом.
Сочетания клавиш для навигации
Давайте теперь рассмотрим горячие клавиши для быстрого перемещения по тексту в редакторе nano. Конечно, вы всегда можете использовать уже привычные клавиши PageUP, PageDown, Home, End и клавиши со стрелками, но это не совсем удобно учитывая, что у nano есть свои сочетания. Хотя они не настолько практичны как у Vim, но вы все же можете их использовать.
Для перемещения курсора вперед или назад нажимайте Ctrl+F и Ctrl+B, а для перемещения вверх/вниз по одной строке применяйте Ctrl+P и Ctrl+N.
Для перемещения в начало строки используйте Ctrl+A, а в конец — Ctrl+E. Также существуют сочетания для перемещения по страницах, Ctrl+V перемещает на страницу вниз, а Ctrl+Y — на страницу вверх.
Но это еще не все. Вы можете перемещаться по словам с помощью Ctrl+Пробел и Alt+Пробел, а также нажать Ctrl+_ и ввести номер нужной строки, а через запятую даже символ.
Чтобы посмотреть где сейчас находится курсор, нажмите Ctrl+C.
Копирование вырезание и вставка
Вы можете копировать текст с помощью мышки, но это только если вы работаете в графическом интерфейсе. Но если вы используете программу в чистом терминале, такой вариант не подойдет. Для таких случаев у nano есть собственные инструменты выделения и копирования.
Чтобы выделить участок текста нажмите Ctrl+^ переместите курсор к концу нужного участка и опять нажмите это же сочетание клавиш. Весь текст между начальной и конечной точкой не включая позицию курсора будет выделен и вы можете его скопировать или вырезать.
Для копирования выделенного текста нажмите Alt+^, а чтобы его вырезать — Ctrl+K. Чтобы вставить вырезанный текст переместите курсор на нужную позицию и нажмите Ctrl+U.
Чтобы вырезать всю строку текста достаточно нажать Ctrl+K, иногда это очень удобно при редактировании файлов конфигурации.
Несколько файлов в Nano
Не все знают, но текстовый редактор nano linux поддерживает открытие нескольких файлов. Вы не можете открыть их на одном экране, но зато можете свободного переключаться между редактированием каждого из них.
Для этого передайте утилите при запуске несколько файлов:
nano файл1 файл2
Выводы
В этой статье мы рассмотрели как использовать редактор nano linux. Несмотря на то, что он очень прост и рассчитан в первую очередь на новичков в Linux, здесь есть огромное количество возможностей, которые делают программу очень мощным редактором. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение небольшое сравнение nano и vim:
Как пользоваться текстовым редактором vim
Опытные пользователи Linux часто используют терминал, потому что так можно намного быстрее выполнить необходимые действия. Во время настройки системы нам довольно часто приходится редактировать различные файлы. Это могут быть настройки программ, какие-нибудь данные или обычные текстовые файлы.
В операционной системе Linux есть несколько текстовых редакторов, которые работают в терминале. Чаще всего новички используют редактор nano, но если вы заметили на нашем сайте во всех статьях используется текстовый редактор vi. Nano неудобный, и недостаточно функционален. Я сознательно не пишу в своих статьях о nano. Есть намного лучший текстовый редактор, это редактор vi. Здесь поддерживается быстрое перемещение по тексту, удобное редактирование, команды для изменения настроек работы, выполнение команд терминала из редактора, а также плагины для расширения функциональности. Но он немного сложный для новичков и очень непривычный.
В этой статье мы рассмотрим как пользоваться vim, рассмотрим основы работы с этим редактором, а также его основные команды.
Редактирование файла в Vim
Я рекомендую использовать редактор Vim практически во всех статьях на этом сайте, где надо что-то отредактировать. Но у многих пользователей возникают проблемы при использовании этого редактора. Эта статья написана чтобы помочь их решить. Но если вам быстро надо отредактировать файл и вы не хотите читать всё, в этом разделе я сделал небольшую инструкцию как внести изменения и выйти. Для того чтобы открыть файл выполните:
Затем нажмите i, для того чтобы перейти в режим редактирования. Здесь вы можете редактировать файл так же, как и в nano. После того как завершите нажмите Esc, чтобы перейти в командный режим и наберите :wq. Записать и выйти. Все, готово.
Минимальные основы
На данный момент существует две версии редактора — vi и vim. Vim расшифровывается как Vi Improved, улучшенный vi. Это новая версия, которая принесла очень много улучшений. В большинстве современных дистрибутивов используется именно она. Поэтому если я буду писать vi, это значит, что я предполагаю использование vim.
Текстовый редактор Vim может работать в двух режимах. Это и есть его главная особенность. Первый режим, который используется по умолчанию при открытии редактора — это командный. В этом режиме вы можете вводить команды vi, а также использовать символьные клавиши для управления редактором. Второй режим — обычное редактирование текста, он работает так же как и редактирование текста в nano. Для переключения в командный режим используется клавиша Esc. Для переключения в режим редактирования — клавиша i. Если вас интересует только как в редакторе vi сохранить и выйти, листайте вниз, но если вы хотите узнать как пользоваться текстовым редактором vim, эта статья для вас.
Перед тем как идти дальше я бы посоветовал вам пройти курс обучения встроенный в редакторе. Выполнение всех обучающих заданий займет 25-30 минут. Это поможет вам закрепить все знания полученные из этой статьи на практике. Дело в том, что команд и сочетаний клавиш у vim очень много и запомнить их все без практики невозможно. Для запуска обучения наберите:
Но делать это сейчас необязательно, в этой статье есть вся необходимая базовая информация и после ее прочтения вы уже сможете уверенно пользоваться vim, а обучение пройти чуть позже.
Как использовать редактор Vim
Начнем мы, как обычно с запуска программы, а также опций, которые ей можно передать. Синтаксис Vim очень прост:
$ vim опции имя_файла
$ vi опции имя_файла
Если в вашей системе установлен пакет vim, то команда vi будет ссылаться на исполняемый файл vim. В таком случае между этими командами нет разницы. Простой запуск vim без указания имени файла приведет к созданию пустого файла. А теперь давайте рассмотрим основные опции запуска:
- +номер — переместить курсор к указной строке после запуска.
- +/шаблон — выполнить поиск по шаблону и переместить курсор к первому вхождению
- «+команда» — выполнить команду после запуска программы
- -b — двоичный режим, для редактирования исполняемых файлов.
- -d — режим поиска различий в файлах, нужно указать несколько файлов для открытия.
- -g — графический режим.
- -n — не использовать автосохранение для восстановления файла при сбое.
- -R — режим только для чтения.
- -w — сохранить все действия в файл.
- -x — шифровать файл при записи.
- -C — режим совместимости с Vi.
Круто, правда? Но это только начало. Опции ничто по сравнению с командами редактора.
1. Перемещение курсора
В командном режиме вы можете перемещаться по редактируемому тексту и выполнять действия над ним с помощью буквенных клавиш. Именно этот режим открывается по умолчанию при старте редактора. Большинство команд состоят из одного символа, обычно буквы или знаки. Но многие команды принимают параметры. Например, в командах для перемещения курсора вы можете набрать цифру перед командой чтобы указать на сколько символов или строк надо переместится. Для начинающих может быть поначалу очень запутанно то, что в командном режиме символы интерпретируются как команды.
Для перемещения используются такие команды:
- h — на один символ влево;
- l — на один символ вправо;
- j — на одну строку вниз;
- k — на одну строку вверх;
- w — на слово вправо;
- b — на слово влево;
- H — перейти в низ экрана;
- G — перейти в конец файла;
- gg — перейти в начало файла;
- G — перейти к конкретной строке;
- . — перейти к последнему редактированию.
Можете запустить редактор и поэкспериментировать, чтобы было легче понять как это работает. Начните с h, l, j, k — многие пользователи используют их для перемещения по тексту не только в Vim, потому что это позволяет не открывать руки от клавиатуры. Если перед тем как нажать кнопку буквы нажать цифру, то эта команда будет повторена несколько раз. Например, 3j переведет курсор на три строки вверх.
Очень часто возникает необходимость перейти в начало строки или в её конец. Команды Vim могут с этим помочь. Используйте команду ^ для того чтобы перейти в начало строки или команду $ для перехода в конец строки. Обратите внимание, что для того чтобы набрать эти команды нужно зажать Shift и нажать 4 или 6.
2. Режим редактирования
Для переключения в режим редактирования используются такие команды:
- i — вставить текст с позиции курсора, символ под курсором будет заменен;
- I — вставить текст в начало строки;
- a — добавить текст начиная от позиции курсора;
- o — вставить новую строку после этой и начать редактирование;
- O — вставить новую строку перед этой и начать редактирование;
К этим командам тоже применимы символы повторения. Поэкспериментируйте, можно получить интересный и не совсем ожидаемый результат. Когда закончите редактирование, вы можете переключится обратно в командный режим нажав клавишу Esc.
3. Удаление символов и строк
Вы можете править текст не только в обычном режиме, но и в командном с помощью команд. Иногда это даже удобнее чем в режиме редактирования. Например, вы можете удалять символы. Для этого применяются такие команды:
- d — удалить символ;
- dd — удалить всю строку;
- D — удалить символы начиная от курсора и до конца строки.
Эти команды редактора vim работают немного по-другому после нажатия одной из них ничего не произойдет. Мы еще можем задать сколько раз нужно повторить команду, но также нужно указать количество символов, к которым она будет применена и направление, с помощью кнопок перемещения курсора. Это делается после нажатия команды. Например, для того чтобы удалить один символ справа наберите dl. Чтобы удалить два символа справа от курсора нажмите d3l, а чтобы удалить три строки вниз — d3j.
4. Замена символов
В командном режиме вы можете не только удалять символы, но и заменять их на другие. Для этого существуют две команды:
- r — заменить текущий символ;
- R — заменить несколько символов.
Первая команда позволяет заменить один символ и вернутся в командный режим. Вторая команда будет заменять все символы, пока вы не вернетесь в командный режим нажатием клавиши Esc:
5. Отмена и повтор действий
В обычных текстовых редакторах вы можете использовать Ctrl+Z для отмены последних действий. В редакторе Vim есть собственная история действий. Она доступна в командном режиме. Если вы хотите отменить последнее изменение, просто нажмите u. Обратите внимание, что каждое следующее нажатие этой кнопки будет отменять предыдущее изменение сделанное в командном режиме. Например, если вы удалили один символ командой d, то он будет восстановлен.
Однако, если вы переключитесь в режим редактирования и сделаете там много изменений, а потом вернетесь в командный режим, то все эти изменения будут рассматриваться как одно. Если вы случайно отменили что-то важное, то можете повторить действие, нажав Ctrl+r:
Вот некоторые команды для отмены и повтора действий:
- u — отменить последнее действие;
- U — отменить последнее действие в текущей строке;
- . — повторить последнее действие;
- Ctrl+r — отменить отмену последнего действия.
6. Командная строка Vim
Командная строка Vim запускается в командном режиме нажатием двоеточия — «:«. Здесь доступны команды для сохранения файла и выхода из редактора, настройки внешнего вида и взаимодействия с внешней оболочкой. Рассмотрим наиболее часто используемые команды редактора vim:
- :w — сохранить файл;
- :q — закрыть редактор;
- :q! — закрыть редактор без сохранения;
- :e файл — прочитать содержимое файла в позицию курсора;
- :r файл — вставить содержимое файла в следующую строку;
- :r! — выполнить команду оболочки и вставить ответ в редактор;
- :set переменная=значение — установить значение переменной, например, tabstop=4, или set number, с помощью этой команды можно управлять многими аспектами работы vim.
- :buffers — посмотреть открытые файлы;
- :reg — посмотреть содержимое буферов обмена.
Со всеми основами разобрались, и вы теперь использование vim не будет казаться вам таким сложным. Но это еще далеко не все, этот мощный редактор может еще очень многое. Дальше мы рассмотрим несколько примеров использования vim, чтобы вам было легче справиться с новой программой.
7. Выделение и буфер обмена
Текстовый редактор Vim поддерживает выделение текста без использования мышки. Поэтому вы можете копировать и вставлять текст даже в TTY окружениях, без графического интерфейса. Нажмите v когда вы находитесь в командном режиме для перехода в режим выделения. Затем вы можете использовать кнопки перемещения курсора h, j, k, l для выделения нужных символов или строк:

Теперь вы можете выполнять какие-либо действия с выделенным текстом. Например, можно его удалить, нажав кнопку d. Для того чтобы сбросить выделение нажмите кнопку Esc. Это ещё не всё. У Vim есть свой буфер обмена, который можно использовать для копирования и вставки текста. Этот буфер обмена состоит из нескольких регистров. Если не задать иное, то все команды работают с буфером обмена по умолчанию. Вот основные команды для копирования и вставки текста:
- y — скопировать в буфер обмена;
- yy or Y — скопировать строку в буфер обмена;
- x — вырезать в буфер обмена;
- p — вставить из буфера обмена.
Команды для копирования и вырезания работают аналогично командам для удаления текста. Вы можете задать количество символов и направление или же просто выделить текст. Обратите внимание, что у каждого запущенного экземпляра Vim свой отдельный регистр буфера обмена, и он не связан с системным буфером обмена. Поэтому вы не сможете скопировать текст из одной программы в другую без дополнительных действий или настроек.
Если вы хотите скопировать данные в системный буфер обмена, сначала необходимо убедится что Vim, установленный в вашей системе это поддерживает. Для этого выполните команду:
vim —version | grep clip

Если эта возможность поддерживается вы увидите +clipboard или +xterm_clipboard. Давайте вернемся к регистрам. В Vim есть несколько регистров буфера обмена и один из них связан с системным буфером обмена. Это регистр «+. Вы можете вывести все регистры и их содержимое с помощью команды:

Регистр с именем «» это тот самый буфер обмена, который используется по умолчанию. Если вы хотите скопировать текст в системный регистр, необходимо набрать имя регистра перед командой копирования. Например, нажмите «+ а затем y. Обратите внимание, что нужно использовать клавишу Shift для получения нужного символа. Надо нажать Shift+’ и Shift+=.
Как видите, это довольно сложно, особенно если вы не привыкли использовать эти клавиши. Есть более простой способ. Вы можете скопировать текст в регистр по умолчанию, а затем скопировать его оттуда в системный буфер обмена с помощью командной строки Vim. Для этого скопируйте текст как обычно, а затем используйте такую команду:
После этого вы сможете вставить текст в любом месте операционной системы.
8. Поиск и замена в Vim
Довольно часто нам нужно найти определенную последовательность в тексте. Текстовый редактор Vim умеет это делать. Во-первых, если нужно найти символ в строке, нажмите f и наберите нужный символ, курсор будет перемещен к его позиции.
Для поиска по всему файлу используйте команду /. После нее нужно ввести слово, которое нужно найти. Для поиска следующего вхождения используйте n, для предыдущего — N.
Вот основные команды для поиска:
- f — найти один символ;
- / — искать несколько символов;
- n — найти следующее вхождение;
- N — найти предыдущее вхождение.
Для замены будет использоваться немного другая конструкция:
Например, давайте заменим все вхождения слова Alice на Robert:

Двоеточие запускает командную оболочку с командой s для замены. Символ % означает что обрабатывать нужно весь файл, а g значит, что нужно обработать все найденные строки, а не только первую. Чтобы программа спрашивала перед каждой заменой можно добавить в конец строки опцию c.
9. Редактирование нескольких файлов
Чтобы открыть несколько файлов, просто передайте их в параметры при запуске программы:
vim /etc/default/grub /etc/default/cron
Редактор vim linux откроет первый файл, для переключения ко второму используйте команду :n, чтобы вернутся назад :N. С помощью команды :buffers вы можете посмотреть все открытые файлы, а командой :buffer 1 переключится на первый файл.

10. Кириллица в Vim
Кириллица в Vim работает превосходно. Но есть одно но, когда включена кириллица в системе, все команды vim не работают, им и не нужно работать, они же не приспособлены для кириллицы.
Но переключать каждый раз раскладку, когда работаете в командном режиме тоже не очень удобно, поэтому открываем файл ~/.vimrc и добавляем туда такие строки:
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
Теперь раскладка клавиатуры в командном режиме переключается по Ctrl+^ и все команды работают.
Выводы
В этой статье мы рассмотрели как пользоваться текстовым редактором vim. Это еще далеко не все его возможности, но теперь вы можете уверенно обращаться с редактором и забыть о nano. Более подробно о настройке Vim читайте тут. А вы уже пользуетесь Vim? Или другим редактором? Напишите в комментариях!