В Linux-командах часто встречаются длинные списки параметров, обычно сокращённых до одной буквы. Все их запоминать сложно, но вот базовые флаги встречаются практически везде — именно они помогают мне быстро разбираться в новых утилитах и получать стабильный результат.
Дальше я расскажу о самых часто используемых и универсальных опциях. Освоив их, вы будете уверенно работать с большинством программ в Linux, без боязни случайных ошибок и потери данных.
--help и --version: мгновенная справка и версия программы
Флаг --help (или короткие -h и -?, если поддерживаются) есть почти в любой современной, а иногда и в старой утилите. Он показывает наглядную подсказку с инструкциями и списком поддерживаемых опций.
В некоторых случаях вывод практически повторяет содержимое man-страницы!
В современных Linux-дистрибутивах (Ubuntu и других) поддержка --help есть почти у всех новых инструментов — bat, rg (ripgrep), ncdu, и часто работает как в длинном, так и в коротком варианте. GNU-утилиты тоже обычно понимают --help, но, например, ls и cd не всегда воспринимают -h как справку.
У ls флаг -h вовсе не про справку — с ним программа отображает размеры файлов в "человекочитаемом" виде (например, 1K вместо 1024).
Параметр --version (или -V) всегда где-то рядом: с его помощью узнаю, какая версия утилиты у меня сейчас. Например:
Это помогает быстро проверить, какие функции доступны именно в вашей версии. Вывод, правда, зависит от программы: у ncdu, top, jq — всего одна строчка, которую можно легко обработать в скриптах:
У GNU-программ (find, mkdir, sed) — строчек будет уже несколько: добавится лицензия и список авторов. А рекорд по подробности — у Vim: он распишет всё вплоть до мелких деталей сборки.
Имейте в виду: не каждая команда (особенно старая или встроенная в shell) поддерживает --help и --version. Иногда работает только длинный вариант, а бывает — и вовсе ни одного. На macOS зачастую остаётся только man-страница.
--all: увидеть абсолютно всё!
Параметр --all (или -a) встречается у многих файловых команд — особенно если по умолчанию результат показывают не полностью. ls --all откроет скрытые файлы (с точкой в начале), du --all — подсчитает не только папки, но и файлы.
Команда which тоже понимает -a, но с иной логикой: стандартно она возвращает только первый найденный путь к программе в PATH:
С -a покажет все совпадения в PATH:
У ls есть похожая опция — --almost-all (-A), скрывающая только служебные точки . и ..
--force: никаких лишних вопросов
Все команды, способные затереть файлы, обычно спрашивают подтверждение. Например, если попытаться удалить защищённый файл через rm, утилита выведет запрос:
С параметром --force (или -f) всё удаляется без единого вопроса:
Всё происходит молча и без подтверждений. Та же логика у cp и mv: если указать --force, существующие файлы просто затрутся без предупреждения.
Важно: force — это не «режим суперсилы», он всего лишь убирает диалоги о подтверждении. Например, cp -f не сможет скопировать файлы, если у вас нет на них прав чтения.
--recursive: обработка всех подкаталогов
С флагом --recursive (или -R) команда затрагивает не только указанный каталог, но и всё, что в нём внутри, на любой глубине. Например, ls по умолчанию показывает только текущую папку:
А с --recursive (-R) — охватит все вложенные папки и файлы:
Рекурсия — главная фишка многих команд. 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 показывает массу диагностической информации о процессе сборки и среде:
curl обычно просто выводит тело ответа, но с --verbose покажет заголовки и детали сетевого соединения.
Важно: иногда -v означает не verbose, а версию утилиты — всегда проверяйте справку непосредственно для вашей команды.
--ignore-case: ищем без оглядки на регистр
Почти все программы для поиска по тексту по умолчанию различают прописные и строчные буквы: для них "exit_status" и "EXIT_STATUS" — это разные строки.
Если это неважно — добавьте --ignore-case и забудьте о разнице:
Похожие флаги есть у sort, uniq, locate. В find встречаются даже отдельные опции — типа -iname и -ipath, которые вовсе не различают регистр.
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru