Редактирование текстовых файлов в Linux с помощью Vim и Nano

CompTIABeginner
Практиковаться сейчас

Введение

В этой практической работе вы приобретете базовые навыки, необходимые для работы с двумя ключевыми текстовыми редакторами в Linux: vi/vim и nano. Это самые распространенные инструменты редактирования в Linux-системах, каждый из которых имеет свои сильные стороны и области применения.

Вы начнете с редактора vi — мощного и повсеместно встречающегося инструмента в Unix-подобных системах. Вы научитесь создавать файлы, вводить текст в режиме вставки (Insert Mode), сохранять работу с помощью команд :w и :wq, перемещаться по тексту с помощью клавиш навигации, выполнять поиск и базовые операции редактирования, такие как удаление слов.

Во второй части работы вы познакомитесь с nano — более дружелюбным редактором, который идеально подходит для новичков. Вы изучите его интуитивно понятный интерфейс, освоите основные операции и поймете, в каких ситуациях стоит предпочесть nano вместо vim.

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

Создание файла и ввод текста в режиме вставки

На этом этапе вы научитесь использовать редактор vi для создания нового текстового файла и ввода данных. vi (и его современная версия vim) — это мощный текстовый редактор, доступный практически в любой Unix-подобной операционной системе. Он работает в разных режимах, два основных из которых — нормальный режим (Normal Mode) для команд и режим вставки (Insert Mode) для набора текста.

Для начала убедимся, что вы находитесь в правильном рабочем каталоге. Вся работа будет выполняться в папке ~/project.

  1. Откройте терминал. В командной строке должно быть указано, что вы находитесь в каталоге project. Вы можете проверить полный путь с помощью команды pwd (print working directory).

    pwd

    Вы должны увидеть следующий вывод, подтверждающий ваше местоположение:

    /home/labex/project
    Терминал, показывающий текущий каталог
  2. Теперь запустите редактор vi и создайте новый файл с именем test.txt. После выполнения этой команды vi откроется и займет все окно терминала.

    vi test.txt

    Экран терминала очистится, и вы увидите колонку тильд (~) с левой стороны. Они обозначают пустые строки. В нижней части экрана будет отображаться имя файла "test.txt" [New File]. Сейчас вы находитесь в нормальном режиме.

  3. Чтобы начать печатать текст, необходимо переключиться в режим вставки. Нажмите клавишу i на клавиатуре.

    i

    Обратите внимание, что внизу экрана появилась надпись -- INSERT --. Это подтверждает, что вы перешли в режим вставки и теперь можете вводить текст в файл.

  4. Введите следующее предложение:

    Now is the time for all good men to come to the aid of their country.

    Редактор vi с введенным текстом в режиме вставки

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

Сохранение и выход из файла с помощью :w и :wq

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

  1. Чтобы переключиться из режима вставки обратно в нормальный режим, нажмите клавишу Esc.

    Esc

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

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

    Введите следующую последовательность и нажмите Enter:

    :w

    После нажатия Enter редактор vi запишет содержимое буфера в файл test.txt. Внизу появится подтверждающее сообщение, похожее на это:

    "test.txt" [New] 1L, 79C written

    Это сообщение подтверждает, что файл test.txt был сохранен и содержит 1 строку и 79 символов.

  3. Наконец, чтобы выйти из vi, можно использовать команду :q (quit). Однако чаще используется команда :wq, которая объединяет сохранение и выход в одно действие. Убедившись, что вы находитесь в нормальном режиме, введите следующее и нажмите Enter:

    :wq

    Эта команда сохранит последние изменения и закроет vi, вернув вас к командной оболочке в терминале. Теперь вы снова увидите привычное приглашение командной строки, а файл test.txt останется сохраненным в каталоге ~/project.

