6 обычных команд Linux, которые только тормозят тебя! Проверь, не попадаешь ли ты в эти ловушки?

Tux, the Linux mascot, wearing sunglasses and working on a laptop surrounded by floating terminal windows and 3D command symbols.-1

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

Многие команды уже умеют всё, что тебе нужно — зачастую без лишних инструментов. Например, ls может сортировать вывод без всякого sort. Я расскажу о самых популярных неэффективных пайплайнах и покажу, на что их стоит заменить.

grep | wc

Так делают многие, но grep и сам умеет считать строки!

Один из самых распространённых приёмов — передавать результат grep в wc, чтобы посчитать строки: wc действительно отлично считает и строки, и слова, и символы, поэтому это кажется удобным.

Но на самом деле сам grep умеет делать то же самое с помощью опции -c или --count — дополнительный wc тут просто лишний.

Эта функция появилась в grep очень давно, так что никаких громоздких пайпов уже давно не нужно!

cat file | anything

Бесполезное использование cat: есть способ проще!

Очень частая ошибка — использовать cat, чтобы передать содержимое файла в другую команду. Хотя cat и создан для объединения файлов, им часто просто скармливают один файл — и всё ради одной цепочки команд.

На самом деле большинство команд, например wc, могут принимать имя файла прямо как аргумент — и в этом случае пайп с cat не нужен вовсе:

А если команда не умеет читать файл напрямую? Даже тогда cat не требуется — в Linux можно подавать файл на вход команде через стандартное перенаправление (<имя_файла).

К этому приёму нужно привыкнуть, но освоив перенаправления, ты откроешь для себя новые возможности командной строки!

Laptop With Linux Intel NUC13.

Ноутбук с Linux Intel NUC13

Выбери один из трёх процессоров Intel и установи любую любимую Linux на этот мини-ПК.

ls | sort

Встроенная сортировка — это ещё удобнее!

sort часто используется в пайпах для сортировки вывода — он фильтрует всё, что получает, и красиво показывает результат.

The ls command piped to sort to order files by size.

ls и так показывает файлы в “таблице”, а sort -k позволяет сортировать по любому столбцу.

Но зачем городить пайп, если ls уже умеет сортировать по размеру с помощью отдельной опции? Одна простая команда, и никакой путаницы с пайплайнами.

Флаг -r разворачивает сортировку — и самые большие файлы будут или вверху, или внизу, как удобно.

The ls command with the -s option sorting files in order of size.

А ещё: если скармливать ls через sort, исчезают цвета терминала. Со встроенной сортировкой ls всё остаётся ярким и понятным!

head | tail

Как взять нужный диапазон строк одной командой

head и tail хороши, чтобы взять первые или последние n строк из файла или вывода другой команды. Объединяя их, можно добывать определённый диапазон строк.

Хитро, но есть проще: sed позволяет сразу получить нужные строки одной командой — никаких лишних пайпов и сложной математики.

Например, sed без труда выведет строки с 102-й по 105-ю. Всё решается одним выражением!

grep | head

Как сразу ограничить вывод — grep это умеет сам!

Бывает, запускаешь grep, а он выдаёт сотни совпадений. Обычно хочется видеть только первые 10 или 20 строк, и для этого часто добавляют head.

Но есть специальная опция: у grep есть -m (--max-count), которая ограничивает поиск нужным числом совпадений. Всего одна команда — и результат готов!

sort | uniq

Дедупликация ещё проще: sort и сам умеет выводить уникальные строки

Все знают эту цепочку: отсортировать, а потом убрать повторы с помощью sort | uniq. Кажется, так и должно быть.

На самом деле одной команды вполне достаточно: sort умеет отсортировать и сразу оставить только уникальные строки (-u или --unique). Никаких лишних утилит!

Всегда ищи более быстрый и удобный способ!

Linux — это неисчерпаемая “песочница” с сотнями инструментов. Чем лучше ты разбираешься в командах и их возможностях, тем быстрее и эффективнее у тебя получается работать. Не бойся изучать новые опции, экспериментировать и находить более короткие пути — твой арсенал станет только мощнее!

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

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

Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

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

Алекс Бежбакин
Оцените автора
Добавить комментарий