DevOps Portal | Linux
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3P8kFH
Больше📈 Аналитический обзор Telegram-канала DevOps Portal | Linux
Канал DevOps Portal | Linux (@loose_code) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 13 144 подписчиков, занимая 9 722 место в категории Технологии и приложения и 50 499 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 13 144 подписчиков.
Согласно последним данным от 13 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -84, а за последние 24 часа — -7, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 17.90%. В первые 24 часа после публикации контент обычно набирает 9.46% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 2 353 просмотров. В течение первых суток публикация набирает 1 244 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 8.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как devops, kubernetes, docker, linux, ebpf.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3P8kFH”
Благодаря высокой частоте обновлений (последние данные получены 14 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
[[ -r ~/.bashrc ]] && . ~/.bashrc
Другие оболочки ведут себя по-другому. Например, в zsh, файл .zshrc всегда читается для интерактивной оболочки, независимо от того, является ли она login или нет.
А файл .profile, это просто сценарий входа в систему. И изначально использовался в /bin/sh. Оболочка Bash, будучи обратно совместимым с sh, будет читать .profile, если он конечно же существует.
Пример файла .profile
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
Как видим, при login’е заинклудится файл .bashrc.
В дистрибутивах семейства Debian сначала выполняется .profile, а потом уже .bash_profile. А вот в дистрибах производных от RHEL, сначала выполняется .bash_profile, а уже потом .profile. Ну вот прям каша!
В документации bash хорошо объясняется, при каких обстоятельствах читается каждый файл. И поведение на разных машинах в целом одинаково.
Выжимка из man bash:
/bin/bash - The bash executable
/etc/profile - The systemwide initialization file, executed for login shells
/etc/bash.bashrc - The systemwide per-interactive-shell startup file
/etc/bash.bash.logout - The systemwide login shell cleanup file, executed when a login shell exits
~/.bash_profile - The personal initialization file, executed for login shells
~/.bashrc - The individual per-interactive-shell startup file
~/.bash_logout - The individual login shell cleanup file, executed when a login shell exits
~/.inputrc - Individual readline initialization file
👉 DevOps Portal# switch to another cluster that's in kubeconfig $ kubectx minikube Switched to context «minikube». # switch back to previous cluster $ kubectx - Switched to context «oregon». # rename context $ kubectx dublin=gke_ahmetb_europe-west1-b_dublin Context «gke_ahmetb_europe-west1-b_dublin» renamed to «dublin». # change the active namespace on kubectl $ kubens kube-system Context «test» set. Active namespace is «kube-system». # go back to the previous namespace $ kubens - Context «test» set. Active namespace is «default».Установка Можно установить с помощью Krew:
kubectl krew install ctx
kubectl krew install ns
После установки инструменты будут доступны в виде kubectl ctx и kubectl ns.
Еще можно установить так:
brew install kubectx
и так:
sudo apt install kubectx
👉 DevOps Portal | #ресурсыКоманда yes служит для вывода в стандартный поток (stdout) строки «y» или любой другой строки. Если ее запустить по умолчанию, команда будет бесконечно сыпать строку «y».Например, есть у вас консольная команда, которая во время своей работы будет запрашивать подтверждение: а вы точно уверены, что удаляете тестовую базу данных? Вот на такие случаи и нужна команда «yes», чтобы не руками вводить подтверждение, а делегировать это действие. Полезно для пайплайнов. Бывает такое, что у программы нет ключей типа apt -y install, а подтверждать как-то в автоматическом режиме нужно. Синтаксис проброса стандартный, через систему пайпов:
yes | apt install nginx
В примере выше, когда пакетный менеджер попросит нажать Y, команда «yes» автоматически это сделает и начнется процесс установки.
Не забываем, про передачу аргументов, если внешняя программа например хочет чтобы вы ввели слово: «hello» делаем так:
yes hello | apt install nginx
Но обычно на практике, в 99% случаев команда «yes» запускается без аргументов, так как большинство запрашивает именно Yes.Если есть команда «yes», значит должна быть и «no». Но увы 😁. Так вот если нужно отменить, передайте в «yes» аргументом строку «no». Что-то может запросить простого нажатия Enter, например когда в репозиторий добавляется gpg ключ. Как послать Enter? А вот так:
yes "" | <твоя команда>
Это сработает как Enter потому, что команда «yes» выводит в stdout не просто сроку Y, но еще и завершает ее в конце символом Enter. Вот именно поэтому при запуске чистого «yes», строчки на экране будут идти столбиком.👉 DevOps Portal
CONFIG_ZSWAP_DEFAULT_ON=N
Но чтобы применить эту опцию, нужно пересобрать ядро. Пойдем легким путем и выключим zswap через загрузчик grub.
Редактируем файл /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=0" loglevel=3 quiet "
Не забываем перегенирировать конфиг grub:
grub-mkconfig -o /boot/grub/grub.cfg
Перезагружаем машину и проверяем отключение zswap:
cat /sys/module/zswap/parameters/enabled
Если вывелась буква N — значит все правильно.
Ну и наконец включаем zram. Для этого пишем bash скрипт и кидаем его в автозагрузку:
#!/bin/bash
modprobe zram
mkdir /sys/block/zram0
echo lz4 > /sys/block/zram0/comp_algorithm
echo 1G > /sys/block/zram0/disksize
echo 2 > /sys/block/zram0/max_comp_streams
mkswap --label zram0 /dev/zram0
swapon --priority 100 /dev/zram0
1. Загружаем модуль zram
2. Выбираем алгоритм сжатия lz4 (либо zstd)
3. Объем zram 1гиг физической оперативки
4. 2 это количество потоков сжатия (потоки процессора)
5. Создаем блочное устройство и включаем его
Запускаем скрипт и проверяем включение командой: zramctl. Если на экран что-то вывелось, значит всё хорошо и сжатие начало работать.
Если заморачиваться с bash скриптами не хочется, ставим утилиту которая будет работать через systemd.
apt install systemd-zram-generator
Правим конфиг /etc/systemd/zram-generator.conf
[zram0]
zram-size = ram
compression-algorithm = lz4
Активируем и запускаем:
systemctl daemon-reload
systemctl start /dev/zram0
Всё! Теперь оно само будет запускаться без лишних движений.
👉 DevOps Portaluser@dev:/$ su john
Будет запрошен пароль, нужно ввести пароль именно от учетной записи john, а не от user.
А вот пример с sudo:
user@dev:/$ sudo -u john whoami
А здесь нужно ввести пароль от учетной записи user, а не от John или рута. Но для этого случая сперва необходимо добавить пермишены для пользователя user в файл /etc/sudoers.
user ALL=(ALL:ALL) ALL
Редактировать этот файл можно по средствам команды visudo. А свалидировать конфиг можно командой visudo -c. Редактирование этого файла через visodu хорошо тем, что если вы допустите ошибку, то при сохранении, оно сообщит о ней.А для чего нужен дефис после su? Для очистки переменных и чтобы пользоваться чистой оболочкой при переключении на другого пользователя. Авторизуемся под пользователем user и экспортируем переменную:
ssh user@pc
export a="test"
Теперь у пользователя user есть переменная "a" которая = test.
Переключаемся на пользователя John и смотрим переменную "a"
su john
echo $a
Вывелась строчка test. То есть все что мы задали под user, перекочевало в оболочку john. А теперь добавим дефис:
su - john
echo $a
Переменная $a больше не выводится. Чистая оболочка. Кстати с этим дефисом часто косячат и потом долго не могут понять в чем причина. Переменные вроде были заданы, а потом куда-то пропали.
su (с дефисом) — сначала переключается пользователь, а затем запускается shell, зачищаются все переменные.
su (без дефиса) — переключает пользователя, оставляя переменные окружения старого пользователя.У sudo есть подобные ключи -s -i
user@pc:/$ sudo -s
Запустится оболочка с правами root
user@pc:/$ sudo -i
Запустится оболочка, но уже с чтением файлов root/.profile/.bashrc и т.п. Можно попробовать добавить экспорт переменной в .profile, сделать sudo -s/-i и увидеть что с ключом -i переменная выведется на экран.
По сути sudo -i = команде sudo su -. Но обычно за sudo su - в приличных местах можно получить по шапке. Это плохая практика! Так как это порождает дополнительный процесс и больше гемора с набором самой команды.👉 DevOps Portal
#!/bin/bash
A="10"
B="5"
C=`expr $A + $B`
printf "A=10 B=5 C=expr \$A + \$B C=%d \n" "$C"
# пример цикла по i
I=0
while [ $I -lt 15 ]
do
printf "0x%02x " "$I"
I=`expr $I + 1`
done
echo
Разного рода проверки
#!/bin/bash
# пример проверки существования файла
# создаем файл test1
touch test1
# проверяем существование файла test1
if [ -f test1 ] ; then
echo "файл test1 существует"
fi
# проверяем несуществование файла test2
if ! [ -f test2 ] ; then
echo "файл test2 не существует"
fi
# краткая справка по другим опциям команды [ ]
# -d filename директория существует
# -f filename файл существует
# -L filename символьная ссылка существует
# -r, -w, -x файл доступен для чтения, записи или выполнения
# -s filename файл существует и имеет ненулевую длину
# f1 -nt f2 f1 новее чем f2
# f1 -ot f2 f1 старше чем f2
Работа с FTP
#!/bin/bash
ADDRESS=192.168.1.150
USER=root
PASSWORD=root
ftp -n -p ADDRESS <<EoF
user USER PASSWORD
cd /usr/bin
put my_cool_program
quit
EoF
exit 0
Работа с telnet
#!/bin/bash
(
sleep 1
echo "root"
echo "cd /tmp"
echo "ls"
sleep 1
echo "quit"
) | telnet 192.168.1.150
Примечание: в этом случае root логинится без пароля, если нужен пароль, то надо добавить после echo "root" еще одно эхо с паролем.
Пример цикла по множеству значений
#!/bin/bash
# пример цикла по множеству значений
for A in раз два три четыре пять
do
echo "$A,"
done
echo "вышел заяц погулять"
echo
Не забываем, что для того, чтоб скрипт можно было запустить, надо изменить права доступа к нему, добавив возможность исполнения файла, например командой
chmod a+x script.sh
👉 DevOps Portal
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
