Гид по технологиям

ex — линейный редактор в Linux: руководство и шпаргалка

6 min read Редакторы Обновлено 06 Jan 2026
ex — линейный редактор в Linux: руководство
ex — линейный редактор в Linux: руководство

Женщина работает с редактором ex на ноутбуке

Что такое ex?

ex — это линейный редактор текста, созданный Биллом Джоем. Коротко: он редактирует файл строка за строкой, а не показывает весь экранный буфер. Линейный редактор обрабатывает одну строку за раз, принимает команды и может выводить результат печатью или на экран.

Определение в одну строку: линейный редактор — текстовый инструмент для поочерёдной работы со строками файла.

Важно: ex тесно связан с vi и впоследствии с vim — многие команды и синтаксис совпадают.

Исторический контекст и связь с vi и vim

Линейные редакторы появились в эпоху телетайпов и печатающих терминалов. Полноэкранные редакторы стали популярны позже, когда появились видео-терминалы и дисплеи. Тем не менее, ex продолжил существовать как полезный инструмент для автоматизации и редактирования в окружениях без GUI.

Ключевая связь: Bill Joy написал и ex, и раннюю версию vi. vi можно рассматривать как экранную надстройку над ex — поэтому многие команды одинаковы.

Как запустить ex в Linux

Запуск простой:

ex file

Это откроет редактор и покажет приглашение в виде двоеточия (:). Это похоже на командный режим vi.

Чтобы передать ex скрипт через стандартный ввод, используйте дефис как имя файла и перенаправление stdin:

ex - file < script

Это полезно для автоматизированных правок из скриптов.

Печать строк с помощью ex

Чтобы увидеть текущую строку, используйте команду :p.

Чтобы вывести номер текущей строки, используйте :=

Чтобы напечатать диапазон строк, укажите начальную и конечную строки через запятую. Пример: вывести строки с 3 по 6:

:3,6

Печать диапазона строк в ex

Совет: можно комбинировать относительные адреса, например .,+2 (текущая строка и две следующие) или $ для последней строки.

Редактирование строк с помощью ex

Вставка строки: используйте :insert или сокращённо :i, затем введите текст строки и завершите режим вставки точкой на отдельной строке:

:i
Новая строка текста
.

Удаление текущей строки: :delete или :d

Перемещение строки: :move или :m, указывая целевую позицию. Пример: переместить текущую строку после строки 10:

:m 10

Замечание: команды работают со строковыми адресами — можно указывать диапазоны, относительные смещения и метки.

Поиск и замена текста в ex

Главная сила ex — команды поиска и замены, похожие на sed. Базовый синтаксис замены одной строки:

s/old/new/

Чтобы заменить повсеместно по всему файлу, используйте приставку % и флаг g:

:%s/old/new/g

Примеры и полезные флаги:

  • g — глобально в строке (все вхождения).
  • c — подтверждать каждую замену (confirm).
  • i — игнорировать регистр (в зависимости от версии).

Пример: заменить “foo” на “bar” во всём файле с подтверждением:

:%s/foo/bar/gc

Поиск и замена в ex, показаны изменённые строки

Примечание о регулярных выражениях: синтаксис схож с тем, что использует sed и традиционный vi. Для сложных шаблонов сверяйтесь с документацией вашей версии ex/vi.

Переход в vim

Полноэкранный режим удобнее для интерактивной работы. Чтобы перейти из ex в экранный vi/vim-подобный режим, выполните:

:visual

После этого можно работать в привычном режиме экрана и вернуться к командному режиму при необходимости.

Когда ex полезен и когда лучше другой инструмент

Когда использовать ex:

  • Быстрая правка конфигурационного файла по SSH, когда нет удобного терминала.
  • Автоматические правки из скрипта (ex читает команды из stdin).
  • Сценарии, где нужен минимальный набор зависимостей.
  • Работа на старых или ограниченных системах без полноэкранной поддержки.

Когда ex не подходит:

  • Интерактивная правка больших участков кода — используйте vim, nano или GUI-редактор.
  • Когда удобнее видеть контекст и несколько файлов одновременно.

Альтернативы:

  • sed — для пакетных замен и потоковой обработки.
  • awk — для аналитической обработки строк и колонок.
  • ed — ещё более минималистичный линейный редактор.
  • vim/vi, nano — экранные редакторы для интерактивной работы.

