Добавить в корзинуПозвонить
Найти в Дзене
Герман Геншин

7 секретных опций Linux-терминала, которые скрывают даже эксперты — разблокируй уровень ПРО прямо сейчас!

В Linux-командах часто встречаются длинные списки параметров, обычно сокращённых до одной буквы. Все их запоминать сложно, но вот базовые флаги встречаются практически везде — именно они помогают мне быстро разбираться в новых утилитах и получать стабильный результат. Дальше я расскажу о самых часто используемых и универсальных опциях. Освоив их, вы будете уверенно работать с большинством программ в Linux, без боязни случайных ошибок и потери данных. Флаг --help (или короткие -h и -?, если поддерживаются) есть почти в любой современной, а иногда и в старой утилите. Он показывает наглядную подсказку с инструкциями и списком поддерживаемых опций. В некоторых случаях вывод практически повторяет содержимое man-страницы! В современных Linux-дистрибутивах (Ubuntu и других) поддержка --help есть почти у всех новых инструментов — bat, rg (ripgrep), ncdu, и часто работает как в длинном, так и в коротком варианте. GNU-утилиты тоже обычно понимают --help, но, например, ls и cd не всегда восприни
Оглавление

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

Дальше я расскажу о самых часто используемых и универсальных опциях. Освоив их, вы будете уверенно работать с большинством программ в Linux, без боязни случайных ошибок и потери данных.

--help и --version: мгновенная справка и версия программы

Флаг --help (или короткие -h и -?, если поддерживаются) есть почти в любой современной, а иногда и в старой утилите. Он показывает наглядную подсказку с инструкциями и списком поддерживаемых опций.

-2

В некоторых случаях вывод практически повторяет содержимое man-страницы!

В современных Linux-дистрибутивах (Ubuntu и других) поддержка --help есть почти у всех новых инструментов — bat, rg (ripgrep), ncdu, и часто работает как в длинном, так и в коротком варианте. GNU-утилиты тоже обычно понимают --help, но, например, ls и cd не всегда воспринимают -h как справку.

У ls флаг -h вовсе не про справку — с ним программа отображает размеры файлов в "человекочитаемом" виде (например, 1K вместо 1024).

Параметр --version (или -V) всегда где-то рядом: с его помощью узнаю, какая версия утилиты у меня сейчас. Например:

-3

Это помогает быстро проверить, какие функции доступны именно в вашей версии. Вывод, правда, зависит от программы: у ncdu, top, jq — всего одна строчка, которую можно легко обработать в скриптах:

-4

У GNU-программ (find, mkdir, sed) — строчек будет уже несколько: добавится лицензия и список авторов. А рекорд по подробности — у Vim: он распишет всё вплоть до мелких деталей сборки.

-5

Имейте в виду: не каждая команда (особенно старая или встроенная в shell) поддерживает --help и --version. Иногда работает только длинный вариант, а бывает — и вовсе ни одного. На macOS зачастую остаётся только man-страница.

--all: увидеть абсолютно всё!

Параметр --all (или -a) встречается у многих файловых команд — особенно если по умолчанию результат показывают не полностью. ls --all откроет скрытые файлы (с точкой в начале), du --all — подсчитает не только папки, но и файлы.

Команда which тоже понимает -a, но с иной логикой: стандартно она возвращает только первый найденный путь к программе в PATH:

-6

С -a покажет все совпадения в PATH:

-7

У ls есть похожая опция — --almost-all (-A), скрывающая только служебные точки . и ..

--force: никаких лишних вопросов

Все команды, способные затереть файлы, обычно спрашивают подтверждение. Например, если попытаться удалить защищённый файл через rm, утилита выведет запрос:

-8

С параметром --force (или -f) всё удаляется без единого вопроса:

-9

Всё происходит молча и без подтверждений. Та же логика у cp и mv: если указать --force, существующие файлы просто затрутся без предупреждения.

Важно: force — это не «режим суперсилы», он всего лишь убирает диалоги о подтверждении. Например, cp -f не сможет скопировать файлы, если у вас нет на них прав чтения.

--recursive: обработка всех подкаталогов

С флагом --recursive (или -R) команда затрагивает не только указанный каталог, но и всё, что в нём внутри, на любой глубине. Например, ls по умолчанию показывает только текущую папку:

-10

А с --recursive (-R) — охватит все вложенные папки и файлы:

-11

Рекурсия — главная фишка многих команд. rm с -rf убирает всё на своём пути (будь максимально осторожен!), grep ищет текст по всем подпапкам, а -r и -R в большинстве случаев равнозначны.

Не забывай: с рекурсией команда пройдётся по всей структуре папок до самого дна, так что на экране может появиться огромный поток данных. В некоторых инструментах можно ограничить глубину рекурсии — например, find позволяет использовать --maxdepth. В cp, rm, grep, ls такого ограничения нет.

Если не хочешь уходить вглубь — используй find с нужным уровнем вложенности.

--output: сохраняем результат туда, куда нужно

Многие программы умеют выводить результат не только в консоль, но сразу в файл. В таких случаях помогает флаг --output или -o — достаточно просто указать нужное имя для нового файла. Пример: компилятор gcc для C.

Например, можно скомпилировать program.c сразу в исполняемый файл с именем myprog, а не в стандартный a.out. Очень удобно, если работаете с множеством проектов.

Кстати, у df флаг --output немного иначе строит таблицу информации о файловых системах — там он просто переключает формат вывода.

--quiet и --verbose: настолько много (или мало) подробностей, сколько нужно

Некоторые команды забрасывают тебя потоками информации, другие, наоборот, слишком скупы. Флаги --quiet (-q) и --verbose (-v) позволяют настроить уровень детализации вывода — это очень удобно и для скриптов, и для поиска ошибок.

В grep параметры --quiet и --silent полностью убирают вывод, программа всего лишь возвращает код выхода (есть совпадение или нет). Аналогичные опции найдёшь у sed, diff, brew.

--verbose чаще встречается у компиляторов: например, gcc показывает массу диагностической информации о процессе сборки и среде:

-12

curl обычно просто выводит тело ответа, но с --verbose покажет заголовки и детали сетевого соединения.

Важно: иногда -v означает не verbose, а версию утилиты — всегда проверяйте справку непосредственно для вашей команды.

--ignore-case: ищем без оглядки на регистр

Почти все программы для поиска по тексту по умолчанию различают прописные и строчные буквы: для них "exit_status" и "EXIT_STATUS" — это разные строки.

-13

Если это неважно — добавьте --ignore-case и забудьте о разнице:

Похожие флаги есть у sort, uniq, locate. В find встречаются даже отдельные опции — типа -iname и -ipath, которые вовсе не различают регистр.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в: