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

5 неожиданных Bash-команд, которые перевернули мой опыт в Linux! Вы не поверите, как быстро начнёте их использовать

Оглавление

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

-2

8 главных видов программ для терминала Linux — вы знакомы со всеми?

Научитесь отличать фильтры от TUIs и не путайтесь в терминах!

Создание директорий с помощью фигурных скобок

Фигурные скобки сокращают команды и работают почти везде

Этот приём полезен далеко не только для одной команды.

Вот так вы сразу создадите всю нужную структуру папок одной строкой:

Ключ "--parents" или -p гарантирует, что родительские каталоги появятся автоматически. Главный фокус здесь — фигурные скобки. Bash обрабатывает их так:

Кстати, скобки работают не только с mkdir — попробуйте их где угодно! В документации говорится:

Сначала Bash видит фигурные скобки, разворачивает их в список вариантов, а потом уже подставляет части пути:

Символы "?" и "*" — это так называемые шаблоны (globs), которые находят любой один или несколько символов.

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

Считаем строки или слова за пару секунд

Соберите всё в один поток и передайте в wc

Часто пользуюсь этой командой, чтобы быстро узнать, сколько строк кода в проекте или слов в любом файле заметок.

Чтобы увидеть суммарный результат, нужно собрать все данные в один поток и передать команде "wc". Если выполнить wc --words **/*.org, то получите статистику по каждому файлу отдельно. А если хотите видеть итог — объедините данные одной из команд ниже.

-3

Сравниваем вывод двух процессов на лету

Подставляем команды прямо в diff и используем на максимум

С командой "diff" для сравнения двух файлов знакомы почти все:

-4

Но мало кто использует подстановки процессов! Они позволяют передать diff результат любых двух команд — будто вы сравниваете обычные файлы:

Например, если в двух каталогах есть файлы с одинаковыми именами ("two"):

-5

Символ ">" показывает, что файл "three" есть в правой папке ("<(ls ./bar)"), а в левой — нет. "<" — наоборот.

Можно сохранить список файлов (ls ~/foo > foo-baseline.txt) и потом сравнивать этот "слепок" с текущим состоянием:

Так любые изменения будут сразу на виду. Особенно удобно это работает вместе с "watch", о котором расскажу чуть ниже.

С подстановками процессов можно сравнивать вывод любых команд — не ограничивайте себя одним только "ls".

Отслеживаем изменения в реальном времени: волшебство "watch"

Мониторить изменения — проще некуда: гибкость "watch" решает всё

Утилита "watch" вообще гениально проста: она сама переодически (по умолчанию каждые две секунды) запускает вашу команду и покажет, что меняется.

Самый банальный пример — наблюдать, какие порты открыты:

Экран очищается, показывается только свежий вывод с небольшим заголовком.

Параметр --color включает цветное выделение, --differences — подсвечивает изменения между запусками. Иногда бывают лишние движения, но обычно очень удобно.

А ещё "watch" классно подходит для слежения за папками, показывая различия в реальном времени:

-6

"Watch" запускает команды через sh, а не Bash, поэтому подстановки процессов напрямую не поддерживаются. Просто вызывайте diff явно через Bash.

Только что созданный файл ("1") сразу появляется в diff ("2"). Это почти как онлайн-мониторинг папок!

Вырезаем нужные куски текста с помощью grep

Иногда нужно достать только важное — легко и просто!

Обычно grep ищет всю строку с вашим шаблоном, но часто нужно вытащить только сам фрагмент. Например, чтобы получить содержимое HTML-тега:

-7

Регулярка ловит ".+" (один или больше любых символов) между тегами "

" и "

" только если оба совпадают. Таким образом можно легко вытащить содержимое между тегами или любыми фрагментами:

Команда найдёт всё, что находится между "foo" и "bar".

В старых версиях PCRE была поддержка только фиксированной длины lookbehind (было нельзя использовать ?, +, *). С PCRE2 10.43 длину можно выбирать — по умолчанию 255 символов. Это ограничение ускоряет работу регулярных выражений. Узнать версию можно через grep --version.

Я подробно разбирал регулярные выражения в отдельной статье — советую почитать, если хотите реально в них разобраться.

-8

Dell XPS 13 Plus с Linux

Мощная начинка, отличный экран и минимальный вес — это действительно идеальный ноутбук для фанатов Linux.

Все эти команды решают конкретные задачи, но их приёмы легко применимы и для других случаев. Скобочные расширения полезны почти везде, особенно при работе с путями. Watch — ваш инструмент для мониторинга в реальном времени, а diff помогает сразу заметить изменения. Grep с regex невероятно мощен: раньше не знал, как выхватить нужный кусок текста — теперь знаю и вы тоже!

-9

Хватит пользоваться этими 7 устаревшими командами Linux — обновитесь, чтобы быть впереди!

Держитесь на гребне технологий — не тормозите развитие!

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

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

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