Краткая шпаргалка (cheat sheet)

  • Открыть файл: ex file
  • Текущая строка: :p
  • Номер строки: :=
  • Диапазон: :3,6
  • Вставка: :i [текст] .
  • Удалить: :d
  • Переместить: :m <номер>
  • Поиск и замена в файле: :%s/old/new/g
  • Перейти в экранный режим: :visual

Дополнительный пример: заменить только в строках с 10 по 20:

:10,20s/old/new/g

Методология: быстрый рабочий поток для правки файла

  1. Откройте файл: ex file
  2. Посмотрите текущую область: используйте :p или диапазон :.,.+5
  3. Выполните пакетные изменения через :%s/…/../g или уточните диапазон
  4. Проверьте изменения печатью диапазонов
  5. Сохраните и выйдите (см. критерии приёмки)

Критерии приёмки

  • Изменения применены только в указанных строках или с подтверждением.
  • Файл синтаксически корректен (для конфигураций — проверить сервис).
  • Резервная копия создана, если изменения критичны.

Чек-листы по ролям

Системный администратор:

  • Сделать резервную копию файла: cp file file.bak
  • Открыть файл в ex: ex file
  • Выполнить массовую замену с подтверждением: :%s/old/new/gc
  • Проверить ключевые строки и перезапустить сервис при необходимости

Разработчик/скриптер:

  • Использовать ex в скриптах: ex - file < script
  • Тестировать на копии файла
  • Логировать изменения и применять idempotent-подход (повторное выполнение не должно ломать)

Обычный пользователь:

  • Использовать :p и := для ориентира
  • Для больших правок переключаться в :visual

Ментальные модели и эвристики

  • Думаете о строках, а не о экране: адресуйте изменения по номерам.
  • ex хорош для атомарных, локальных правок и автоматизации.
  • Для редактирования контекста (несколько строк вокруг) проще временно печатать диапазон.

Быстрый сравнительный обзор — что выбрать

  • ex — минималистично, подходит для линейных правок и скриптов.
  • sed — потоковые замены, незаменим в пайплайнах.
  • awk — преобразования и аналитика данных в строках.
  • vim — интерактивная и эффективная редактура кода.
  • nano — простой полноэкранный редактор для новичков.

Примеры использования в реальных задачах

  1. Быстрое удаление строки с конкретным текстом (с подтверждением):
:g/DELETE_THIS/d
  1. Пакетная нормализация пробелов в диапазоне:
:1,$s/  \+/ /g

(Экранируйте синтаксис в зависимости от оболочки)

Decision tree: когда использовать ex

flowchart TD
  A[Нужно отредактировать файл?] --> B{Есть ли полноэкранный терминал?}
  B -- Да --> C[Используйте vim или nano]
  B -- Нет --> D{Требуется автоматизация?}
  D -- Да --> E[Используйте ex в скрипте или sed]
  D -- Нет --> F[Используйте ex интерактивно]
  C --> G[Полноэкранный режим — больше контекста]
  E --> H[ex для команд, sed для потоковой обработки]

Важные замечания

  • Всегда делайте резервную копию перед массовыми изменениями.
  • Поведение команд может незначительно отличаться в разных реализациях (POSIX, nvi, vim в режиме ex).

Итоги

ex — простой и надёжный инструмент для редактирования строк и автоматизации правок в UNIX-подобных системах. Он не заменяет современные полноэкранные редакторы для повседневной интерактивной работы, но остаётся полезным при автоматизации и в ограниченных окружениях.

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

Важно: проверьте изменения и сохраняйте резервные копии перед критическими правками.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Плагины ChatGPT: что произошло и что дальше
Инструменты AI

Плагины ChatGPT: что произошло и что дальше

Выбор сечения провода: расчёт падения напряжения
Электрика

Выбор сечения провода: расчёт падения напряжения

Эмуляция Game Boy на Sony PSP — полная инструкция
Гейминг

Эмуляция Game Boy на Sony PSP — полная инструкция

Редактирование видео в HitFilm Express — руководство
Видеомонтаж

Редактирование видео в HitFilm Express — руководство

Удалённый рабочий стол не находит компьютер — исправления
Windows

Удалённый рабочий стол не находит компьютер — исправления

Персонализированные рекомендации на Android TV
Android TV

Персонализированные рекомендации на Android TV