Редактирование текстовых файлов в 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. В командной строке в директории ~/project введите:

    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 без сохранения изменений. Это критически важный навык, если вы допустили ошибку и хотите вернуться к последней сохраненной версии файла. Редактор vi с файлом test.txt должен оставаться открытым с предыдущего шага.

  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.

Введение в редактор nano

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

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

    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. Теперь сохраним файл. В nano сохранение называется Write Out. Нажмите Ctrl+O, чтобы начать запись. Вы увидите запрос имени файла. Текущее имя welcome.txt уже отображается, поэтому просто нажмите Enter для подтверждения и сохранения.

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

  4. Чтобы выйти из nano, нажмите Ctrl+X. Поскольку вы уже сохранили файл, nano немедленно закроется и вернет вас в командную строку. Если вы нажмете Ctrl+X до сохранения, nano спросит, нужно ли сохранить изменения; нажмите Y, а затем Enter для сохранения и выхода.

Сравнение 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.

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