BashMaster
Открыть в Telegram
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help
Больше8 805
Подписчики
-124 часа
-107 дней
-4230 дней
Архив постов
8 804
Ты знал что каждый линуксоид должен знать сети на хорошем уровне?
Если ты хочешь по-быстрому разобраться в сетях и не хочешь читать книги по тысячи страниц, то переходи в канал @school_network где ты быстро сможешь изучить самое важное за несколько минут.
👉 @school_network
8 804
Как увидеть команды, которые выполняются внутри bash скрипта
Иногда хочется понять, правильно ли вы написали скрипт, или отлаживаете CI/CD джобу. Но как увидеть, какие именно команды выполняются, какие переменные передаются и так далее?
В этом вам точно поможет встроенная функция
set -x. Все команды, которые будут идти после выполнения set -x будут отображены в консоли.
Эту функцию можно вызывать как в самом начале скрипта, так и окружить ей необходимый участок: set -x / set +x8 804
TAB для автодополнения
Если во время ввода названия файла или папки в команде вы нажмете
TAB, то консоль допишет искомое название.
Но TAB также умеет дополнять любые аргументы: подкоманды, названия веток, контейнеров, ssh хостов и так далее. Поэкспериментируйте сами.
Вообще autocomplete для различных команд можно устанавливать, поэтому если TAB для вашего приложения не сработал – попробуйте поискать нужный пакет автодополнений для этой программы.8 804
TAB для автодоплнения
Если во время ввода названия файла или каталога в команде вы нажмете `
8 804
Как сохранить вывод команды в файл
Вывод любой консольной команды можно перенаправить в файл. Для этого используйте модификаторы
>> чтобы добавить результат в конец файла и >, чтобы перезаписать файл.
sort data.txt > sorted.txt cat nginx/access.log | grep 127.0.0.1 >> filtered_by_ip.log
8 804
Сортировка в консоли
Интуитивным перебором можно найти команду консоли почти на любой случай жизни.
Отсортировать файл можно конечно же командой sort. С флагом -r сортировка произойдет в обратном порядке.
Кстати можно сортировать еще и вывод через конвеер |.
sort data.txt
./app fetch-names | sort
8 804
Сортировка в консоли
Интуитивным перебором можно найти команду консоли почти на любой случай жизни.
Отсортировать файл можно конечно же командой
sort. С флагом -r сортировка произойдет в обратном порядке.
Кстати можно сортировать еще и вывод через конвеер |.
sort data.txt ./app fetch-names | sort
8 804
test для быстрой проверки условий
Когда неохота писать условную команду
if для выполнения короткого действия воспользуйтесь test с условными связками && и ||.
Например, создать файл, если его еще нет:
test -f ./etc/nginx.conf || touch ./etc/nginx.confЕсли вы используете проверку
И, то не забудьте в конце дописать || true, иначе test оборвет ваш скрипт с провалом:
test "$RESULT" && echo "Success" || true
8 804
Ты знал что каждый линуксоид должен знать сети на хорошем уровне?
Если ты хочешь по-быстрому разобраться в сетях и не хочешь читать книги по тысячи страниц, то переходи в канал @school_network где ты быстро сможешь изучить самое важное за несколько минут.
👉 @school_network
8 804
Фигурные скобки в аргументах
С помощью фигурных скобок можно быстро размножить аргументы по шаблону. Например создать несколько файлов, изменить расширение, вывести последовательность:
echo {a..z}
touch {01,02,05..10}_data.txt
mv .env{.example,}8 804
Зачем использовать симлинки
Символическая ссылка – это специальный файл, который на самом деле не содержит данных, а является указанием реального местоположения другого файла или папки.
В обычной жизни такие ссылки вам особо не помогут, но например при деплое веб-приложения на сервер вы можете вынести хранилище загружаемых посетителями файлов из папки приложения в другое место файловой системы.
Например, создать такую ссылку можно командой:
ln -s /data/uploads /app/public/uploadsПриложение обращаясь к загрузкам в папке
./public/uploads фактически будет обращаться к /data/uploads.8 804
Для Фронтенда тебе 100% нужны эти каналы!
Специалист по JavaScript - образовательный канал по JavaScript. Здесь публикуется готовый код, с использованием методов, конструкций и операторов языка, который можно использовать прямо сейчас.
Сеньор Помидор - канал для frontend программистов, с примерами лучших решений на HTML|CSS|JS для твоего проекта и ежедневными заметками, видеоуроками.
Figma - Templates - канал с библиотеками готовых макетов, шаблонов, референсов, сервисов. Лучший источник макетов для практики верстки.
Каналом пользуются успешные фрилансеры, дизайнеры и frontend программисты.
8 804
Бекендер, который не умеет использовать командную строку bash – так себе специалист.
Если посетить несколько собеседований уровня от миддл, то можно убедиться, что вопросы про опыт работы в консоли появляются довольно часто.
Сходу научиться всем командам bash нереально – их очень много.
К счастью, появился канал #!/bin/bash, в котором каждый день можно узнавать по одной небольшой связке команд и сразу же внедрять их в свою работу.
Подпишись, освоишь bash на изи 👍
8 804
Как разбить команду на несколько строк
Если при вводе команды поставить знак
\ (обратный слеш), то при переводе строки вы сможете продолжить написание команды.
Полезно, например, если вы хотите красиво отформатировать команду с большим количеством аргументов и отправить сниппет коллеге.
cd /app && mkdir var && cp .env.dist .env
8 804
Как отфильтровать вывод предыдущей команды и зачем нужен pipe
|
Bash во многом удобный инструмент именно благодаря своей возможности передавать результаты команд между друг-другом. Как раз для этой цели используется | (pipe, канал, конвеер).
Самый простой пример – отфильтровать вывод лога nginx, чтобы показать только запросы к определенному URL. Выводим содержимое файла с cat, фильтруем с помощью grep:
cat access.log | grep api/users cat access.log | grep 02/Dec cat access.log | grep api | grep 172.17.0.1
8 804
Из-за этого канала твой тимлид впадет в депрессию
Потому что ты начнешь решать задачи за час до дедлайна без гугла и форумов
Подпишись на Точка PHP и:
🟢прорешай реальные задачи с собеседований IT компаний
🟢изучи PHP библиотеки, которыми пользуются IT-гиганты
🟢получи доступ к современным Backend технологиям в одном канале
Перестань трястись на собеседованиях — подпишись и будь уверен в своих знаниях
8 804
Как быстро найти команду в истории
Наверняка вы знаете, что предыдущие команды консоли можно перебирать стрелками вверх-вниз.
Но если вам нужно найти давнишнюю команду только по каким-то обрывкам слов, нажмите
Ctrl + R и введите в консоль часть слова, чтобы вывести последнюю команду с искомым вхождением этой строки. Каждое последующее нажатие ищет следующую команду в истории.8 804
Парсниг JSON в консоли
Если вам требуется просто спарсить единственное поле объекта JSON, полученного например из API-эндпоинта, тогда вы можете обойтись
sed.
Если же нужно, предположим, выбрать определенный ключ массива вложенного в глубину объекта, используйте утилиту jq (документация). Как минимум, jq выведет ваш JSON отформатированно и в цвете.8 804
Зачем нужна комбинация &&
С помощью
&& можно объединить выполнение нескольких команд. Но выполнение прервется, если какая-то команда завершится неудачно.
Например, вам требуется скачать файл-установщик и выполнить его. Выполнение не будет иметь смысла, если скачивание прервется.
curl -sS https://url-to-installer.com/installer.sh -o /tmp/installer.sh && /tmp/installer.sh git commit -m "Fix" && git push
8 804
Как выполнить команду под другим пользователем
Команда
sudo позволяет выполнять команды от имени другого пользователя системы. Добавьте флаг -u и укажите юзернейм необходимого пользователя, или опустите его, чтобы выполнить команду под root.
Это может быть полезно, например, если вам требуется подключиться к локальной БД или выполнить команду приложения из под веб-сервера.
sudo -u postgres psql sudo -u www-data php artisan:warm-cache sudo mv secret.txt /root/secret.txt