Навигация и поиск текста с помощью gg, h, j, k, l и /

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

  1. Сначала снова откройте файл test.txt. Введите в терминале следующую команду:

    vi test.txt

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

  2. Чтобы гарантированно переместить курсор в самое начало файла, используйте команду gg. Находясь в нормальном режиме (нажмите Esc, если не уверены), введите gg.

    gg

    Курсор мгновенно переместится к первому символу первой строки (в нашем случае это буква 'N').

  3. Основной способ перемещения курсора в vi — использование клавиш h, j, k и l. Это базовый навык для любого пользователя vi.

    • h — перемещение курсора на один символ влево.
    • l — перемещение курсора на один символ вправо.
    • j — перемещение курсора на одну строку вниз.
    • k — перемещение курсора на одну строку вверх.

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

  4. Теперь попробуем найти текст. Команда / используется для поиска вперед по файлу. Чтобы найти все вхождения буквы 'a', выполните следующие действия:
    a. Убедитесь, что вы в нормальном режиме (нажмите Esc).
    b. Введите /, а затем символ, который хотите найти (в данном случае a). После этого нажмите Enter.

    /a

    Курсор перепрыгнет к первой букве 'a', которую найдет после текущей позиции.

    c. Чтобы найти следующее вхождение того же символа, просто нажмите клавишу n (от слова "next" — следующий).

    n

    Нажмите n несколько раз, чтобы пройтись по всем буквам 'a' в файле.

Вы освоили основы навигации и поиска. На следующем этапе вы научитесь удалять текст.

Удаление слова с помощью dw и выход без сохранения через :q

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

  1. Сначала переместим курсор к слову, которое хотим удалить. Убедитесь, что вы находитесь в нормальном режиме (нажмите Esc). Используйте клавиши h и l, чтобы установить курсор на первую букву слова time.

  2. Когда курсор окажется на букве t в слове time, введите команду dw. Эта команда расшифровывается как "delete word" (удалить слово).

    dw

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

  3. Вы изменили файл в буфере редактора. Представим, что это удаление было ошибкой. Вместо того чтобы сохранять испорченную версию, мы выйдем, отменив изменения. Для этого используется команда :q!. Буква q означает "quit" (выход), а восклицательный знак ! принудительно выполняет действие, игнорируя несохраненные правки.

    a. Убедитесь, что вы в нормальном режиме (нажмите Esc).
    b. Введите следующую команду и нажмите Enter:

    :q!

    Эта команда немедленно закроет vi и вернет вас в терминал. Поскольку вы использовали :q!, удаление слова time не было сохранено в файле test.txt. Если вы снова откроете файл, слово time будет на месте.

Запуск интерактивного учебника vimtutor для дальнейшей практики

На этом этапе вы познакомитесь с vimtutor — интерактивным руководством, созданным для практического обучения навыкам vi/vim. В этой лабораторной работе мы разобрали самые основы, но vimtutor предлагает полноценный курс, который крайне рекомендуется всем новичкам.

  1. Вы должны находиться в командной строке в каталоге ~/project. Чтобы запустить учебник, просто введите команду vimtutor и нажмите Enter.

    vimtutor
  2. Эта команда открывает vi со специальным обучающим файлом. Сам файл содержит все необходимые инструкции. Вы будете читать текст и сразу же выполнять описанные команды прямо в этом файле. Это безопасный и эффективный способ обучения, так как вы тренируетесь на временной копии документа.

    Учебник разбит на уроки, и его прохождение обычно занимает около 25–30 минут. Вы можете двигаться в своем темпе.

  3. Когда вы закончите обучение (или если захотите прервать его в любой момент), вы можете выйти так же, как из обычной сессии vi. Поскольку сохранять изменения в учебном файле не нужно, лучше всего использовать команду :q!.

    a. Нажмите Esc, чтобы перейти в нормальный режим.
    b. Введите :q! и нажмите Enter.

    :q!

На этом практическая часть работы с vi завершена. Выполнив эти шаги, вы освоили базовые навыки создания, редактирования, сохранения и навигации в редакторе vi.

Знакомство с редактором nano

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

  1. Сначала создадим новый файл с помощью nano. В терминале введите следующую команду:

    nano welcome.txt

    Откроется редактор nano с пустым файлом. Обратите внимание на меню внизу, где перечислены доступные функции.

  2. В отличие от vi, в nano можно сразу начинать печатать без переключения режимов. Скопируйте и вставьте следующий текст:

    Интерфейс редактора nano с подсказками внизу
    Welcome to Linux Text Editing!
    
    This file was created using the nano editor.
    Nano is beginner-friendly and intuitive.
    
    Key advantages of nano:
    - No modes to switch between
    - Shortcuts displayed at bottom
    - Easy to learn and use
    - Perfect for quick edits
  3. Теперь сохраним файл. Используйте функцию сохранения (Write Out). Появится запрос имени файла. Текущее имя welcome.txt уже подставлено. Нажмите Enter, чтобы подтвердить и сохранить файл.

    Внизу появится сообщение о том, что файл успешно записан, с указанием количества строк.

  4. Чтобы выйти из nano, используйте функцию выхода (Exit). Так как вы уже сохранили файл, nano закроется мгновенно, и вы вернетесь в командную строку.

