🔖 Справочник: vi, nano и команды конвейера

⚡ Ядро урока

vi file        # открыть в vi: командный режим
i              # → режим вставки; Esc — назад в командный
:wq  :x  ZZ    # сохранить и выйти (три способа)
:w             # сохранить, остаться;  :q! — выйти БЕЗ сохранения
dd / yy / p / u  # удалить строку / копировать / вставить / отмена

nano file      # открыть в nano: сразу печатаем
Ctrl+O Enter   # сохранить;  Ctrl+X — выйти

df -h | grep -w / | awk '{print $5}' | sed 's/%//g' > /tmp/df

Новые команды этого урока

vi

Текстовый редактор с двумя режимами: командным и режимом вставки. Один из наиболее распространённых редакторов в UNIX-системах.

vi /tmp/file     # создать/открыть файл
i                # войти в режим вставки
Esc              # вернуться в командный режим
:wq              # сохранить и выйти
:q!              # выйти без сохранения

nano

Простой текстовый редактор в командной строке. Не требует изучения сложных комбинаций клавиш — режим редактирования активен сразу.

nano /tmp/file   # открыть файл
Ctrl+O Enter     # сохранить файл
Ctrl+X           # выйти из редактора

df — disk free

Отображает информацию о доступном дисковом пространстве на файловых системах.

df -h            # в человекочитаемом формате (КБ→МБ/ГБ)

grep

Поиск текстовых данных в файлах или выводе других команд. Имеет множество ключей для точной настройки поиска.

grep "pattern" filename.txt    # поиск в файле
ls -l | grep "file"            # поиск в выводе команды
grep -w / output.txt           # поиск целого слова (не части)
grep -i "root" /etc/passwd     # игнорировать регистр

Ключи grep

КлючДлинная формаЧто делает
-i--ignore-caseИгнорирует регистр символов при поиске
-v--invert-matchВыводит строки, НЕ содержащие совпадений
-w--word-regexpИщет только слова целиком, а не части слов
-r / -R--recursiveРекурсивный поиск в поддиректориях
-A N--after-context=NВыводит N строк после совпадения
-B N--before-context=NВыводит N строк перед совпадением
-C N--context=NВыводит N строк вокруг совпадения

awk

Утилита командной строки и язык программирования для обработки и анализа текстовых данных. Разбивает строки на поля-колонки и выполняет операции над ними.

awk '{print $5}' file.txt    # вывести 5-ю колонку
df -h | awk '{print $5}'     # 5-я колонка из df -h (% занятости)

sed — Stream Editor

Утилита для выполнения текстовых преобразований в потоках данных. Работает построчно. Чаще всего используется для поиска и замены текста.

sed 's/apple/orange/g' file.txt    # заменить все вхождения
sed 's/%//g'                       # удалить знак % (замена на пустую строку)
cat /etc/group | grep -w user2 | sed 's/user2/ivan/g'

Синтаксис sed 's/что/на_что/g': s — substitute (подмена); между слешами — «что» и «на что»; g — глобальная замена всех вхождений в строке, не только первого.

Ранее изученные команды

Команды из предыдущих занятий, активно используемые в этом уроке и ДЗ:

  • cat — вывести содержимое файла; в конвейере — подать файл на вход
  • wc — подсчёт строк (-l), слов (-w), символов (-m), байт (-c)
  • head — первые строки файла (head -n 9 или head -9)
  • tail — последние строки файла (tail -n 3 или tail -3)
  • echo — вывести строку в stdout; с >> — дозаписать в файл
  • ls — список объектов директории; ls -a — включая скрытые
💡 Памятка «как выйти из vi»: нажмите Esc (на всякий случай — дважды), затем :q! и Enter — выход без сохранения из любой ситуации. Это самый частый вопрос новичков в истории Stack Overflow.

→ Полный справочник Linux-команд