📖 Повторение: vi, nano и конвейеры

К оглавлению урока

⚡ Главное за 1 минуту

  • vi: открыть — vi файл; вставка — i; команды — Esc; сохранить и выйти — :wq; выйти без сохранения — :q!
  • nano: открыть — nano файл; сохранить — Ctrl+O; выйти — Ctrl+X
  • Конвейер ДЗ 4: df -h | grep -w / | awk '{print $5}' | sed 's/%//g' > /tmp/file.txt

Зачем нужны текстовые редакторы в терминале

На удалённых серверах нет графического интерфейса — только командная строка. Редакторы vi и nano позволяют создавать и редактировать файлы прямо в терминале: конфиги, скрипты, ключи SSH. Владение хотя бы одним из них — обязательный навык для работы с Linux-сервером.

Текстовый редактор vi

vi (и его улучшенная версия vim) установлен практически везде — в Docker-контейнерах, минимальных образах, встроенных системах. Именно поэтому vi изучают первым.

Два режима vi

РежимКак войтиЧто можно делать
КомандныйСтартовый режим при открытии; Esc — из режима вставкиНавигация, удаление, копирование, ввод команд :
Вставкиi — перед курсором; a — после курсораНабор и редактирование текста

Основные команды vi (ответы на вопросы сессии)

КомандаРежимЧто делает
vi файлтерминалОткрыть файл (создать, если не существует)
iкомандныйПерейти в режим вставки — ответ на вопрос «как войти в режим ввода текста»
EscвставкиВернуться в командный режим — ответ на вопрос «как выйти из режима ввода текста»
:wqкомандныйСохранить и выйти (аналоги: :x, ZZ)
:wкомандныйСохранить, не выходя
:q!командныйВыйти без сохранения (спасение, если всё испортили)
ddкомандныйУдалить текущую строку
uкомандныйОтменить последнее действие

Полный справочник vi — в справочнике занятия 06.

Текстовый редактор nano

nano проще vi: нет переключения режимов, все команды видны внизу экрана. Достаточно знать два сочетания:

ДействиеСочетание клавиш
Открыть файлnano файл
СохранитьCtrl+O, затем Enter
ВыйтиCtrl+X

Повторение: конвейеры из занятия 06

Ключевой пример — конвейер из лекции, который использовался в ДЗ 4:

df -h | grep -w / | awk '{print $5}' | sed 's/%//g' > /tmp/df
  • df -h — информация о дисках в человекочитаемом формате
  • grep -w / — строка только с корневым разделом (-w — слово целиком, не любой путь со слешем)
  • awk '{print $5}' — пятый столбец (процент заполнения)
  • sed 's/%//g' — убрать знак процента из строки

Краткое повторение grep

КлючЧто делает
grep слово файлСтроки, содержащие слово
-wСовпадение слова целиком (не часть другого слова)
-vИнвертировать — строки БЕЗ слова
-iБез учёта регистра
-oТолько совпадение, не вся строка (осторожно — выводит каждое совпадение)

Краткое повторение awk

ПримерЧто делает
awk '{print $1}'Первый столбец (разделитель — пробел/TAB)
awk '{print $1, $4}'Первый и четвёртый столбцы
awk -F: '{print $2}'Второй столбец с разделителем : (для /etc/group, /etc/passwd)

Краткое повторение sed

ПримерЧто делает
sed 's/что/на_что/'Заменить первое вхождение в каждой строке
sed 's/что/на_что/g'Заменить все вхождения (g — global)
sed -i 's/что/на_что/g' файлИзменить файл напрямую (без -i только выводит на экран)
sed 's/^/Текст: /'Добавить текст в начало каждой строки (^ — якорь начала строки)