Сравнение nano и vi/vim: когда какой редактор использовать

На заключительном этапе вы узнаете об основных различиях между nano и vi/vim и поймете, в каких ситуациях лучше использовать каждый из них. Мы создадим файл сравнения, используя оба редактора.

  1. Сначала создадим файл сравнения в nano:

    nano editor_comparison.txt
  2. Введите в nano следующий текст:

    TEXT EDITOR COMPARISON: nano vs vi/vim
    
    NANO EDITOR:
    Pros:
    - Beginner-friendly interface
    - No modes to learn
    - Shortcuts displayed on screen
    - Immediate text input
    - Good for quick edits and simple tasks
    
    Cons:
    - Limited advanced features
    - Less efficient for complex editing
    - Not available on all systems
  3. Сохраните файл и выйдите из nano.

  4. Теперь откроем этот же файл в vi, чтобы добавить информацию:

    vi editor_comparison.txt
  5. Перейдите в конец файла, нажав G (заглавная G), затем нажмите o, чтобы создать новую строку и перейти в режим вставки. Добавьте следующий текст:

    VI/VIM EDITOR:
    Pros:
    - Extremely powerful and feature-rich
    - Available on virtually all Unix/Linux systems
    - Highly efficient once mastered
    - Excellent for programming and complex editing
    - Extensive customization options
    
    Cons:
    - Steep learning curve
    - Modal interface can be confusing for beginners
    - Requires memorizing many commands
  6. Нажмите Esc для возврата в нормальный режим, затем сохраните изменения и выйдите с помощью :wq.

  7. Посмотрим на итоговый файл:

    cat editor_comparison.txt

    Вы увидите полный текст, части которого были добавлены в разных редакторах.

Когда использовать каждый редактор:

  • Используйте nano, если:

    • Вы новичок в редактировании текста в Linux.
    • Вам нужно внести быстрые и простые правки.
    • Вы изредка правите конфигурационные файлы.
    • Вы предпочитаете простой и понятный интерфейс.
  • Используйте vi/vim, если:

    • Вы много программируете или работаете с большими объемами текста.
    • Вы работаете на удаленных серверах (vi есть везде).
    • Вам нужны продвинутые функции: макросы, плагины или сложный поиск с заменой.
    • Вам важна скорость и эффективность работы (после того как вы выучите команды).

Оба редактора являются ценными инструментами в арсенале пользователя Linux, и знание обоих дает вам гибкость в любых ситуациях.

Резюме

В ходе этой практической работы вы научились работать с двумя основными текстовыми редакторами в Linux: vi/vim и nano.

Работая с vi/vim, вы освоили фундаментальные концепции модального редактирования, научились переключаться между нормальным режимом и режимом вставки. Вы попрактиковались в создании файлов, вводе текста, сохранении с помощью :w и :wq, навигации клавишами (h, j, k, l), поиске через /, редактировании командой dw и выходе без сохранения через :q!. Также вы узнали о существовании интерактивного учебника vimtutor.

Работая с nano, вы познакомились с более простым подходом к редактированию. Вы научились создавать и изменять файлы, не беспокоясь о режимах, используя интуитивно понятный интерфейс с подсказками внизу экрана, и освоили базовые операции сохранения и выхода.

Основные выводы:

  • nano идеально подходит для новичков и быстрых правок благодаря наглядному интерфейсу.
  • vi/vim — более мощный и эффективный инструмент для сложных задач, но он требует времени на обучение.
  • Оба редактора полезны: nano — за простоту, vim — за мощь и повсеместную доступность.
  • Понимание того, когда использовать каждый из них, сделает вашу работу в Linux более эффективной.

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