LinuxSkill - Сводки с прода и Шпаргалки
Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам. Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале. 📩 По всем вопросам: @chorapov Зеркало в MAX: https://max.ru/LinuxSkill РКН https://vk.cc/cMUwm4
Больше📈 Аналитический обзор Telegram-канала LinuxSkill - Сводки с прода и Шпаргалки
Канал LinuxSkill - Сводки с прода и Шпаргалки (@linuxskill) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 10 739 подписчиков, занимая 11 148 место в категории Технологии и приложения и 59 588 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 10 739 подписчиков.
Согласно последним данным от 02 сентября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -53, а за последние 24 часа — -3, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 11.96%. В первые 24 часа после публикации контент обычно набирает 4.94% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 1 285 просмотров. В течение первых суток публикация набирает 531 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 4.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как docker, linux, bash, devops, скрипт.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам.
Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале.
📩 По всем вопросам: @chorapov
Зеркало в MAX: https://max.ru/LinuxSkill
РКН https://vk.cc/cMUwm4”
Благодаря высокой частоте обновлений (последние данные получены 03 сентября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
# 1. Создать директорию и сразу в нее перейти
mkcd() {
mkdir -p "$1" && cd "$1"
}
# 2. Подняться на N уровней вверх. Если аргумент не передан, поднимаемся на 1 (защита от syntax error)
up() {
local d=""
local limit="${1:-1}"
for ((i=1; i<=limit; i++)); do d+="../"; done
cd "$d"
}
# 3. Быстрый поиск файла по имени в текущей директории
ff() {
find . -type f -iname "*$1*"
}
# 4. Быстрый поиск директории по имени
fd() {
find . -type d -iname "*$1*"
}
# 5. Узнать размер директории. Если путь не передан, считаем текущую (.)
dirsize() {
du -sh "${1:-.}"
}
Работа с процессами и историей
# 6. Найти процесс, отсекая из вывода сам grep
psg() {
ps aux | grep -i "$1" | grep -v grep
}
# 7. Посмотреть N последних введенных команд (по умолчанию 10)
h() {
history | tail -n "${1:-10}"
}
# 8. Быстрый поиск по истории команд
hg() {
history | grep "$1"
}
Сеть и порты
# 9. Поднять HTTP-сервер в текущей папке (по умолчанию порт 8000)
serve() {
python3 -m http.server "${1:-8000}"
}
# 10. Узнать свой внешний IP-адрес
myip() {
curl -s ifconfig.me
}
# 11. Узнать IP-адрес нужного домена
ipinfo() {
dig +short "$1"
}
# 12. Показать все открытые слушающие порты
ports() {
ss -tuln
}
Система и безопасность
# 13. Полная очистка терминала вместе с буфером прокрутки
cls() {
clear && printf '\e[3J'
}
# 14. Универсальная распаковка архива с проверкой существования файла
extract() {
if [ -f "$1" ]; then
case "$1" in
*.tar.bz2|*.tbz2) tar xjf "$1" ;;
*.tar.gz|*.tgz) tar xzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xf "$1" ;;
*.zip) unzip "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "Неизвестный архив" ;;
esac
else
echo "Файл '$1' не найден"
fi
}
# 15. Безопасный rm: защита от пустого вызова и регистронезависимое подтверждение (Y/y)
rm() {
if [ -z "$1" ]; then
command rm
return
fi
ls -FCsd -- "$@"
read -p 'Удалить безвозвратно? [y/N] ' ans
if [[ "$ans" =~ ^[Yy]$ ]]; then
command rm -rf -- "$@"
fi
}
Все конструкции используют конструкцию ${1:-значение}, которая спасает bash от падения при пустых переменных. Добавь нужные блоки в свой файл конфигурации и выполни команду source ~/.bashrc для применения изменений.
❗️❗️❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #Bash #CLI #DevOps #Bashrcsystemctl enable nftables, чтобы защита пережила перезагрузку.
❗️❗️❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #Security #nftables #Firewall #DevOpsОбычный SSH-туннель или прокси падает при малейшем сбое сети, оставляя тебя без связи. Утилита autossh решает эту проблему: она оборачивает SSH-соединение, мониторит его состояние и автоматически перезапускает при обрыве. Ниже подробная шпаргалка, как поднять вечные туннели для любых задач. 1. Поднимаем постоянный локальный SSH-туннель (Local port forward) Пробрасываем удаленный порт 80 на локальный 8080 с портом мониторинга 20000❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #шпаргалка@LinuxSkill #SSH #Autossh #Linux #DevOps #SysAdminautossh -M 20000 -N -L 8080:localhost:80 user@remote2. Туннель без отдельного порта мониторинга Полезно, если порты мониторинга закрыты (полагается на ServerAliveInterval)autossh -M 0 -N -L 8080:localhost:80 user@remote3. Поднимаем вечный обратный туннель (Reverse port forward) Пробрасываем наш локальный порт 80 на удаленный порт 8080autossh -M 20000 -N -R 8080:localhost:80 user@remote4. Запуск в фоновом режиме Ключ -f уводит процесс в фон сразу после аутентификацииautossh -f -M 20000 -N -L 8080:localhost:80 user@remote5. Создаем неразрывный SOCKS-проксиautossh -M 20000 -N -D 8080 user@remote6. Управление через переменные окружения Включаем отладку и задаем задержку перед первой проверкой (по умолчанию 30 сек)AUTOSSH_DEBUG=1 AUTOSSH_GATETIME=10 autossh -M 20000 -N -D 8080 user@remoteНастрой это один раз, и твои пробросы портов больше никогда не умрут от смены IP или перезагрузки роутера. Проверь свои туннели прямо сейчас.
Скрипт отработал с ошибкой, но не остановился и удалил половину нужных файлов? Или CI/CD пайплайн споткнулся о пустую переменную? Я отжал воду из огромных справочников и оставил ровно 50 самых хардкорных и важных конструкций Bash, которые жизненно необходимы. 1. Безопасность и запуск (Strict Mode)❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #шпаргалка@LinuxSkill ⭐️ Зеркало в MAX #Linux #Bash #DevOps #Sysadmin #ShellScripting #CLIЭти настройки — стандарт де-факто для любых production-скриптов. Они отлавливают ошибки на раннем этапе.# Указать интерпретатор (лучшая практика переносимости) #!/usr/bin/env bash # Сделать скрипт исполняемым chmod +x script.sh # "Strict Mode" (выход при ошибке, ошибке переменной или в пайплайне) set -euo pipefail # Выйти немедленно при ошибке set -e # Режим отладки (выводить команды перед выполнением) set -x2. Продвинутая работа с переменнымиЗащита от пустых значений, которые могут сломать автоматизацию. # Присвоить значение (строго без пробелов вокруг =) VAR=value # Безопасное чтение с кавычками (предотвращает word splitting) "$VAR" # Использовать по умолчанию, если переменная не задана (важно для Docker) ${VAR:-default} # Назначить значение по умолчанию, если VAR не задана ${VAR:=default} # Выйти с ошибкой, если переменная не задана (failsafe для деплоя) ${VAR:?error msg} # Сделать переменную доступной только для чтения (константа) readonly VAR # Экспортировать переменную для дочерних процессов export VAR3. Системные переменныеИдентификаторы процессов и аргументы функций. # Имя скрипта $0 # Позиционные параметры (аргументы 1-9) $1..$9 # Количество переданных аргументов $# # Все аргументы безопасно как отдельные слова $@ # Статус выхода последней команды (0 - успех, иное - ошибка) $? # PID текущего процесса shell $$4. Парсинг строк (без вызова awk/sed)Молниеносные встроенные манипуляции с путями и текстом. # Удалить самое короткое совпадение паттерна с начала ${VAR#pattern} # Удалить самое короткое совпадение с конца (удобно для расширений файлов) ${VAR%pattern} # Заменить все вхождения подстроки ${VAR//old/new} # Перевести все символы в нижний регистр ${VAR,,}5. Условия и мощные проверкиИспользуй `[[ ]]` вместо старого `[ ]` — это безопаснее и поддерживает регулярные выражения. # Проверить существование файла и вывести результат if [[ -f "file.txt" ]]; then echo "exists"; fi # Проверка по регулярному выражению =~ # Конструкция case (идеально для стартовых скриптов systemd) case "$1" in start) echo "Starting";; stop) echo "Stopping";; *) echo "Usage: $0 {start|stop}";; esac # Файл существует и является обычным -f file # Файл существует и является директорией -d file # Строка пустая -z string # Строка не пустая -n string # Строковое равенство и неравенство == != # Числовое равенство и неравенство -eq -ne6. Массивы и словариНезаменимо для перебора IP-адресов, списков серверов и портов. # Объявить индексированный массив arr=(a b c) # Получить все элементы массива ${arr[@]} # Узнать количество элементов в массиве ${#arr[@]} # Объявить ассоциативный массив (словарь) declare -A map # Добавить значение по ключу map[key]="value"7. Математика, Ввод/Вывод и СигналыФорматирование вывода для дашбордов и правильная очистка мусора за скриптом. # Арифметика: сложение $((a + b)) # Арифметическое присваивание let "a += 5" # Прочитать строку в массив read -r -a items <<< "a b c" # Форматированный вывод (надежнее чем echo) printf "Name: %s, Age: %d\n" "$name" "$age" # Многострочный ввод (Here document) для генерации конфигов cat <<EOF Lines of text go here. Variables like $HOME are expanded. $ EOF # Завершить скрипт с кодом успеха exit 0 # Завершить скрипт с кодом ошибки exit 1 # Выполнить очистку (например, удалить лок-файл) при любом выходе trap ' rm -f /tmp/mylock' EXITТеперь твой код готов к нагрузкам. Сохраняй шпаргалку, чтобы не плодить костыли, и применяй правильный синтаксис!
