BashMaster
Open in Telegram
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help
Show more8 882
Subscribers
-124 hours
-167 days
+430 days
Posts Archive
8 882
Как вам идея совместить удаленную работу и отдых этой зимой на Шри-Ланке? 🇱🇰
А если еще и на условиях беспроцентной рассрочки Интересно? 😉
🌅 Тогда добро пожаловать на Baza Camp! Ребята второй год подряд организуют лагерь для удаленщиков на берегу океана в четырехэтажном отеле.
🔷Коворкинг
🔷Коливинг
🔷Сёрфинг
🔷Йога
🔷Массаж
🔷Экскурсии
А также множество других активностей для совмещения работы и отдыха 😀
✈️Сейчас идет набор группы на январский и февральский заезд.
Следите за новостями на канале 👉Baza Camp👈
8 882
Bash cкрипт получения числа открытых файлов пользователя
Данный скрипт позволяет узнать сколько открытых файлов у определённого пользователя Linux. Это бывает необходимо для отладки службы, работающей под определённым пользователем.
В качестве параметра скрипту необходимо передать имя или uid пользователя.
Скрипт будем использовать следующими способами:
./openfiles.sh -h — показать справку;
./openfiles.sh <имя_или_uid> — показать число открытых файлов.
Вот сам скрипт:
#!/bin/bash
case "$1" in
-h)
echo -e "Скрипт покажет открытые файлы для выбранного пользователя.
Опции:
-h показать эту справку.
Примеры выполнения:
./files2.sh <username>
./files2.sh <uid>"
;;
*)
if [[ "$#" -eq 1 ]];
then
id "$1" >/dev/null 2>&1
if [[ $? -ne 0 ]]; then
echo 'Пользователь не найден!'
exit 1
fi
for pid in `ps -u "$1" -o pid,comm | grep -v PID | awk '{print $1}'`
do
open_files=`ls -l /proc/$pid/fd | grep "anon_inode" | wc -l`
echo "Открытых файлов для pid $pid: $open_files"
done
else
echo -e "Забыли указать имя или id пользователя!
Или ввели больше одного параметра.
Для справки выполните $0 -h"
fi
;;
esac
Если скрипт получит параметр -h, то с помощью echo просто выведет справку.
Если скрипт получит всего один любой другой параметр, то он будет считаться именем пользователя. В этом случае, если такого пользователя в системе не будет, то скрипт скажет об этом.
Если скрипт получит не 1, а больше или меньше параметров, то эта ситуация также будет обработана.
Весь код по получению открытых файлов заключен в этих строчках:
for pid in `ps -u "$1" -o pid,comm | grep -v PID | awk '{print $1}'`
do
open_files=`ls -l /proc/$pid/fd | grep "anon_inode" | wc -l`
echo "Открытых файлов для pid $pid: $open_files"
done
То есть мы пробегаемся по всем процессам данного пользователя, и для каждого процесса (pid) вычисляем количество открытых файлов.
🔨 bash_help8 882
ADB-Toolkit
BASH скрипт с 28 параметрами и раздел METASPLOIT с 6 параметрами, предназначенный для простого тестирования на проникновение в устройство Android.
🐙 Перейти на Github
🔨 bash_help
8 882
Переменная экспорта Bash
Переменная экспорта Bash — это переменная, которая доступна всем дочерним процессам текущей оболочки. Когда переменная экспортируется, она становится переменной среды, что означает, что к ней может получить доступ любая программа или сценарий, работающий в текущей среде оболочки.
Чтобы экспортировать переменную, вам нужно использовать команду экспорта, за которой следует имя переменной, которую вы хотите экспортировать. Вот пример:
export MY_VARIABLE="Hello World"
В этом примере мы экспортируем переменную MY_VARIABLE со значением «Hello World». После экспорта этой переменной она становится переменной среды, и к ней может получить доступ любой дочерний процесс текущей оболочки.
Вы также можете экспортировать несколько переменных одной командой:
export VAR1="value1" VAR2="value2" VAR3="value3"Команда
env отображает список всех переменных среды в текущей среде оболочки. Эта команда выведет список всех переменных среды, включая экспортированные вами переменные.
Экспорт переменной в Bash позволяет использовать ее в любом скрипте или программе, работающей в текущей среде оболочки. Вот пример того, как использовать экспортированную переменную в скрипте:
#!/bin/bash export MY_VARIABLE="Hello World" echo "The value of MY_VARIABLE is: $MY_VARIABLE"В этом примере мы экспортируем переменную
MY_VARIABLE со значением «Hello World» и используем ее в скрипте. скрипт будет отображать значение MY_VARIABLE при выполнении.
Вы также можете экспортировать переменные в профиль Bash, который представляет собой сценарий, который выполняется каждый раз, когда пользователь входит в систему. Экспорт переменных в профиль Bash гарантирует, что переменные будут доступны при каждом входе в систему.
Чтобы экспортировать переменную в профиль Bash, вам необходимо добавить команду экспорта в файл:
export MY_VARIABLE="Hello World"
После того, как вы добавили команду экспорта в профиль Bash, переменная будет экспортироваться каждый раз, когда вы входите в систему.
🖼️ Дочитать статью
🔨 bash_help8 882
Друзья, у вас есть возможность вдохновиться интервью Дмитрия Зайцева, директора ПК DevOps Conf: 📌статья.
И приглашаем потенциальных спикеров и активистов на онлайн-встречу с Программным комитетом конференции DevOpsConf 2024.
Встречаемся 16 ноября, в четверг, в 19:00 (МСК).
Мы с вами обсудим несколько важных вопросов:
Какие темы вы бы хотели услышать или самостоятельно подать в новой программе? Как упаковать в питч свои достижения? А если не доклад, а мастер-класс?
Спрашивайте все, что хотите знать о конференции. Обязательно объясним, как готовится конференция и сетка докладов и многое другое.
Регистрируемся на встречу:📌на сайте.
Реклама. ООО "КОНФЕРЕНЦИИ ОЛЕГА БУНИНА". ИНН 7733863233. erid: LjN8KPXpN
8 882
Как установить и включить автозаполнение команд в Bash для CentOS/RHEL?
Bash, несомненно, является самой популярной оболочкой Linux, и не удивительно, что именно это оболочка по умолчанию во многих дистрибутивах Linux. Одной из самых удобных функций этой оболочки является встроенная поддержка «автозаполнения».
Иногда это называется автозаполнением с помощью клавиши [TAB], эта функция позволяет вам легко заполнить структуру команд. Она позволяет вводить частичную команду, а затем нажимать клавишу [Tab] для автоматического завершения команды и ее аргументов. В этой функции перечислены всё множество возможных аргументов.
Как и Bash, почти все современные Linux-оболочки поставляются с поддержкой встроенных команд. В этом кратком руководстве мы покажем вам, как включить функцию автозавершения Bash в системах CentOS и RHEL.
Вот несколько основных действий, которые вы обязательно должны выполнить, чтобы упростить работу с командной строкой:
- Начальная настройка и конфигурация сервера на RHEL 7
- Начальная настройка и конфигурация сервера на CentOS 7
Во-первых, вам нужно включить репозиторий EPEL в вашей системе, а затем установить пакет автозаполнения bash и некоторые дополнительные функции, используя диспетчер пакетов YUM, таким способом:
# yum install bash-completion bash-completion-extras
Теперь, когда вы установили автозаполнение bash, вы должны включить его для начала работы. Сначала укажите файл bash_completion.sh. Вы можете использовать команду locate ниже, чтобы найти ее:
$ locate bash-completion.sh
$ source /etc/profile.d/bash_completion.sh
Кроме того, выйдите из текущего сеанса и повторно войдите в систему.
$ logout
Теперь функция автозаполнения доступна в вашей системе, вы можете попробовать ее, как показано ниже.
$ li[TAB]
$ ls .bash[TAB]
Команду [TAB] также можно выполнять для имен путей и имен переменных, и эта команда помимо всего прочего еще и хорошо программируется.
🔨 bash_help8 882
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает?
Если ты долго работал и не давал себе отдохнуть, мозг рано или поздно скажет тебе “Хватит, я устал от умных мыслей” и отключится 😵💫
Выгорание? Называй как угодно, в любом случае, из него нужно выходить.
Клиенты ведь не ждут, дедлайны горят, близкие смотрят искоса…
⚡️ Справиться с этим состоянием, избавиться от прокрастинации и вернуться к жизни тебе поможет канал Вадима - Психолог взрослого человека.
Он точно знает, как IT-специалисту выйти из застоя и вернуть себе силы и энергию.
Рекомендуем начать с его мини-курса, который, кстати, Вадим сейчас проводит бесплатно:
👉🏻 “Как избежать выгорания, даже если вы постоянно вкалываете?”.
Ты найдешь причины упадка сил, апатии и выгорания. И поймешь, как из этого выйти.
Подписывайся на канал @vadimpetrov_psy и смотри мини-курс - ссылка в закрепе.
✔️ https://t.me/+uRtk_5_4XJFiODhi ✔️
8 882
Утилита sshpass — автоматические действия с SFTP
В этой статье будут описаны автоматические действия с SFTP сервером. Например — передача или скачивание файлов с помощью bash скрипта.
Когда вы подключаетесь по SSH, то для подключения используете пароль или ключ. Если нет возможности настроить подключение по ключам, то остаётся использовать пароль. Но утилита ssh, с помощью которой мы подключаемся к серверу не разрешает подставлять пароль. Вместо этого она использует псевдо-терминал для ввода пароля вручную.
alex@deb-11:~$ ssh alex@192.168.0.34
alex@192.168.0.34's password:
Это затрудняет выполнение автоматических действий, когда у вас нет возможности использовать SSH ключи. Например такая команда не работает:
alex@deb-11:~$ (echo password) | ssh alex@192.168.0.34
Pseudo-terminal will not be allocated because stdin is not a terminal.
alex@192.168.0.34's password:
Здесь даже на терминале появилось предупреждение о том, что STDIN это вам не терминал!
Для решения этой задачи придумали утилиту sshpass, которую можно установить из репозиториев:
alex@deb-11:~$ sudo apt install sshpass
С помощью этой утилиты можно передать пароль утилите ssh. Делается это таким способом:
alex@deb-11:~$ sshpass -p "password" ssh alex@192.168.0.34
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-52-generic x86_64)
Выполнение команд ftp из bash скрипта
Но в этой статье описывается sftp а не просто ssh. Поэтому подключение будет выполнятся с помощью утилиты sftp:
alex@deb-11:~$ sshpass -p "password" sftp alex@192.168.0.34
Connected to 192.168.0.34.
sftp>
🖼️ Дочитать статью
🔨 bash_help8 882
🚀 Освой новые вершины в программировании! Три топовых ИИ-инструмента для разработки! 🔥
👉 StableCode - пишет и дебажит код, а также объясняет, какие функции выполняют уже готовые блоки и как их можно улучшить
👉 CodeRabbit – сделает код-ревью, предложит улучшения и исправления
👉 GPT Pilot – ускорит процесс разработки приложения с нуля и напишет за тебя до 95% кода
Подпишись на канал, чтобы получить более 50 нейронок для разработки и не пропустить новые
✅ AI для разработчиков ⌨️
✅ AI для веб-мастера 🖥
✅ AI для обучения и образования 📖
✅ AI для дизайнеров 🎨
✅ AI для обработки аудио и голоса 🎙
✅ АI склад 📚
8 882
swap_digger
Bash-скрипт, автоматизирующий извлечение файла подкачки Linux и поиск учетных данных пользователей, адресов электронной почты, содержимого веб-форм, WiFi SSID ключей и других чувствительных данных.
🐙 Перейти на Github
🔨 bash_help
8 882
@Social_Engineering — Самый крупный ресурс в Telegram, посвященный этичному Хакингу, OSINT и Социальной Инженерии.
8 882
Что такое $0 в скрипте Bash?
Как вы знаете, знак
$ в bash используется для обозначения переменных.
$0 – это одна из специальных переменных, которые есть в bash, и она используется для вывода имени файла скрипта, который в данный момент выполняется.
Переменная $0 может быть использована в Linux двумя способами:
1. Использовать $0 для поиска оболочки входа в систему
2. Использовать $0 для вывода имени выполняемого скрипта.
Поиск оболочки, в которую вы вошли в систему, с помощью $0
Когда $0 не используется в скрипте, она хранит информацию о том, какую оболочку вы используете в данный момент.
Если вы выведете значение $0, система покажет вам, в какой оболочке вы сейчас вошли в систему.
Использование $0 в скриптах shell
Чтобы использовать переменную $0 в скрипте, достаточно использовать простой оператор echo с этой переменной, и он выведет имя файла.
Например, здесь я буду использовать простой скрипт hello world:
#!/bin/bash echo "Hello World"Если мне нужно использовать здесь переменную
$0, все, что мне нужно сделать, это добавить следующую строку в конце:
echo $0Чтобы сделать его более человекочитаемым, вы также можете использовать что-то вроде этого:
echo "The name of the script is: " $0Таким образом, конечный результат будет выглядеть следующим образом:
#!/bin/bash echo "Hello World" echo "The name of the script is: " $0🔨 bash_help
8 882
Стоите перед выбором платформы виртуализации и изучаете рынок российских решений?
Регистрируйтесь на АМА-сессию: внутри vStack, где эксперты ответят на любые вопросы сообщества в прямом эфире. Чем платформа отличается от других продуктов? Что внутри vStack? Какие фичи появились в этом году?
Напишите свой вопрос экспертам заранее по ссылке до 14 ноября или задайте его в прямом эфире.
Специальный гость сессии — Светлана Шарапова, руководитель облачного провайдера Serverspace, который уже внедрил решение vStack и сможет поделиться опытом работы с платформой.
Кому полезно:
🔹 ИТ-директорам;
🔹 собственникам бизнеса;
🔹 облачным провайдерам;
🔹 архитекторам ИТ-инфраструктуры;
🔹 системным администраторам.
🕚16 ноября в 11.00
ЗАРЕГИСТРИРОВАТЬСЯ
Реклама. ООО "ИТГЛОБАЛКОМ ЛАБС". ИНН 7841483359. erid: LjN8Jveun
8 882
Как очистить историю командной строки BASH в Linux?
Основная причина удаления истории командной строки из терминала Linux состоит в том, чтобы предотвратить использование команд другим пользователем, который мог бы использовать вашу учетную запись.
Например, если вы ввели команду, содержащую пароль в виде обычного текста, и вы не хотите, чтобы другой системный пользователь или злоумышленник видели этот пароль, вам необходимо удалить или очистить файл истории.
Посмотрите на команду ниже, здесь пользователь yurii набрал пароль сервера базы данных в командной строке:
$ sudo mysql -u root -p=MyPassЕсли вы посмотрите в конец истории файла bash, то увидите там пароль, введенный выше:
$ historyФайл bash_history обычно находится в домашнем каталоге пользователя /home/username/.bash_history:
$ cat /home/yurii/.bash_historyЧтобы удалить одну строку из файла истории, используйте параметр -d. Например, если вы хотите очистить команду, в которой вы ввели открытый текстовый пароль, как в приведенном выше сценарии, найдите номер строки в файле истории и выполните эту команду:
$ history -d 130Чтобы удалить или очистить все записи из истории bash, используйте команду history ниже с опцией -c:
$ history -cВ качестве альтернативы, вы можете использовать команду приведенную ниже, чтобы удалить историю всех последних выполненных команд в файле навсегда:
$ cat /dev/null > ~/.bash_historyОбычный пользователь может просматривать только свою собственную историю команд, но пользователь root может просматривать историю команд всех других пользователей в системе. Всегда помните, что все команды, которые вы запускаете, записываются в файл истории, поэтому не вводите пароли в виде простого текста в командной строке. 🔨 bash_help
8 882
👋Театр начинается с вешалки, а лояльность клиентов к компании — с первого контакта с представителями... по телефону, чату и иным доступным каналам взаимодействия с клиентом.
Обсудим это на бесплатном уроке онлайн-курса «Руководитель поддержки пользователей в IT» — «Организация техподдержки с помощью колл-центра»: регистрация
Разберёмся:
— Что такое колл-центр?
— Какие задачи и функции выполняет?
— Виды КЦ
— Как измерить эффективность КЦ?
— И для чего он нужен технической поддержке?
Урок будет полезен тем, кому важен позитивный клиентский опыт — в первую очередь сотрудникам и руководителям служб поддержки.
🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8K7Q6L
8 882
Как использовать команду alias в Linux
Команда
alias — это удобный инструмент для тех, кто постоянно работает в командной строке. Пользователям Linux часто приходится использовать одну и ту же команду. Иногда с большим количеством опций, а также с одними и теми же аргументами. Необходимость постоянно писать их вручную снижает производительность и увеличивает шанс допустить ошибку. При правильном использовании, утилита alias поможет Вам быстрее вводить команды, а также исправлять опечатки.
Создайте псевдонимы alias для наиболее часто используемых команд. Псевдоним команды — это команда, состоящая из одного слова, но выполняющая другую заданную команду со всем набором опций. Механизм псевдонимов позволяет задавать более короткие или привычные имена для часто используемых команд.
Проверьте список всех псевдонимов в Linux
Команда alias без дополнительных опций и аргументов выведет на экран весь список псевдонимов, которые используются операционной системой.
Разберем устройство одного из псевдонимов. Например, alias ll. Этот псевдоним эквивалентен введению команды ls с опциями -alF. Данная команда выведет список всего содержимого директории, включая скрытые папки. Также она выделит папки другим цветом, а также пометит их при помощи косой черты (/) после названия.
Как создать псевдонимы alias в Linux
Создание псевдонимов alias — простой и быстрый процесс, напоминает присваивание переменной определенного значения в языках программирования. Существует два типа псевдонимов — временные и постоянные. В данной статье рассмотрим оба типа и научимся их использовать для упрощения работы с операционной системой GNU / Linux.
Создание временных псевдонимов
Начнем с изучения временных псевдонимов — таких, которые будут действовать только в текущей сессии терминала командной строки. В случае его выключения после начала следующего сеанса временный псевдоним будет недоступен. Разберём синтаксис создания временного псевдонима команды с помощью инструмента alias:
alias name="your-command"🖼️ Дочитать статью 🔨 bash_help
8 882
2 полезных канала для специалистов по информационной безопасности:
🔐 @it_secur — редкая литература, курсы и уникальные мануалы для ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.
👨💻 @infosec_work — актуальные предложения от самых крупных работодателей и лидеров рынка в сфере информационной безопасности.
8 882
Как улучшить и отладить bash/shell скрипты с помощью ShellCheck
ShellCheck – это бесплатный инструмент статического анализа с открытым исходным кодом, который можно использовать для проверки и улучшения скриптов. Он способен выделять как общие, так и граничные ошибки и предлагать соответствующие исправления.
ShellCheck может использоваться как онлайновая или системная утилита, а также может быть интегрирован в качестве линтера в различные текстовые редакторы.
В этом руководстве мы узнаем, как установить и использовать ShellCheck в некоторых наиболее распространенных дистрибутивах Linux, а также как интегрировать его в Vim и Visual Studio Code.
Прежде всего, давайте установим ShellCheck на нашу любимую систему на базе Linux.
Это очень простая задача, поскольку утилита упакована в программные репозитории наиболее используемых дистрибутивов.
Все, что нам нужно сделать, это использовать соответствующий менеджер пакетов.
На Fedora мы будем использовать dnf:
sudo dnf install ShellCheckВ системах на базе Debian вместо этого мы используем apt:
sudo apt install shellcheckВ Archlinux мы используем pacman:
sudo pacman -S shellcheckОб использовании инструмента можете прочитать в источнике. 🖼️ Дочитать статью 🔨 bash_help
8 882
Ранее мы вам уже рассказывали про проект Baza Camp - лагерь для удаленщиков на берегу океана на Шри-Ланке. 🇱🇰
🔴Прямо сейчас организаторы проводят прямой эфир из Шри-Ланки, где вы сможете пообщаться с ними и другими участниками поездки, а также подробно узнать про это необычное место. 😊
Кто искал куда смотаться этой зимой - рекомендуем подключиться к эфиру! 🎙
👉Прямой эфир👈
8 882
Powerline – добавляет строку статуса и подсказки редактору Vim и терминалу Bash
Отличный плагин для редактора Vim, который разработан на Python и предоставляет статус и подсказки для многих других приложений, таких как bash, zsh, tmux и др.
Шаг 1: Установка общих требований к Powerline
Из-за конфликта имен с некоторыми другими несвязанными проектами, программа Powerline доступна в PyPI (индекс пакета Python) под именем пакета как powerline-status.
Чтобы установить пакеты из PyPI, нам нужен «pip» (инструмент управления установки пакетов Python). Итак, давайте сначала установим инструмент pip для Linux.
Установите Pip на Debian, Ubuntu и Linux Mint
# apt-get install python3-pip powerline
Установите Pip на CentOS, RHEL и Fedora
В системах на базе Fedora вам необходимо сначала включить epel-repository, а затем установить пакет pip, как показано ниже.
# yum install python3-pip # dnf install python-pip [В версиях Fedora 22+]Шаг 2. Установка Powerline Tool в Linux Теперь пришло время установить Powerline с помощью команды pip, как показано ниже.
# pip3 install powerline-statusШаг 3: Установка шрифтов Powerline в Linux Powerline использует специальные шрифты для специальных эффектов стрелок и символов разработчиков. Загрузите последнюю версию шрифта и файл конфигурации fontconfig, используя следующую команду wget.
# wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf # wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.confЗатем вам нужно переместить шрифт в каталог шрифтов,
/usr/share/fonts/ или /usr/local/share/fonts, как описано ниже, или вы можете получить допустимые пути шрифтов, используя команду xset q.
# mv PowerlineSymbols.otf /usr/share/fonts/Затем вам необходимо обновить кеш-память вашей системы следующим образом.
# fc-cache -vf /usr/share/fonts/Теперь установите файл
fontconfig.
# mv 10-powerline-symbols.conf /etc/fonts/conf.d/Шаг 4: Установка Powerline для Bash Shell и Vim Statuslines В этом разделе мы рассмотрим настройку Powerline для оболочки bash и редактора vim. Сначала настройте свой терминал с поддержкой 256 цветов, добавив следующую строку в файл
~/.bashrc следующим образом.
export TERM="screen-256color"Включение Powerline на Bash Shell Чтобы включить Powerline в оболочке bash по умолчанию, вам необходимо добавить следующий фрагмент в ваш файл
~/.bashrc.
# sudo nano ~/.bashrcВ конце файла добавьте
if [ -f /usr/share/powerline/bindings/bash/powerline.sh ]; then
powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
source /usr/share/powerline/bindings/bash/powerline.sh
fi
Для отображения в текущей оболочке
source ~/.bashrcВключить Powerline для Vim Если vim является вашим любимым редактором, то вам повезло, есть мощный плагин для vim. Чтобы включить этот плагин, добавьте эти строки в файл
~/.vimrc.
set rtp + = /usr/local/lib/python2.7/dist-packages/powerline/bindings/vim/ set laststatus = 2 set t_Co = 256🔨 bash_help
