Проводите много времени в терминале? Всегда ищете новые способы ускорить работу в Linux? Я тоже! Обожаю находить свежие фишки — они открывают глаза на то, сколько всего ещё можно упростить. Вот пять однострочных команд, которые не раз спасали меня в реальных задачах — уверен, они удивят и вас.
8 главных видов программ для терминала Linux — вы знакомы со всеми?
Научитесь отличать фильтры от TUIs и не путайтесь в терминах!
Создание директорий с помощью фигурных скобок
Фигурные скобки сокращают команды и работают почти везде
Этот приём полезен далеко не только для одной команды.
Вот так вы сразу создадите всю нужную структуру папок одной строкой:
Ключ "--parents" или -p гарантирует, что родительские каталоги появятся автоматически. Главный фокус здесь — фигурные скобки. Bash обрабатывает их так:
Кстати, скобки работают не только с mkdir — попробуйте их где угодно! В документации говорится:
Сначала Bash видит фигурные скобки, разворачивает их в список вариантов, а потом уже подставляет части пути:
Символы "?" и "*" — это так называемые шаблоны (globs), которые находят любой один или несколько символов.
Чаще всего мне хватает самых простых примеров с фигурными скобками, чтобы быстро создать кучу папок. Если встретите что-то хитрее — не переживайте, смысл тот же.
Считаем строки или слова за пару секунд
Соберите всё в один поток и передайте в wc
Часто пользуюсь этой командой, чтобы быстро узнать, сколько строк кода в проекте или слов в любом файле заметок.
Чтобы увидеть суммарный результат, нужно собрать все данные в один поток и передать команде "wc". Если выполнить wc --words **/*.org, то получите статистику по каждому файлу отдельно. А если хотите видеть итог — объедините данные одной из команд ниже.
Сравниваем вывод двух процессов на лету
Подставляем команды прямо в diff и используем на максимум
С командой "diff" для сравнения двух файлов знакомы почти все:
Но мало кто использует подстановки процессов! Они позволяют передать diff результат любых двух команд — будто вы сравниваете обычные файлы:
Например, если в двух каталогах есть файлы с одинаковыми именами ("two"):
Символ ">" показывает, что файл "three" есть в правой папке ("<(ls ./bar)"), а в левой — нет. "<" — наоборот.
Можно сохранить список файлов (ls ~/foo > foo-baseline.txt) и потом сравнивать этот "слепок" с текущим состоянием:
Так любые изменения будут сразу на виду. Особенно удобно это работает вместе с "watch", о котором расскажу чуть ниже.
С подстановками процессов можно сравнивать вывод любых команд — не ограничивайте себя одним только "ls".
Отслеживаем изменения в реальном времени: волшебство "watch"
Мониторить изменения — проще некуда: гибкость "watch" решает всё
Утилита "watch" вообще гениально проста: она сама переодически (по умолчанию каждые две секунды) запускает вашу команду и покажет, что меняется.
Самый банальный пример — наблюдать, какие порты открыты:
Экран очищается, показывается только свежий вывод с небольшим заголовком.
Параметр --color включает цветное выделение, --differences — подсвечивает изменения между запусками. Иногда бывают лишние движения, но обычно очень удобно.
А ещё "watch" классно подходит для слежения за папками, показывая различия в реальном времени:
"Watch" запускает команды через sh, а не Bash, поэтому подстановки процессов напрямую не поддерживаются. Просто вызывайте diff явно через Bash.
Только что созданный файл ("1") сразу появляется в diff ("2"). Это почти как онлайн-мониторинг папок!
Вырезаем нужные куски текста с помощью grep
Иногда нужно достать только важное — легко и просто!
Обычно grep ищет всю строку с вашим шаблоном, но часто нужно вытащить только сам фрагмент. Например, чтобы получить содержимое HTML-тега:
Регулярка ловит ".+" (один или больше любых символов) между тегами "
" и "
" только если оба совпадают. Таким образом можно легко вытащить содержимое между тегами или любыми фрагментами:
Команда найдёт всё, что находится между "foo" и "bar".
В старых версиях PCRE была поддержка только фиксированной длины lookbehind (было нельзя использовать ?, +, *). С PCRE2 10.43 длину можно выбирать — по умолчанию 255 символов. Это ограничение ускоряет работу регулярных выражений. Узнать версию можно через grep --version.
Я подробно разбирал регулярные выражения в отдельной статье — советую почитать, если хотите реально в них разобраться.
Dell XPS 13 Plus с Linux
Мощная начинка, отличный экран и минимальный вес — это действительно идеальный ноутбук для фанатов Linux.
Все эти команды решают конкретные задачи, но их приёмы легко применимы и для других случаев. Скобочные расширения полезны почти везде, особенно при работе с путями. Watch — ваш инструмент для мониторинга в реальном времени, а diff помогает сразу заметить изменения. Grep с regex невероятно мощен: раньше не знал, как выхватить нужный кусок текста — теперь знаю и вы тоже!
Хватит пользоваться этими 7 устаревшими командами Linux — обновитесь, чтобы быть впереди!
Держитесь на гребне технологий — не тормозите развитие!
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru