8 команд Linux, которые все используют неправильно — и ты наверняка тоже! Исправь свои привычки прямо сейчас

Tux, the Linux mascot, sitting with a laptop in front of a large terminal window.-1

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

Как убрать все эти лишние . и .. из списка файлов

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

Чтобы увидеть их, все советуют флаг -a — кажется, что так и должно быть, верно?

Terminal output of the ls -a command showing the special files . and ..

Но со временем начинает раздражать, что ls -a добавляет в список ненужные элементы «.» и «..» — это просто текущая и родительская папка, которые для навигации в консоли не требуются.

На помощь приходит очень похожая опция: -A. Она покажет все скрытые файлы, но скроет лишние точки:

Terminal output of the ls -A command showing a hidden file but not the special files . and ..

Совет: сделай alias для этой команды (и для других хитростей из этой статьи) — файлы в терминале станут намного чище, а ты перестанешь отвлекаться на бесполезные точки.

grep: ищи по всем файлам без сложных конструкций

Раньше я запускал find с опцией exec — чтобы искать текст сразу во всех файлах:

Получалось длинно, и синтаксис find всегда был не самым приятным. А потом я узнал: grep умеет рекурсивный поиск сам! Просто легче, короче и надежнее:

Вложенные папки одним махом — mkdir спасает время

Помнишь, как мучительно создавать сложную структуру папок — «blog/2024/09/post»? Если хоть один промежуточный каталог (blog, blog/2024, blog/2024/09) не существует, Linux выдаёт непонятную ошибку:

An error from mkdir showing that a file or directory does not exist.

Не надо гадать и страдать — просто используй опцию -p, и mkdir сам создаст все арабаны по пути к папке за одну команду:

The Linux mkdir-p command which creates a set of nested directories in one step.

Запомни навсегда: «p» — значит «parents» или «path». И больше никакой путаницы с ошибками.

Как мгновенно прыгать между двумя папками в терминале

Если ты много работаешь в консоли, наверняка устал сто раз набирать cd и длинные пути, чтобы метаться между разными папками. Кто-то копирует их, другие листают историю команд.

Есть комфортное решение: команда cd поддерживает переключение между двумя папками через cd -!

The cd - command which toggles between two directories.

Каждый раз, когда ты вводишь «cd -«, система возвращает тебя в предыдущую папку. Повторишь — возвращаешься обратно. Гораздо быстрее любой истории команд!

Путь всегда выведется в терминале, даже если уже отображается в приглашении.

Как скопировать папку так, чтобы совпадало вообще всё

Скорее всего, ты всегда копировал каталоги через cp -R:

Да, cp -R умеет копировать всё внутри папки, включая подпапки. Но вот в чём подвох: права, владельцы или даже время изменения в копии могут отличаться. Например, у свежескопированной папки другое время последнего редактирования:

The cp -R command which copies a directory recursively.

Иногда отличия ещё существеннее! Берём вместо -R опцию -a (архивный режим), и в копии будет всё, как в оригинале:

The cp -a command which copies a directory recursively in archive mode, preserving file attributes.

.tar.gz — распакуй одним движением!

Даже сейчас tar.gz встречается сплошь и рядом, особенно если скачиваешь исходники под Linux. Раньше я всегда сначала разжимал файл gzip, а потом распаковывал архив tar — две отдельные команды:

Но последние версии tar умеют делать это за один заход — флаг z вместе с x:

Стало проще, быстрее и удобнее. К тому же tar сам распознаёт gzip-архив — теперь можно писать ещё короче:

cat ― не просто вывод, а быстрый просмотр и лайфхаки

cat вообще-то создан для объединения файлов, но почти всегда им просто просматривают содержимое. Не все знают: у команды есть полезные фишки для быстрого чтения текстов!


Подпишись на рассылку — ловко изучай Linux без ошибок

Во-первых, cat -s удаляет лишние пустые строки, благодаря чему длинные файлы выглядят аккуратнее.

Во-вторых, cat -b пронумерует строки, кроме пустых — удобно ссылаться на нужные фрагменты.

Попробуй вместе cat -sb — получится лёгкий мини-просмотрщик без всяких less или хитрых утилит.

Sample output from the cat -sb command which compresses empty lines and numbers non-empty lines.

Как за секунду узнать, сколько весит каждая папка

Знать размер каталогов — очень удобно, когда наводишь порядок. Но du обычно вываливает кучу строк со всеми вложенными папками. Я долго фильтровал вывод через grep или писал сложные цепочки.

Но оказывается, есть простой лайфхак: опция --max-depth указывает, до какой вложенности du будет считать размеры. В результате ты получаешь только самые важные цифры по папкам верхнего уровня — всё лишнее скрыто. Например:

Увидишь размеры всех подпапок текущей директории — и никакой лишней информации:

The du --max-depth command showing total sizes of immediate sub-directories only.

Хочешь чувствовать себя терминальным гуру? Читай дальше мои подборки — расскажу, как навсегда забыть про раздражающие опечатки в консоли!

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

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

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

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

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