BashMaster
الذهاب إلى القناة على Telegram
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help
إظهار المزيد8 733
المشتركون
+124 ساعات
+27 أيام
+21330 أيام
أرشيف المشاركات
8 733
Быстрое изучение Bash: 30 легких команд для новичков
Список из 30 легких команд, с которыми вы быстро освоите Bash и не будете бояться терминала Linux. Идеально для новичков.
Первые команды – учимся ходить
Современные файловые системы – это древовидные каталоги с корневой и родительскими директориями. Движение вверх по родительским каталогам приводит к корневому. В некоторых системах встречается несколько корневых каталогов, например, всем известные диски Windows: C:\ , A:\, etc.
Но в Unix-подобных системах все по-другому: здесь принят один корневой каталог с именем \. А вот и основные команды Bash для перемещения по файловой системе:
pwd / ls / cdПри работе в файловой системе пользователь находится в каталоге, который называется текущим или рабочим. **Команда
pwd выводит рабочий каталог пользователя
**С ls вы сможете вывести содержимое каталога (файлы и дочерние директории)
**Перейти в другой каталог поможет cd
**Используйте команду cd .. для быстрого перемещения в родительскую директорию
**Сокращение cd ~ используется для перемещения домой, в /home/$USER
Три bash команды для управления
**Иногда вам потребуется запускать эти команды одну за другой. Тогда на помощь приходит оператор ;
**Точка с запятой означает, что сначала перечисляется содержимое рабочего каталога с помощью ls, а затем pwd выводит местоположение каталога. Еще один полезный инструмент для создания цепочек команд – &&. При использовании && команда справа не будет выполняться, если команда слева не выполнена. Но если использовать ;, вторая команда выполняется даже после ошибки в первой
**Команда & похожа на &&, но на самом деле выполняет другую функцию. Часто процессы блокируют ввод в терминал во время работы. Чтобы свернуть подобный процесс в фон, используйте & в конце команды. Тогда процесс выполняется в фоне, не блокируя ввод в окно терминала
🖼️ Дочитать статью
🔨 bash_help8 733
Необычные и малоизвестные трюки с перенаправлениями в bash, которые могут значительно упростить работу
/dev/tcpМногие пользователи Linux не подозревают, что bash особым образом обрабатывает перенаправление в файл
/dev/tcp/host/port, и если host - это допустимое имя хоста или ip адрес, а port - целое число порта или имя службы, пытается открыть соответствующий TCP-сокет.
Например, перенаправим вывод TCP сервера времени на cat и выведем на экран:
$cat < /dev/tcp/time.nist.gov/13
60311 24-01-02 10:43:53 00 0 0 798.9 UTC(NIST) *
Более сложный пример - HTTP запрос. Давайте создадим новый файловый дескриптор, перенаправим на него строку HTTP-запроса, затем прочитаем ответ.
$exec 5<>/dev/tcp/google.de/80 $echo -e "GET / HTTP/1.1\nhost: google.de\n\n" >&5 $cat <&5 | head HTTP/1.1 301 Moved Permanently Location: http://www.google.de/ Content-Type: text/html; charset=UTF-8 Date: Thu, 18 Nov 2021 08:27:18 GMT Expires: Sat, 18 Dec 2021 08:27:18 GMT Cache-Control: public, max-age=2592000 Server: gws Content-Length: 218 X-XSS-Protection: 0 X-Frame-Options: SAMEORIGINPlaceholder
-
Некоторые команды, например tar, воспринимают символ - как перевод на стандартный вывод, что позволит воспользоваться результатом работы команды без создания промежуточных файлов, например создадим бэкап директории /www/data и скопируем по ssh:
tar zcvf - /www/data | ssh user@remoter "cat > /backup/wwwdata.tar.gz"
Группировка команд
Передача стандартного вывода одной команды в стандартный ввод другой команды - мощный инструмент. Но что, если вам нужно передать стандартный вывод нескольких команд? Для того чтобы объединить вывод нескольких команд можно использовать группировку команд, для этого используется синтаксис:{ command1; command2; }, например объединим вывод команд ls, чтобы подсчитать количество файлов в двух директориях:
$mkdir dir{1,2}
$touch dir1/test1.txt
$touch dir2/test2.txt
${ ls dir1; ls dir2; } | wc -l
2
🖼️ Дочитать статью
🔨 bash_help8 733
xdotool - эмулятор действий мыши и клавиатуры
Утилита предоставляет широкие возможности по управлению клавиатурой и мышью. Позволяет эмулировать нажатие клавиш и двигать курсор мыши. Некоторые примеры пригодятся при написании bash скриптов или для динамической подвязки горячих клавиш. Также вы можете заранее определить текст, который нужно ввести в определенное поле при определенных условиях.
*Xdotool
умеет переключать клавиши с индикаторами *lock, однако сами световые индикаторы не изменяют свое состояние.
Есть другие утилиты для эмуляции нажатия клавиш xvkbd, xte (менее функциональная) и для работы с буфером обмена - xsel, xclip.
Определить keycode и keysym клавиши, а также дополнительную информацию о клавише, можно утилитами xev или xkeycaps.
Также можно получить комбинацию клавиш утилитой xbindkeys:
xbindkeys -k
Примеры использования
Эмулировать нажатие клавиш по названию:
xdotool key Shift+Left xdotool key Control+c xdotool key Alt+Tab xdotool key Shift+Caps_Lock xdotool key XF86AudioRaiseVolume xdotool key XF86AudioLowerVolume xdotool keyup Mod2+Mod4+m ## Отпустить клавиши xdotool key Ctrl+Alt+Shift+m🖼️ Дочитать статью 🔨 bash_help
8 733
Больше не нужно собирать целый стек программ
В ИКС весь набор софта для управления сетью и инфрой: межсетевой экран, DHCP-сервер, DNS, NAT, VPN-сервер, система обнаружения и предотвращения вторжений IPS/IDS, функции контроля приложении, WAF, потоковый антивирус, прокси-сервер, файловый сервер, контент-фильтр, защищенная почта, корпоративная телефония и многое другое.
Для тех, кто хочет протестировать новую 11 версию ИКС, - ссылка на бесплатный триал 35 дней.
А для тех, кто пока не готов тестировать, но хочет посмотреть, - ссылка на Демо день, где все покажут и на вопросы ответят.
Реклама, ООО «А-Реал Консалтинг», ИНН 7606047112. Токен LjN8K7QKp
8 733
Поиск по StackOverflow из командной строки
На GitHub опубликовали утилиту how2, которая даёт возможность удобно искать на StackOverflow прямо из командной строки. Получается нечто похожее на man, но с глобальным поиском по базе SO и возможностями составлять запросы на обычном (английском) языке.
Установить утилиту можно через npm:
npm install -g how2
Если появятся ошибки доступа, то загляните сюда. Или используйте команду:
sudo npm install -g how2
Если у вас нет npm, то установите Node.js:
sudo apt-get install nodejs npm
Если вы не указали обратное, то язык по умолчанию считается Bash.
Как это работает?
Утилита how2 использует Google и StackOverflow API, потому что собственный поиск SO не так хорош.
Зачем это надо?
Потому что программисты часто забывают, как сделать некоторые простые вещи. А читать маны слишком долго.
🐙 Перейти на Github
🔨 bash_help8 733
Bash-скрипты для настройки среды DevOps в Ubuntu, CentOS и MacOS
DevOps и управление инфраструктурой являются критически важными процессами для любой организации, которая использует технологии для управления своей деятельностью. Наличие нужных инструментов и их правильная настройка могут существенно повлиять на эффективность и действенность этих процессов.
Этот сценарий предназначен для упрощения настройки среды разработки или инфраструктуры для различных задач, связанных с DevOps и управлением инфраструктурой. Он автоматизирует установку и настройку часто используемых инструментов, таких как Terraform, Ansible, Git, Docker, Kubernetes, Helm и интерфейс командной строки AWS, что упрощает начало работы с широким спектром задач, связанных с выделением и управлением серверами, сетями. и хранилище, а также развертывание и масштабирование приложений.
Независимо от того, настраиваете ли вы новую машину, работаете в команде или настраиваете конвейер CI/CD, этот сценарий является мощным инструментом для автоматизации задач DevOps и управления инфраструктурой.
🖼️ Ссылка на скрипт
🔨 bash_help
8 733
Айтишники уже всех задолбали😡
Везде выёживаются своими зарплатами. Хотя такие же деньги может зарабатывать любой, кто хоть раз держал в руках отвёртку. Не веришь?
Смотри, что Дима Иванов пишет. Он просто покупает и перепродаёт компы, делая на этом большие деньги. А ещё учит этому подписчиков, спокойно зарабатывать от 100к в месяц!
Он даёт понятные пошаговые инструкции, которым просто нужно следовать. Будто готовишь суп - написано нарезать лук - режешь, написано варить 20 минут - варишь. Результат зависит лишь от того, насколько точно ты выполняешь эти действия 🤷
👉 Можно уйти с найма
👉 Можно подрабатывать по вечерам
👉 Можно начать с полного нуля
Да тут даже бабуля справится. Подписывайся на Димана и делай деньги. 👇
https://t.me/+e91np8RY88I5NTg6
8 733
Автоматизация резервного копирования с помощью bash-скрипта
Резервное копирование — это то, что мы все делаем регулярно, так почему бы не автоматизировать это? Взгляните на следующий скрипт backup.sh :
#!/bin/bash
backup_dirs=("/etc" "/home" "/boot")
dest_dir="/backup"
dest_server="server1"
backup_date=$(date +%b-%d-%y)
echo "Starting backup of: ${backup_dirs[@]}"
for i in "${backup_dirs[@]}"; do
sudo tar -Pczf /tmp/$i-$backup_date.tar.gz $i
if [ $? -eq 0 ]; then
echo "$i backup succeeded."
else
echo "$i backup failed."
fi
scp /tmp/$i-$backup_date.tar.gz $dest_server:$dest_dir
if [ $? -eq 0 ]; then
echo "$i transfer succeeded."
else
echo "$i transfer failed."
fi
done
sudo rm /tmp/*.gzecho "Backup is done."
Итак, вы сначала создали массив с именем backup_dirs , в котором хранятся все имена каталогов, резервную копию которых мы хотим создать. Затем вы создали три другие переменные:
dest_dir: для указания каталога назначения резервной копии.
dest_server: для указания целевого сервера резервного копирования.
backup_time: , чтобы указать дату резервного копирования.
Затем для всех каталогов в массиве backup_dirs создайте сжатый tar-архив gzip в /tmp, затем используйте команду scp для отправки/ скопируйте резервную копию на целевой сервер. Наконец, удалите все архивы gzip из /tmp.
Вот пример выполнения сценария backup.sh :
kabary@handbook:~$ ./backup.sh Starting backup of: /etc /home /boot /etc backup succeeded. etc-Aug-30-20.tar.gz 100% 1288KB 460.1KB/s 00:02 /etc transfer succeeded. /home backup succeeded. home-Aug-30-20.tar.gz 100% 2543KB 547.0KB/s 00:04 /home transfer succeeded. /boot backup succeeded. boot-Aug-30-20.tar.gz 100% 105MB 520.2KB/s 03:26 /boot transfer succeeded. Backup is done.🔨 bash_help
8 733
JShielder
Bash-скрипт, разработанный для помощи системным администраторам и разработчикам защитить Linux-серверы, на которых они будут развертывать любые веб-приложения или службы.
Инструмент автоматизирует процесс установки всех необходимых пакетов для размещения веб-приложения и повышения уровня защиты сервера Linux при минимальном взаимодействии со стороны пользователя.
🐙 Перейти на Github
🔨 bash_help
8 733
🧐 Красивая архитектура приложения — это настоящая ценность. Добавьте её в свою работу и жизнь с курсом от Слёрм "Архитектура приложений".
Старт 22 января!
Курс проходит в формате потока: эксперты отвечают на вопросы студентов, проводят встречи с подробным разбором сложных заданий.
А ещё вы:
⚙️ Получите код-ревью практических заданий с разбором ошибок от опытных ревьюеров;
⚙️ Будете общаться в закрытом чате со студентами, спикерами и ревьюерами;
⚙️ Оформите итоговый проект и включите его в свое портфолио;
Проходите бесплатный демо-курс и получайте скидку на обучение!
Узнать о программе и записаться вы можете по ссылке.
Реклама. ООО "СЛЁРМ". ИНН 3652901451.
8 733
Как безопасно программировать в bash
В bash есть массивы и безопасный режим. При правильном использовании bash почти соответствует практикам безопасного кодирования.
В fish сложнее допустить ошибку, но там нет безопасного режима. Поэтому хорошей идеей станет прототипирование в fish, а затем трансляция с fish на bash, если вы умеете правильно это делать.
Данное руководство сопровождает ShellHarden, но автор также рекомендует ShellCheck, чтобы правила ShellHarden не расходились с ShellCheck.
Bash — не тот язык, где самый правильный способ решить проблему одновременно является самым простым. Если принимать экзамен по безопасному программированию в bash, то первое правило BashPitfalls звучало бы так: всегда используй кавычки.
Маниакально ставить кавычки!
Незакавыченная переменная должна расцениваться как взведённая бомба: она взрывается при контакте с пробелом. Да, «взрывается» в смысле разделения строки на массив. В частности, расширения переменных вроде
$var и подстановки команд вроде $(cmd) подвергаются расщеплению слов, когда внутренняя строка расширяется в массив из-за расщепления в специальной переменной $IFS с пробелом по умолчанию. Это обычно незаметно, потому что чаще всего результатом становится массив из 1 элемента, неотличимый от ожидаемой строки.
🖼️ Дочитать статью
🔨 bash_help8 733
Selfharm Linux
Контейнер Docker и форк Suicide Linux — любая неверная команда Bash заставит интерпретатор удалить случайный файл с жесткого диска пользователя.
Это игра, чтобы увидеть, как долго пользователь может продолжать использовать операционную систему до ее сбоя.
Игру можно запустить в безопасном или опасном режиме
🐙 Перейти на Github
🔨 bash_help
8 733
Если вы веб-разработчик, нужно следить за всем, что происходит в отрасли, чтобы не отставать. Это не всегда легко, но есть способ — мы поделимся прогнозами и трендами 2024 года, чтобы вы примерно понимали, в какую сторону смотреть.
17 января в 13.00 в прямом эфире поговорим о том, какие технологии будут востребованы и что необходимо знать, чтобы стать фронтенд-разработчиком в 2024 году.
Мы расскажем вам:
— Общие тренды разработки и тенденции во фронтенде в 2024;
— Насколько нейросети улучшились за год? Теперь-то заменят?
— На какие технологии и инструменты смотреть, чтобы получать лучшие предложения о работе.
Подробности по ссылке, участие бесплатное.
Реклама. ООО "ИНТЕРАКТИВНЫЕ ОБУЧАЮЩИЕ ТЕХНОЛОГИИ". ИНН 7807382880.
8 733
AnonYou — утилита для безопасности
Бесплатная утилита с открытым исходным кодом, написанная на bash, которая позволяет быстро выполнять действия, связанные с анонимизацией.
▪️Изменение MAC-адреса на случайный или произвольный
▪️Перенаправление всего трафика через TOR
▪️Очистка ОЗУ
▪️Очистка пространства подкачки
▪️Надежное стирание файлов
▪️Удаление системного журнала
🐙 Перейти на Github
🔨 bash_help
8 733
Репозиторий DevOps-Bash-tools
В нем 1000+ Bash скриптов — AWS, GCP, Kubernetes, Docker, CI/CD, APIs, SQL, PostgreSQL, MySQL, Hive, Impala, Kafka, Hadoop, Jenkins, GitHub, GitLab, BitBucket, Azure DevOps, TeamCity, Spotify, MP3, LDAP, Code/Build Linting, pkg mgmt для Linux, Mac, Python, Perl, Ruby, NodeJS, Golang, .bashrc, .vimrc, .gitconfig, .screenrc, tmux.
Загрузка:
curl -L https://git.io/bash-bootstrap | sh
🐙 Перейти на Github
🔨 bash_help8 733
Как создать постоянный псевдоним команды
Чтобы создать постоянную
alias команду, вы должны добавить команду alias в файл конфигурации оболочки. Некоторые известные оболочки:
Bash - ~/.bashrc
Zsh - ~/.zshrc
Fish - ~/.config/fish/config.fish
Рассмотрим создание постоянного псевдонима в оболочке bash. Откроем .bashrc файл с помощью Vim.
sudo vim ~/.bashrc
Перейдите в нижнюю часть файла и нажмите i, чтобы перейти в режим вставки. Добавьте команду псевдонима, которую вы хотите добавить навсегда.
alias cdv="cd Videos"
Каждый раз, когда вы вносите изменения в файл конфигурации оболочки, вам необходимо повторно загружать файл, чтобы изменения вступили в силу немедленно.
Все окна терминала, которые вы открываете с этого момента, по умолчанию будут содержать вашу команду alias.
Вы можете открыть несколько окон и проверить, введя alias -p.
🔨 bash_help8 733
В истории bash можно включить отметку времени
$ export HISTTIMEFORMAT="%F %T "
И теперь он также сообщит вам, когда вы выполнили определенную команду в истории
Чтобы сделать изменения постоянными, надо экспортировать эту переменную в свой .bashrc
🔨 bash_help8 733
Bash Bible — полезный ресурс для тех, кто изучает Linux
Этот репозиторий можно использовать как справочник для изучения различных команд Bash. Он содержит множество примеров.
🐙 Перейти на Github
🔨 bash_help
8 733
NucleiFuzzer — инструмент для обнаружения уязвимостей в веб-приложениях
Он представляет собой простой bash-скрипт, который позволяет обнаруживать уязвимости в различных программах и системах, проводить тестирование на проникновение и поиск уязвимостей, а также предоставляет возможность указывать ссылки на найденные уязвимости в отчетах.
🐙 Перейти на Github
🔨 bash_help
8 733
Программистика: кодируй, учись, вдохновляйся! 💻✨
Открой для себя бесконечный мир программирования вместе с нами! Здесь тебя ждут:
Глубокие статьи, которые помогут разобраться в сложных вопросах;
Сервисы, упрощающие жизнь каждого кодера;
Обучающие видеоролики от профессионалов в сфере IT;
Актуальные новости IT-индустрии.
Программистика – для тех, кто хочет быть в курсе последних тенденций и улучшать свои навыки каждый день.
Присоединяйся!
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
