ex — строчный редактор в Linux: что это и как пользоваться
Кратко: ex — это классический строчный текстовый редактор, предок vi и родственник Vim. Он полезен для быстрых правок и автоматизации в скриптах, особенно когда нужен редактор, работающий построчно.
Что такое ex?
ex — строчный редактор текста, написанный Биллом Джоем, одним из авторов оригинального vi и ключевым разработчиком BSD. Строчный редактор обрабатывает документ строка за строкой, а не целый экран буфера, как современные полноэкранные редакторы.
Коротко: строчный редактор — это редактор, в котором команды вводятся построчно, а не через интерфейс полного экрана. Он исторически возник для работы с печатающими терминалами (телетайпами), где нельзя было удобно просматривать весь файл на экране.
Важно: ex по-прежнему включён в большинство Unix-подобных систем и полезен для быстрого редактирования из скриптов или на серверах без графики.
Почему ex сохранился до наших дней
- Он компактен и есть в базовом наборе утилит почти на всех системах.
- Удобен для пакетной обработки и автоматизации через перенаправление ввода.
- Команды ex перекрываются с синтаксисом vi/Vim, поэтому знание ex помогает при работе с этими редакторами.
Факт: многие приёмы поиска и замены в ex выглядят как в sed и Vim, поэтому навык переносим.
Запуск ex на Linux
Запустить ex просто. Введите в командной строке:
ex fileВы увидите пустую строку с символом двоеточия (:). Это режим команд, аналогичный командному режиму vi.
Можно подать сценарий в ex через стандартный ввод. Формат:
ex - file < scriptТакой запуск часто используют для пакетного применения набора команд к файлу.
Вывод строк в ex
Чтобы узнать, где вы находитесь в файле, или просто посмотреть строки, используйте команды:
- :p — напечатать текущую строку.
- := — напечатать номер текущей строки.
- Диапазон строк: начальная,конечная. Например, чтобы вывести строки с 3 по 6:
:3,6Редактирование строк в ex
Добавить строку можно командой :insert или коротко :i, после которой вводится текст для вставки. Пример:
:i some textУдалить текущую строку: :delete или :d.
Переместить строку на другую позицию: :move или :m (задаётся целевой номер строки).
Примеры команд редактирования полезно комбинировать в скриптах для массовых правок.
Поиск и замена
Сильная сторона ex — команды поиска и замены, похожие на sed. Общая форма:
s/old/new/где old — искомый фрагмент, new — замена.
Чтобы выполнить замену по всему файлу, добавьте префикс процента (%) и суффикс /g для глобальной замены:
%s/old/new/gПодсказка: при работе с регулярными выражениями экранируйте символы, которые имеют специальное значение.
Переход в полноэкранный режим (Vim)
ex тесно связан с vi/Vim. Чтобы перейти в полноэкранный редактор из ex, используйте команду:
:visualЭто откроет интерфейс vi/Vim (если он доступен), где удобно делать интерактивные правки.
Когда ex подходит, а когда нет
Когда ex подходит:
- Нужны быстрые одноразовые правки на сервере без GUI.
- Автоматизация и пакетная обработка файлов (скрипты).
- Ограниченные ресурсы или минимальный набор утилит.
Когда ex не подходит:
- Интерактивная правка больших фрагментов кода — удобнее полноэкранный редактор.
- Требуются современные возможности подсветки синтаксиса, плагины и т. п.
Альтернативные подходы
- Vim/Neovim — полноэкранные потомки vi с расширенной экосистемой.
- sed — для пакетной обработки и простых преобразований строк в потоках.
- awk — для более сложной текстовой обработки и анализа полей.
- nano — простой полноэкранный редактор для быстрых локальных правок.
Выбор зависит от задачи: для автоматических замен в скриптах часто достаточно sed, а для интерактивной работы — Vim.
Эвристики и правила выбора
- Если вам нужно изменить буквально одну-две строки в удалённом файле без интерфейса — используйте ex.
- Если предполагается много интерактивной навигации и рефакторинга — перейдите в Vim.
- Для одноразовой массовой замены в потоке — sed быстрее и компактнее.
Чек-листы по ролям
Администратор сервера:
- Убедиться в наличии ex на целевой системе.
- Подготовить резервную копию файла перед массовыми правками.
- Использовать пакетный запуск: ex - file < script.
Разработчик:
- Использовать :visual для перехода в Vim при необходимости.
- Для шаблонных замен собирать тестовый набор изменений и прогонять их на копии.
SRE/DevOps:
- Автоматизировать тесты правок (см. раздел про тесты).
- Логировать изменения и хранить версии файлов.
Критерии приёмки
- Правки прошли на тестовом файле без ошибок.
- Резервная копия создана и может быть восстановлена.
- Изменения применены корректно ко всем ожидаемым строкам (ручная выборка или автоматическая проверка).
Мини‑методология: безопасная правка через ex
- Сделайте резервную копию: cp file file.bak
- Протестируйте команду в интерактивном режиме на небольшой части файла.
- Выполните пакетную операцию через скрипт: ex - file < script
- Проверьте результат: :%p или используйте стандартные утилиты (diff).
Простые тесты и критерии приёмки
Тест 1 — одиночная замена:
- Вход: файл с уникальной строкой «FOO».
- Команда: %s/FOO/BAR/g
- Ожидается: «FOO» заменено на «BAR» ровно в одном месте.
Тест 2 — диапазонная печать:
- Команда: :3,6
- Ожидается: вывод строк 3–6 без ошибок.
Краткий словарь (одна строка каждый)
- ex — строчный редактор текста, предок vi.
- :p — команда печати текущей строки.
- := — команда печати номера текущей строки.
- :i — вставка строки.
- :d — удаление строки.
- %s/old/new/g — глобальная замена в файле.
Совместимость и миграция
ex присутствует на большинстве Unix-подобных систем. В средах, где доступен Vim, многие команды ex работают идентично в режиме команд vi. Если вы переносите сценарии из ex в sed или наоборот, проверьте различия в синтаксисе регулярных выражений и поведении по умолчанию.
Мастер‑шпаргалка (частые команды)
ex file # открыть файл
ex - file < script # применить команды из script к file
:p # распечатать текущую строку
:= # распечатать номер текущей строки
:3,6 # распечатать строки с 3 по 6
:i some text # вставить строку
:d # удалить текущую строку
:m 10 # переместить текущую строку после строки 10
%s/old/new/g # заменить old на new во всём файле
:visual # перейти в полноэкранный редактор (vi/Vim)Риски и рекомендации по их снижению
- Риск: непреднамеренные массовые замены. Митигирование: сначала прогонять команды на копии файла.
- Риск: потеря данных при некорректных командах. Митигирование: всегда иметь резервные копии.
- Риск: различия в регулярных выражениях между инструментами. Митигирование: тестировать шаблоны в контролируемой среде.
Заключение
ex остаётся полезным инструментом для сценариев, где нужен компактный строчный редактор или когда доступен только минимальный набор утилит. Его команды тесно связаны с vi/Vim и sed, поэтому знание ex расширяет набор приёмов для работы с текстом в Unix-подобных системах.
Коротко: используйте ex для быстрых правок и автоматизации, а для интерактивной и масштабной работы переходите в Vim.

Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента