Закрываем Docker-порты правильно
Даже если ты настроил ufw и открыл порты только на 22, 433 и 80, у тебя все равно сервисы docker могут торчать наружу. Это происходит потому что docker напрямую управляет iptables/nftables, вставляя свои правила до UFW, поэтому опубликованные порты могут быть доступны, даже если UFW их не показывает.
Почему это небезопасно:
Если ты запускаешь контейнер так:
Или в docker-compose у тебя:
То Docker сам открывает порт всему интернету (0.0.0.0), даже если в ufw status его нет. Это значит, что любой человек из сети может достучаться до твоего контейнера и ufw это не остановит - Docker обходит его фильтры.
Как правильно защитить контейнер:
Лучше всего конечно вообще не открывать порт наружу, если в этом нет нужды. Безопасный вариант (локальный доступ):
либо в docker-compose.yml:
Так сервис будет доступен только внутри сервера. Подходит для проксирования через nginx, который проксирует наружу, скрытых API и внутренних утилит, ssh-туннелей или VPN.
Вариант с открытым портом контейнера:
Если все-таки нужно по какой-то причине поднять контейнер на 0.0.0.0, то лучше закрыть эти порты с помощью правил. Docker поддерживает специальную цепочку DOCKER-USER, где ты можешь сам прописать фильтры:
Важно: правила читаются сверху вниз, поэтому разрешающие вставляем перед правилом DROP.
Проверка:
Если вывод пуст - порт больше не слушает «снаружи».
Вывод:
Docker по умолчанию открывает всё наружу, даже если UFW говорит, что порты закрыты. Если не нужен внешний доступ, не публикуй порты или публикуй на 127.0.0.1. Если доступ нужен - используй DOCKER-USER, чтобы жёстко ограничить доступ к нужным портам.
LinuxCamp | #devops #docker #bymaga
Даже если ты настроил ufw и открыл порты только на 22, 433 и 80, у тебя все равно сервисы docker могут торчать наружу. Это происходит потому что docker напрямую управляет iptables/nftables, вставляя свои правила до UFW, поэтому опубликованные порты могут быть доступны, даже если UFW их не показывает.
Почему это небезопасно:
Если ты запускаешь контейнер так:
docker run -p 8080:80 …
Или в docker-compose у тебя:
ports:
- "8080:80"
То Docker сам открывает порт всему интернету (0.0.0.0), даже если в ufw status его нет. Это значит, что любой человек из сети может достучаться до твоего контейнера и ufw это не остановит - Docker обходит его фильтры.
Как правильно защитить контейнер:
Лучше всего конечно вообще не открывать порт наружу, если в этом нет нужды. Безопасный вариант (локальный доступ):
docker run -p 127.0.0.1:8080:80 …
либо в docker-compose.yml:
ports:
- "127.0.0.1:8080:80"
Так сервис будет доступен только внутри сервера. Подходит для проксирования через nginx, который проксирует наружу, скрытых API и внутренних утилит, ssh-туннелей или VPN.
Вариант с открытым портом контейнера:
Если все-таки нужно по какой-то причине поднять контейнер на 0.0.0.0, то лучше закрыть эти порты с помощью правил. Docker поддерживает специальную цепочку DOCKER-USER, где ты можешь сам прописать фильтры:
# Разрешаем уже установленные соединения
sudo iptables -I DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Разрешаем только нужный порт (например, 8080)
sudo iptables -I DOCKER-USER -p tcp --dport 8080 -j ACCEPT
# Всё остальное режем
sudo iptables -A DOCKER-USER -j DROP
Важно: правила читаются сверху вниз, поэтому разрешающие вставляем перед правилом DROP.
Проверка:
ss -lntp | grep 8080 # Слушает ли порт
Если вывод пуст - порт больше не слушает «снаружи».
Вывод:
Docker по умолчанию открывает всё наружу, даже если UFW говорит, что порты закрыты. Если не нужен внешний доступ, не публикуй порты или публикуй на 127.0.0.1. Если доступ нужен - используй DOCKER-USER, чтобы жёстко ограничить доступ к нужным портам.
LinuxCamp | #devops #docker #bymaga
👍36🔥12❤8👌7✍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁65👍6❤4💔3🔥1
Как найти процесс, который грузит сеть?
В случае когда соединение начинает тормозить, а ты не понимаешь, кто именно грузит сеть. Может, какой-то скрипт что-то качает? Или случайно оставил curl в фоне? В таких случаях хочется просто одной командой увидеть, какой процесс активнее всех гоняет трафик.
Для этого есть простая, но очень удобная утилита - nethogs. Она показывает, какой процесс сколько трафика использует в реальном времени. Интерфейс у неё похож на top, только вместо нагрузки на CPU - сетевой трафик.
Установка:
Использование:
Запустить её можно вообще без параметров:
В этом случае она попытается определить интерфейс автоматически. Часто этого достаточно. Если ты точно знаешь, через какой интерфейс идёт трафик (чаще всего это eth0, но может быть ens18, enp0s3, wlan0, зависит от системы и типа подключения), то можешь указать его явно:
После запуска ты увидишь список процессов, которые что-то скачивают или отдают. Указывается имя процесса, путь до исполняемого файла, пользователь, и скорость входящего/исходящего трафика.
Всё обновляется в реальном времени, можно наблюдать за сетевой активностью прямо на лету. Если не уверен, какой интерфейс использовать, глянь список всех с помощью команды:
Команда покажет список всех интерфейсов. Обычно нужный - это тот, где есть IP-адрес из подсети (например, 192.168.*.* или 10.*.*.*), и видно state UP.
Вывод:
Так можно удобно на сервере быстро понять, кто шумит. Или локально, если подозреваешь, что какая-то программа активно лезет в интернет. Утилита nethogs не показывает домены, IP-адреса или порты, а только процессы и их скорость. Но для локальной отладки этого обычно хватает с головой.
LinuxCamp | #utils
В случае когда соединение начинает тормозить, а ты не понимаешь, кто именно грузит сеть. Может, какой-то скрипт что-то качает? Или случайно оставил curl в фоне? В таких случаях хочется просто одной командой увидеть, какой процесс активнее всех гоняет трафик.
Для этого есть простая, но очень удобная утилита - nethogs. Она показывает, какой процесс сколько трафика использует в реальном времени. Интерфейс у неё похож на top, только вместо нагрузки на CPU - сетевой трафик.
Установка:
sudo apt install nethogs
Использование:
Запустить её можно вообще без параметров:
sudo nethogs
В этом случае она попытается определить интерфейс автоматически. Часто этого достаточно. Если ты точно знаешь, через какой интерфейс идёт трафик (чаще всего это eth0, но может быть ens18, enp0s3, wlan0, зависит от системы и типа подключения), то можешь указать его явно:
sudo nethogs eth0
После запуска ты увидишь список процессов, которые что-то скачивают или отдают. Указывается имя процесса, путь до исполняемого файла, пользователь, и скорость входящего/исходящего трафика.
Всё обновляется в реальном времени, можно наблюдать за сетевой активностью прямо на лету. Если не уверен, какой интерфейс использовать, глянь список всех с помощью команды:
ip a
Команда покажет список всех интерфейсов. Обычно нужный - это тот, где есть IP-адрес из подсети (например, 192.168.*.* или 10.*.*.*), и видно state UP.
Вывод:
Так можно удобно на сервере быстро понять, кто шумит. Или локально, если подозреваешь, что какая-то программа активно лезет в интернет. Утилита nethogs не показывает домены, IP-адреса или порты, а только процессы и их скорость. Но для локальной отладки этого обычно хватает с головой.
LinuxCamp | #utils
👍52🔥18❤13
Автоматическая защита SSH от перебора
Fail2ban - утилита для автоматической блокировки ip-адресов, с которых идёт много неудачных попыток подключения по ssh. Она нужна, когда сервер доступен напрямую по порту 22 и авторизация по SSH открыта во внешний интернет без vpn.
Установка:
По умолчанию fail2ban готов к работе сразу после установки. Чтобы убедиться, что он запущен и будет стартовать автоматически при перезагрузке системы, можно выполнить:
Базовая настройка:
Основные параметры fail2ban находятся в конфигурационном файле. Чтобы его изменить, сначала создайте копию стандартного файла, так безопаснее и проще для управления:
Затем отредактируйте файл:
В самом верху задаются базовые настройки: сколько времени держать IP заблокированным (bantime), за какой промежуток времени подсчитывать неудачные попытки (findtime), и после скольких попыток банить (maxretry). Например:
Здесь fail2ban будет банить IP на 1 час (3600 секунд), если за последние 10 минут (600 секунд) с него было 5 неудачных попыток входа. Отдельно включается защита SSH:
После внесения изменений нужно перезапустить fail2ban, чтобы они вступили в силу:
Для проверки текущего состояния защиты SSH используется:
Эта команда покажет, сколько IP-адресов сейчас заблокировано и сколько всего попыток было зафиксировано.
Вывод:
Использовать fail2ban рекомендуется вместе с другими подходами к защите сервера: строгой авторизацией только по ключам, изменением стандартного порта SSH, ограничением доступа с помощью firewall и регулярными обновлениями системы.
LinuxCamp | #utils
Fail2ban - утилита для автоматической блокировки ip-адресов, с которых идёт много неудачных попыток подключения по ssh. Она нужна, когда сервер доступен напрямую по порту 22 и авторизация по SSH открыта во внешний интернет без vpn.
Установка:
sudo apt install fail2ban
По умолчанию fail2ban готов к работе сразу после установки. Чтобы убедиться, что он запущен и будет стартовать автоматически при перезагрузке системы, можно выполнить:
sudo systemctl enable --now fail2ban
Базовая настройка:
Основные параметры fail2ban находятся в конфигурационном файле. Чтобы его изменить, сначала создайте копию стандартного файла, так безопаснее и проще для управления:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Затем отредактируйте файл:
sudo nano /etc/fail2ban/jail.local
В самом верху задаются базовые настройки: сколько времени держать IP заблокированным (bantime), за какой промежуток времени подсчитывать неудачные попытки (findtime), и после скольких попыток банить (maxretry). Например:
[DEFAULT]
ignoreip = 127.0.0.1
bantime = 3600
findtime = 600
maxretry = 5
Здесь fail2ban будет банить IP на 1 час (3600 секунд), если за последние 10 минут (600 секунд) с него было 5 неудачных попыток входа. Отдельно включается защита SSH:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
После внесения изменений нужно перезапустить fail2ban, чтобы они вступили в силу:
sudo systemctl restart fail2ban
Для проверки текущего состояния защиты SSH используется:
sudo fail2ban-client status sshd
Эта команда покажет, сколько IP-адресов сейчас заблокировано и сколько всего попыток было зафиксировано.
Вывод:
Использовать fail2ban рекомендуется вместе с другими подходами к защите сервера: строгой авторизацией только по ключам, изменением стандартного порта SSH, ограничением доступа с помощью firewall и регулярными обновлениями системы.
LinuxCamp | #utils
👍38🔥17❤5❤🔥5
KDE Plasma 6.4.4
Всем любителям окружения KDE Plasma посвящается) Вышел неплохой релиз. Что исправили и доработали в версии 6.4.4?
KWin (оконный менеджер)
— Теперь, для плагина лупы, правильно устанавливает начальный уровень масштабирования, так что больше не возникнет неловких проблем при первом запуске.
— Реже возникают "зависания" при работе с несколькими мониторами.
— Внесено множество исправлений, включая улучшенное поведение перетаскивания на прокручиваемых рабочих столах.
— Более стабильное редактирование виджетов панели для языков с письмом справа налево.
Discover (центр приложений)
— Discover стал надежнее в управлении удаленными источниками Flatpak.
— Теперь он не "задумывается" по 5 минут при проверке обновлений.
— Исправлены ошибки, из-за которых иногда не отображались доступные программы.
А так же исправили:
— Улучшена совместимость с новыми видеодрайверами (особенно для NVIDIA).
— Сетевой плагин System Monitor больше не опережает события, объявляя данные для процессов, которые еще не полностью загружены.
➡️ Подробнее про обновление читать ТУТ
🔥 Давайте, по приколу: все, кто использует KDE, ставьте пламя
LinuxCamp | #news
Всем любителям окружения KDE Plasma посвящается) Вышел неплохой релиз. Что исправили и доработали в версии 6.4.4?
KWin (оконный менеджер)
— Теперь, для плагина лупы, правильно устанавливает начальный уровень масштабирования, так что больше не возникнет неловких проблем при первом запуске.
— Реже возникают "зависания" при работе с несколькими мониторами.
— Внесено множество исправлений, включая улучшенное поведение перетаскивания на прокручиваемых рабочих столах.
— Более стабильное редактирование виджетов панели для языков с письмом справа налево.
Discover (центр приложений)
— Discover стал надежнее в управлении удаленными источниками Flatpak.
— Теперь он не "задумывается" по 5 минут при проверке обновлений.
— Исправлены ошибки, из-за которых иногда не отображались доступные программы.
А так же исправили:
— Улучшена совместимость с новыми видеодрайверами (особенно для NVIDIA).
— Сетевой плагин System Monitor больше не опережает события, объявляя данные для процессов, которые еще не полностью загружены.
LinuxCamp | #news
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥76👍13❤9
Торвальдс снова агрессирует
Вы уже 100% видели эту новость, но давайте и у меня будет.
«Мусор», который «активно делает мир худшим местом для жизни» — так Линус Торвальдс вчера ответил на код инженера Google, присланный в рамках обновления поддержки RISC-V в ядре Linux.
Он добавил, что коду инженера Google «самое место в мусорке». Как вы уже догадались, данный коммит был отклонен.
Короче, желаю вам активно прокачивать софт скиллы, чтобы ваши комментарии не репостил кажды первый IT паблик)
LinuxCamp | #news
Вы уже 100% видели эту новость, но давайте и у меня будет.
«Мусор», который «активно делает мир худшим местом для жизни» — так Линус Торвальдс вчера ответил на код инженера Google, присланный в рамках обновления поддержки RISC-V в ядре Linux.
Он добавил, что коду инженера Google «самое место в мусорке». Как вы уже догадались, данный коммит был отклонен.
Короче, желаю вам активно прокачивать софт скиллы, чтобы ваши комментарии не репостил кажды первый IT паблик)
LinuxCamp | #news
👍34😁18🔥6🥴5❤4
Минимальная настройка мониторинга контейнеров в терминале
Иногда нужно быстро оценить, что происходит с контейнерами: какие из них под нагрузкой, сколько памяти занято, нет ли узких мест по I/O.
Утилита ctop показывает это в реальном времени и позволяет сразу управлять контейнерами без переключения на другие команды.
Установка:
Свежая версия ctop работает и с cgroup v2, поэтому ставим бинарник напрямую из репозитория проекта.
Использование:
Чтобы просмотреть ресурсы всех контейнеров на локальном хосте, достаточно выполнить одну команду:
В интерфейсе можно переключаться между контейнерами стрелками, останавливать или перезапускать их, а также открывать логи прямо оттуда. Если нужно подключиться к удалённому Docker, можно указать адрес перед запуском:
Для тех, кто не хочет ставить бинарник на хост, есть запуск из контейнера:
Чем отличается от docker stats:
docker stats тоже показывает ресурсы, но только в виде списка с метриками. В ctop всё представлено в виде интерактивной таблицы с сортировкой, поиском, фильтрацией и возможностью управлять контейнерами прямо из интерфейса.
Это удобнее, когда нужно не просто увидеть цифры, а быстро действовать, не выходя из одной программы.
Вывод:
С помощью ctop можно в пару команд получить наглядную картину по всем контейнерам, переключаться между хостами и при необходимости управлять ими прямо из терминала. Такой способ полезен как при мониторинге и отладке, так и при повседневной работе с Docker.
LinuxCamp | #utils #devops #docker #bymaga
Иногда нужно быстро оценить, что происходит с контейнерами: какие из них под нагрузкой, сколько памяти занято, нет ли узких мест по I/O.
Утилита ctop показывает это в реальном времени и позволяет сразу управлять контейнерами без переключения на другие команды.
Установка:
Свежая версия ctop работает и с cgroup v2, поэтому ставим бинарник напрямую из репозитория проекта.
sudo install -m 0755 -d /usr/local/bin
curl -L https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -o /tmp/ctop
sudo install -m 0755 /tmp/ctop /usr/local/bin/ctop
ctop -v
Использование:
Чтобы просмотреть ресурсы всех контейнеров на локальном хосте, достаточно выполнить одну команду:
ctop
В интерфейсе можно переключаться между контейнерами стрелками, останавливать или перезапускать их, а также открывать логи прямо оттуда. Если нужно подключиться к удалённому Docker, можно указать адрес перед запуском:
DOCKER_HOST=tcp://remote-host:2375 ctop
Для тех, кто не хочет ставить бинарник на хост, есть запуск из контейнера:
docker run --rm -ti \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
quay.io/vektorlab/ctop:latest
Чем отличается от docker stats:
docker stats тоже показывает ресурсы, но только в виде списка с метриками. В ctop всё представлено в виде интерактивной таблицы с сортировкой, поиском, фильтрацией и возможностью управлять контейнерами прямо из интерфейса.
Это удобнее, когда нужно не просто увидеть цифры, а быстро действовать, не выходя из одной программы.
Вывод:
С помощью ctop можно в пару команд получить наглядную картину по всем контейнерам, переключаться между хостами и при необходимости управлять ими прямо из терминала. Такой способ полезен как при мониторинге и отладке, так и при повседневной работе с Docker.
LinuxCamp | #utils #devops #docker #bymaga
🔥23👍15❤4❤🔥4🥴1
Прикольный сервис по разбору команд
Наткнулся тут в ленте на ExplainShell (интерактивный разборщик команд Linux) и решил мельком глянуть.
Работает он так: вбиваешь команду целиком, и получаешь объяснение, что конкретно делает каждый аргумент или оператор оболочки.
Работает на базе ~30k man-страниц из Ubuntu. Также является открытым решением (ссылка на Github). Мб кому-то будет интересно залезть внутрь и посмотреть реализацию. Под капотом у него: Python, NLTK, Flask и d3.js.
Конечно, в эпоху GPT юзкейс этого сервиса минимален... Но если нужно, допустим, убедиться в корректности оператора и лень открывать man в ручную, можно использовать.
LinuxCamp | #services
Наткнулся тут в ленте на ExplainShell (интерактивный разборщик команд Linux) и решил мельком глянуть.
Работает он так: вбиваешь команду целиком, и получаешь объяснение, что конкретно делает каждый аргумент или оператор оболочки.
Работает на базе ~30k man-страниц из Ubuntu. Также является открытым решением (ссылка на Github). Мб кому-то будет интересно залезть внутрь и посмотреть реализацию. Под капотом у него: Python, NLTK, Flask и d3.js.
Конечно, в эпоху GPT юзкейс этого сервиса минимален... Но если нужно, допустим, убедиться в корректности оператора и лень открывать man в ручную, можно использовать.
Сори за перезалив🗣
LinuxCamp | #services
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍15❤9🥴1
Быстрая работа с json и yaml прямо в терминале
Иногда нужно быстро вытащить нужный параметр из конфигурации, проверить значение в json-ответе api или подправить yaml-файл, не открывая редактор.
Делать это вручную неудобно, особенно в скриптах и автоматизации. Здесь помогают jq и yq - это лёгкие утилиты, которые умеют разбирать, фильтровать и менять данные прямо в терминале.
Установка:
jq легко ставится из стандартных репозиториев, и после этого можно сразу работать с json:
С yq важно не путать версию на Go с устаревшей на Python, у них разные возможности. Быстрее всего взять готовый бинарник с официального репозитория:
Как использовать?
jq читает данные из файла или из пайпа, что удобно, когда работаешь с api. Например, чтобы вытащить значение поля name из json:
Если внутри массив, можно пройти по каждому элементу и взять только нужные значения. Такой приём часто используют для вытаскивания id:
yq делает то же самое с yaml и к тому же понимает json. Если нужно узнать, какой образ используется в docker-compose.yml:
Менять файлы тоже просто, добавляем -i и задаём новое значение, например, меняем порт:
Полезно помнить, что оба инструмента можно комбинировать с grep, awk и другими утилитами, а yq умеет работать с вложенными yaml-файлами, что упрощает правку сложных конфигов kubernetes.
Вывод:
С помомью jq и yq можно автоматизировать множество рутинных задач: от чтения конфигов в ci/cd до быстрой правки параметров без открытия редактора.
Такой подход экономит время и позволяет обрабатывать данные прямо в командной строке, без лишних инструментов.
LinuxCamp | #utils
Иногда нужно быстро вытащить нужный параметр из конфигурации, проверить значение в json-ответе api или подправить yaml-файл, не открывая редактор.
Делать это вручную неудобно, особенно в скриптах и автоматизации. Здесь помогают jq и yq - это лёгкие утилиты, которые умеют разбирать, фильтровать и менять данные прямо в терминале.
Установка:
jq легко ставится из стандартных репозиториев, и после этого можно сразу работать с json:
sudo apt install jq
С yq важно не путать версию на Go с устаревшей на Python, у них разные возможности. Быстрее всего взять готовый бинарник с официального репозитория:
sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq
sudo chmod +x /usr/local/bin/yq
Как использовать?
jq читает данные из файла или из пайпа, что удобно, когда работаешь с api. Например, чтобы вытащить значение поля name из json:
jq '.name' config.json
Если внутри массив, можно пройти по каждому элементу и взять только нужные значения. Такой приём часто используют для вытаскивания id:
jq '.[].id' data.json
yq делает то же самое с yaml и к тому же понимает json. Если нужно узнать, какой образ используется в docker-compose.yml:
yq '.services.app.image' docker-compose.yml
Менять файлы тоже просто, добавляем -i и задаём новое значение, например, меняем порт:
yq -i '.services.app.ports[0] = "8080:80"' docker-compose.yml
Полезно помнить, что оба инструмента можно комбинировать с grep, awk и другими утилитами, а yq умеет работать с вложенными yaml-файлами, что упрощает правку сложных конфигов kubernetes.
Вывод:
С помомью jq и yq можно автоматизировать множество рутинных задач: от чтения конфигов в ci/cd до быстрой правки параметров без открытия редактора.
Такой подход экономит время и позволяет обрабатывать данные прямо в командной строке, без лишних инструментов.
LinuxCamp | #utils
🔥28👍15❤8🥴1
Увеличение рыночной доли Linux
ОС Linux с каждым годом все более уверенно подгребает под себя пользователей и набирает обороты.
Подъехали свежие цифры текущей доли рынка Linux на десктопах:
— Судя по статистике от различных источников (Statcounter, Steam Survey, Statista и Stack Overflow), доля Linux на десктопах варьируется от 2,7% до 4%.
— Среди геймеров на Steam она составляет ~ 2,9%, опережая macOS.
— По опросу вутри Steam, самыми ходовыми ос являются: Arch Linux, Linux Mint и Ubuntu.
Так что продолжаем проталкиваться в массы и учить программирование, чтобы проталкивать Linux в массы)
LinuxCamp | #news
ОС Linux с каждым годом все более уверенно подгребает под себя пользователей и набирает обороты.
Подъехали свежие цифры текущей доли рынка Linux на десктопах:
— Судя по статистике от различных источников (Statcounter, Steam Survey, Statista и Stack Overflow), доля Linux на десктопах варьируется от 2,7% до 4%.
— Среди геймеров на Steam она составляет ~ 2,9%, опережая macOS.
— По опросу вутри Steam, самыми ходовыми ос являются: Arch Linux, Linux Mint и Ubuntu.
Так что продолжаем проталкиваться в массы и учить программирование, чтобы проталкивать Linux в массы)
LinuxCamp | #news
😇28👍12❤9🔥4🦄2🥴1
Держи несколько базовых команд, которые помогут тебе чувствовать себя "на коне".
Узнать путь
Начнем с перемещения по файловой системе. Команда pwd показывает, где ты находишься сейчас:
pwd
Посмотреть файлы
Если нужно посмотреть, что лежит в папке, используется ls. Для удобства сразу пиши флаги "-l" или "-la", чтобы увидеть доп инфу и скрытые файлы:
ls -la
Создать каталоги
Создавать папки и файлы можно через mkdir и touch. Например, так создаётся новая директория и пустой файл внутри неё:
mkdir projects
cd projects
touch readme.txt
Переместить/скопировать файлы
Чтобы переместить или скопировать файлы, пригодятся mv и cp. Перемещение файла в другую папку выглядит так:
mv readme.txt /home/user/Documents/
А если нужно именно скопировать:
cp readme.txt backup_readme.txt
Посмотреть содержимое файла
Чтение содержимого файла можно сделать через cat, а если файл большой, то удобнее использовать less:
cat readme.txt
less /var/log/syslog
Поиск файла
Иногда нужно найти, где именно лежит файл. Для этого есть команда find:
find /home/user -name "*.txt"
Управление процессами
Работа с процессами тоже часто нужна. Чтобы посмотреть, что сейчас запущено, используется ps или более наглядный top:
ps aux
top
А чтобы завершить процесс по PID, выполняется kill:
kill 1234
Управление правами доступа
И, конечно, права доступа. Проверить их можно через ls -l, а изменить с помощью chmod. Например, дать права на выполнение скрипта:
chmod +x noscript.sh
LinuxCamp | #utils
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍22❤8🥴4🤝2🌚1
Линус, три в одном
Мне вот этот комментарий на Reddit понравился:
Мы же, как раз, все его и знаем как "великого дизайнера"🗣
LinuxCamp | #memes
Мне вот этот комментарий на Reddit понравился:
«Если бы я оказался на необитаемом острове, и единственным способом выбраться оттуда было бы сделать красивый интерфейс, я бы там и умер».
— Торвальдс, великий дизайнер
Мы же, как раз, все его и знаем как "великого дизайнера"
LinuxCamp | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁65🔥19❤3👏3🤔2🤨1
Знаешь только apt? Разбираемся в пакетных менеджерах
Многие начинают с ubuntu и apt, но потом сталкиваются с другими дистрибутивами. Там вместо привычных команд - dnf или pacman. Плюс новые форматы приложений.
Давайте расширим базу наших знаний и пройдемся по всем популярным менеджерам пакетов:
Apt
Начнём с apt. Он используется в Debian и всех его производных: Ubuntu, Linux Mint, Pop!_OS. Это один из самых простых и понятных менеджеров:
Плюс apt в том, что пакеты проверяются и приходят из официальных репозиториев, а значит они стабильны и хорошо интегрируются в систему.
Минус - версии могут заметно отставать от апстрима, а чтобы получить новое, приходится подключать PPA или ставить вручную.
Dnf
Используется в Fedora, RHEL и CentOS. Это развитие старого yum. Он работает схожим образом, но отличается продуманным управлением зависимостями и расширенной системой плагинов:
Преимущество dnf - обновления в Fedora приходят очень быстро, почти сразу после релиза. В корпоративных системах на RHEL, наоборот, делают упор на стабильность.
Минус - экосистема поменьше, чем у Debian/Ubuntu, и часть пакетов приходится искать в сторонних репозиториях.
Pacman
Arch Linux и все его производные, например Manjaro, используют pacman.
Pacman минималистичный и очень быстрый. У Arch одно из самых свежих и полных репозиториев. А если чего-то нет, есть AUR, где пользователи выкладывают свои PKGBUILD. Нужно учитывать, что не все пакеты из AUR одинаково безопасны.
Snap
Теперь перейдём к универсальным форматам. Snap - это контейнеризованные пакеты от Canonical. Он предустановлен в Ubuntu, а в других системах ставится отдельно. На Debian и Ubuntu-подобных он доступен в репозитории:
В Fedora нужно включить snapd и добавить поддержку сервисов:
В Arch Linux установка выглядит так:
После этого можно ставить приложения:
Flatpak
Он решает похожую задачу. Предустановлен в Fedora, а в других системах добавляется вручную. В Ubuntu и Debian ставится так:
В Fedora он уже включён, достаточно лишь подключить Flathub:
В Arch Linux flatpak доступен напрямую:
После чего можно устанавливать приложения, например:
Flatpak экономит место за счёт общих библиотек и даёт гибкий контроль доступа. Но приложения из Flathub могут быть тяжелее и иногда хуже интегрируются с системой.
Вывод
apt, dnf и pacman — это системные менеджеры, каждый со своим семейством дистрибутивов. Они надёжные и интегрированные, но иногда ограничены по свежести пакетов.
Snap и Flatpak - это универсальные форматы, которые работают поверх любой системы, позволяют получать последние версии программ, но требуют больше ресурсов.
На практике часто сочетают оба подхода: системный менеджер для базовых пакетов и Flatpak или Snap для новых приложений. Такой микс даёт и стабильность, и актуальность.
LinuxCamp | #utils
Многие начинают с ubuntu и apt, но потом сталкиваются с другими дистрибутивами. Там вместо привычных команд - dnf или pacman. Плюс новые форматы приложений.
Давайте расширим базу наших знаний и пройдемся по всем популярным менеджерам пакетов:
Apt
Начнём с apt. Он используется в Debian и всех его производных: Ubuntu, Linux Mint, Pop!_OS. Это один из самых простых и понятных менеджеров:
sudo apt update
sudo apt install htop
Плюс apt в том, что пакеты проверяются и приходят из официальных репозиториев, а значит они стабильны и хорошо интегрируются в систему.
Минус - версии могут заметно отставать от апстрима, а чтобы получить новое, приходится подключать PPA или ставить вручную.
Dnf
Используется в Fedora, RHEL и CentOS. Это развитие старого yum. Он работает схожим образом, но отличается продуманным управлением зависимостями и расширенной системой плагинов:
sudo dnf install htop
Преимущество dnf - обновления в Fedora приходят очень быстро, почти сразу после релиза. В корпоративных системах на RHEL, наоборот, делают упор на стабильность.
Минус - экосистема поменьше, чем у Debian/Ubuntu, и часть пакетов приходится искать в сторонних репозиториях.
Pacman
Arch Linux и все его производные, например Manjaro, используют pacman.
sudo pacman -Syu htop
Pacman минималистичный и очень быстрый. У Arch одно из самых свежих и полных репозиториев. А если чего-то нет, есть AUR, где пользователи выкладывают свои PKGBUILD. Нужно учитывать, что не все пакеты из AUR одинаково безопасны.
Snap
Теперь перейдём к универсальным форматам. Snap - это контейнеризованные пакеты от Canonical. Он предустановлен в Ubuntu, а в других системах ставится отдельно. На Debian и Ubuntu-подобных он доступен в репозитории:
sudo apt update
sudo apt install snapd
В Fedora нужно включить snapd и добавить поддержку сервисов:
sudo dnf install snapd
sudo ln -s /var/lib/snapd/snap /snap
В Arch Linux установка выглядит так:
sudo pacman -S snapd
sudo systemctl enable --now snapd.socket
После этого можно ставить приложения:
sudo snap install vlc
Flatpak
Он решает похожую задачу. Предустановлен в Fedora, а в других системах добавляется вручную. В Ubuntu и Debian ставится так:
sudo apt install flatpak
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
В Fedora он уже включён, достаточно лишь подключить Flathub:
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
В Arch Linux flatpak доступен напрямую:
sudo pacman -S flatpak
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
После чего можно устанавливать приложения, например:
flatpak install flathub com.spotify.Client
Flatpak экономит место за счёт общих библиотек и даёт гибкий контроль доступа. Но приложения из Flathub могут быть тяжелее и иногда хуже интегрируются с системой.
Вывод
apt, dnf и pacman — это системные менеджеры, каждый со своим семейством дистрибутивов. Они надёжные и интегрированные, но иногда ограничены по свежести пакетов.
Snap и Flatpak - это универсальные форматы, которые работают поверх любой системы, позволяют получать последние версии программ, но требуют больше ресурсов.
На практике часто сочетают оба подхода: системный менеджер для базовых пакетов и Flatpak или Snap для новых приложений. Такой микс даёт и стабильность, и актуальность.
LinuxCamp | #utils
👍67❤14🔥13
Namespaces в Linux: как работает изоляция процессов
Когда мы говорим про контейнеры и виртуализацию на уровне ОС, ключевая технология, которая это обеспечивает - namespaces.
Это механизм ядра Linux, который изолирует процессы друг от друга и даёт им иллюзию, что они работают в отдельной системе.
По умолчанию все процессы видят одну и ту же систему: один список процессов, один hostname, одну файловую иерархию. Namespaces позволяют разрезать это пространство на отдельные «куски», и процесс внутри такого куска думает, что он единственный в системе.
Пример создания namespace:
Создать новый namespace можно утилитой unshare. Например, давайте изолируем hostname:
Теперь в новом шелле можно поменять имя хоста:
Если открыть вторую сессию и выполнить hostname, мы увидим старое имя. То есть разные процессы живут с разными настройками.
Пример изоляции процессов:
В обычной системе ps покажет все процессы, но если создать новый PID namespace:
и выполнить там:
то видно будет только процессы внутри этого namespace. Для приложения это выглядит так, будто оно единственное в системе.
Namespaces бывают разных типов:
UTS - изоляция имени хоста и домена.
PID - изоляция процессов.
Mount - отдельная файловая иерархия.
Network - собственные сетевые интерфейсы и таблицы маршрутов.
IPC - изоляция межпроцессного взаимодействия.
User - собственные пользователи и идентификаторы.
Cgroup - изоляция и управление ресурсами (каждый процесс видит только свою часть иерархии cgroups).
Вывод:
На практике контейнеры в Docker или Podman используют комбинацию нескольких namespaces сразу. Поэтому внутри контейнера видно только свои процессы, сеть, файловую систему и т.д.
Главный плюс namespaces - это лёгкая изоляция без полноценной виртуальной машины. Но они не решают задачу безопасности полностью, поэтому для жёсткой изоляции применяют дополнительные механизмы, например cgroups и seccomp.
LinuxCamp | #utils #bymagadrovosex
Когда мы говорим про контейнеры и виртуализацию на уровне ОС, ключевая технология, которая это обеспечивает - namespaces.
Это механизм ядра Linux, который изолирует процессы друг от друга и даёт им иллюзию, что они работают в отдельной системе.
По умолчанию все процессы видят одну и ту же систему: один список процессов, один hostname, одну файловую иерархию. Namespaces позволяют разрезать это пространство на отдельные «куски», и процесс внутри такого куска думает, что он единственный в системе.
Пример создания namespace:
Создать новый namespace можно утилитой unshare. Например, давайте изолируем hostname:
sudo unshare --uts /bin/bash
Теперь в новом шелле можно поменять имя хоста:
hostname container1
Если открыть вторую сессию и выполнить hostname, мы увидим старое имя. То есть разные процессы живут с разными настройками.
Пример изоляции процессов:
В обычной системе ps покажет все процессы, но если создать новый PID namespace:
sudo unshare --pid --fork --mount-proc /bin/bash
и выполнить там:
ps -ef
то видно будет только процессы внутри этого namespace. Для приложения это выглядит так, будто оно единственное в системе.
Namespaces бывают разных типов:
UTS - изоляция имени хоста и домена.
PID - изоляция процессов.
Mount - отдельная файловая иерархия.
Network - собственные сетевые интерфейсы и таблицы маршрутов.
IPC - изоляция межпроцессного взаимодействия.
User - собственные пользователи и идентификаторы.
Cgroup - изоляция и управление ресурсами (каждый процесс видит только свою часть иерархии cgroups).
Вывод:
На практике контейнеры в Docker или Podman используют комбинацию нескольких namespaces сразу. Поэтому внутри контейнера видно только свои процессы, сеть, файловую систему и т.д.
Главный плюс namespaces - это лёгкая изоляция без полноценной виртуальной машины. Но они не решают задачу безопасности полностью, поэтому для жёсткой изоляции применяют дополнительные механизмы, например cgroups и seccomp.
LinuxCamp | #utils #bymagadrovosex
🔥28👍23❤11⚡1
Подводим итоги полугодия
Чуть с опозданием, но делаю сводку ключевых постов (март - август 2025):
Оболочка
1. Перемещайся по файловой системе как флеш: CDPATH
SSH
1. Автоматическая защита SSH от перебора
2. Портфорвардинг по ssh
3. autossh — чтобы SSH-туннели не отваливались
Сеть
1. Как найти процесс, который грузит сеть: nethogs
2. nft: современный фаервол в Linux, который заменил iptables
3. ss: современный способ смотреть порты и сетевые соединения
4. ncdu — лучший способ быстро очистить место на сервере
5. Шпаргалка по ufw для базовой настройки фаервола
6. Шпора по флагам rsync
Файлы и каталоги
1. Введение в команды: pushd, popd, dirs
2. Практика использования: pushd, popd, dirs
3. Как вернуть последний каталог в стек?
4. Полезные опции для поиска файлов через grep
5. Удаление файлов старше n дней: find
6. Как разбить файл на части: split
7. Если часто просматриваешь логи, помни про "tail -f"
8. Как правильно удалять ссылки?
9. Команда chgrp и изменение атрибутов ссылок
10. Приводим хаос данных к порядку: sort
11. lsof: что держит порт, файл или устройство занятым?
12. rg (ripgrep) - самый быстрый поиск в файлах
13. fzf - быстрый «поиск-как-пишешь» прямо в терминале
14. bat — «цветной cat» с номерами строк и подсветкой кода
15. Продвинутый просмотр размера каталога: du
Разбор команд
1. Разница между su и su -
2. Как менять пароли: passwd
3. Как узнать разрядность операционки?
4. Как работает cron и зачем он нужен?
5. Команда watch: живой взгляд на процессы и метрики
6. tmux: держим терминал «живым», даже если связь пропала
7. tldr — короткие примеры вместо километров man-страниц
8. Быстрая работа с json и yaml прямо в терминале
9. Разбираемся в пакетных менеджерах
10. Как узнать тип сессии: Wayland или Xorg?
11. Собери себе эстетичный IDE в терминале
Личные практики:
1. Как я познакомился с Dbus-ом
2. Утилиты для работы с DBus сервисами
3. На повестке дня gsettings
4. Подключение к сети через "CaptivePortal"
5. Мой Linux roadmap
DevOps
1. От cron‑а к DAG‑ам: зачем нужен оркестратор и почему именно Airflow
2. Базовая настройка Nginx и подключение домена: как я это сделал
3. Как очистить сервер от мусора
4. Что такое Ansible - и как обновить пакеты сразу на 10 серверах
5. Caddy - замена Nginx с авто-TLS и минимальной настройкой
6. Что такое logrotate и как он спасает ваши диски
Docker
1. Собираем минимальный Docker образ
2. Из чего состоит Dockerfile?
3. Команда docker init: как использовать на Windows
4. Почему docker compose logs -f спасает на проде
5. Оптимизация Dockerfile и образов
6. Что такое docker network и зачем он нужен?
7. Масштабируем сервисы через docker compose --scale
8. Что такое Docker Swarm и как с ним работать
9. Закрываем Docker-порты правильно
10. Минимальная настройка мониторинга контейнеров в терминале
Systemd
1. Как сделать службу недоступной?
2. Проверка статуса службы
3. Где же сидят эти службы?
4. Systemd Timer - альтернатива cron
Файловая система
1. Размонтирование файловой системы: unmount
2. Типы файловых систем Linux
3. Удобная работа с файловой системой через CLI: mc
4. Как исправить "rm: cannot remove ‘file’: Device or Resource Busy"?
Подборки
1. Лучшие эмуляторы терминала
2. Топ 5 полезных приложений на Linux
Процессы и программы
1. Namespaces в Linux: как работает изоляция процессов
LinuxCamp | #sumup
Чуть с опозданием, но делаю сводку ключевых постов (март - август 2025):
Оболочка
1. Перемещайся по файловой системе как флеш: CDPATH
SSH
1. Автоматическая защита SSH от перебора
2. Портфорвардинг по ssh
3. autossh — чтобы SSH-туннели не отваливались
Сеть
1. Как найти процесс, который грузит сеть: nethogs
2. nft: современный фаервол в Linux, который заменил iptables
3. ss: современный способ смотреть порты и сетевые соединения
4. ncdu — лучший способ быстро очистить место на сервере
5. Шпаргалка по ufw для базовой настройки фаервола
6. Шпора по флагам rsync
Файлы и каталоги
1. Введение в команды: pushd, popd, dirs
2. Практика использования: pushd, popd, dirs
3. Как вернуть последний каталог в стек?
4. Полезные опции для поиска файлов через grep
5. Удаление файлов старше n дней: find
6. Как разбить файл на части: split
7. Если часто просматриваешь логи, помни про "tail -f"
8. Как правильно удалять ссылки?
9. Команда chgrp и изменение атрибутов ссылок
10. Приводим хаос данных к порядку: sort
11. lsof: что держит порт, файл или устройство занятым?
12. rg (ripgrep) - самый быстрый поиск в файлах
13. fzf - быстрый «поиск-как-пишешь» прямо в терминале
14. bat — «цветной cat» с номерами строк и подсветкой кода
15. Продвинутый просмотр размера каталога: du
Разбор команд
1. Разница между su и su -
2. Как менять пароли: passwd
3. Как узнать разрядность операционки?
4. Как работает cron и зачем он нужен?
5. Команда watch: живой взгляд на процессы и метрики
6. tmux: держим терминал «живым», даже если связь пропала
7. tldr — короткие примеры вместо километров man-страниц
8. Быстрая работа с json и yaml прямо в терминале
9. Разбираемся в пакетных менеджерах
10. Как узнать тип сессии: Wayland или Xorg?
11. Собери себе эстетичный IDE в терминале
Личные практики:
1. Как я познакомился с Dbus-ом
2. Утилиты для работы с DBus сервисами
3. На повестке дня gsettings
4. Подключение к сети через "CaptivePortal"
5. Мой Linux roadmap
DevOps
1. От cron‑а к DAG‑ам: зачем нужен оркестратор и почему именно Airflow
2. Базовая настройка Nginx и подключение домена: как я это сделал
3. Как очистить сервер от мусора
4. Что такое Ansible - и как обновить пакеты сразу на 10 серверах
5. Caddy - замена Nginx с авто-TLS и минимальной настройкой
6. Что такое logrotate и как он спасает ваши диски
Docker
1. Собираем минимальный Docker образ
2. Из чего состоит Dockerfile?
3. Команда docker init: как использовать на Windows
4. Почему docker compose logs -f спасает на проде
5. Оптимизация Dockerfile и образов
6. Что такое docker network и зачем он нужен?
7. Масштабируем сервисы через docker compose --scale
8. Что такое Docker Swarm и как с ним работать
9. Закрываем Docker-порты правильно
10. Минимальная настройка мониторинга контейнеров в терминале
Systemd
1. Как сделать службу недоступной?
2. Проверка статуса службы
3. Где же сидят эти службы?
4. Systemd Timer - альтернатива cron
Файловая система
1. Размонтирование файловой системы: unmount
2. Типы файловых систем Linux
3. Удобная работа с файловой системой через CLI: mc
4. Как исправить "rm: cannot remove ‘file’: Device or Resource Busy"?
Подборки
1. Лучшие эмуляторы терминала
2. Топ 5 полезных приложений на Linux
Процессы и программы
1. Namespaces в Linux: как работает изоляция процессов
LinuxCamp | #sumup
1🔥54👍28❤🔥8❤5👏1
Ubuntu 25.10 теперь использует sudo-rs
В свежих daily-сборках Ubuntu 25.10 вместо классического
Это шаг к повышению устойчивости к эксплойтам благодаря защитам Rust. Вернуться к старому sudo можно через
Этот переход — часть стратегии Ubuntu по внедрению современных, безопасных инструментов системы.
LinuxCamp | #news
В свежих daily-сборках Ubuntu 25.10 вместо классического
sudo применяется sudo-rs, переписанный на Rust. Это шаг к повышению устойчивости к эксплойтам благодаря защитам Rust. Вернуться к старому sudo можно через
update-alternatives, а оригинальная версия останется доступной вплоть до LTS-релиза 26.04. Этот переход — часть стратегии Ubuntu по внедрению современных, безопасных инструментов системы.
LinuxCamp | #news
🔥35🤔21👍16💊11❤2
Docker и Podman: в чём разница?
Оба инструмента нужны, чтобы запускать контейнеры в Linux. Контейнер - это процесс с отдельными namespace и cgroup, которому «кажется», что у него есть свой собственный хост, сеть и файловая система. Но у Docker и Podman архитектура работы разная.
Как устроен Docker:
Docker устроен по модели «демон + клиент». На машине работает сервис dockerd с root-правами, который управляет всеми контейнерами. Когда вы пишете команду docker run nginx, CLI отправляет её демону, дальше запускается цепочка:
Контейнерные процессы видны в ps, но родитель у них containerd-shim.
Как устроен Podman:
Podman демона не имеет. Команда podman run nginx сразу создаёт отдельный процесс-контейнер, за которым следит маленький монитор conmon:
В дереве процессов видно сам контейнер, а не один общий демон.
Rootless режим:
С rootless режимом тоже разница. Docker может работать без root через rootlesskit и slirp4netns, но этот режим появился позже и имеет ограничения (например, не все сетевые возможности доступны). Podman изначально задумывался как rootless-friendly:
Сеть:
Сеть у Docker в rootful-режиме - это мост docker0 и правила iptables:
В rootless - slirp4netns. У Podman начиная с версии 4.x сеть делает связка netavark + aardvark-dns, в rootless тоже используется slirp4netns или pasta.
Оркестрация:
Для Docker есть официальный docker compose. У Podman - podman-compose (комьюнити) и поддержка pods:
Ещё Podman умеет работать с Kubernetes-манифестами: podman play kube и podman generate kube.
Вывод:
Оба запускают одни и те же OCI-образы, но Docker работает через демон и привычен для большинства DevOps-пайплайнов, а Podman - без демона, с изначальной поддержкой rootless и pods, ближе к модели Kubernetes.
LinuxCamp | #docker #devops
Оба инструмента нужны, чтобы запускать контейнеры в Linux. Контейнер - это процесс с отдельными namespace и cgroup, которому «кажется», что у него есть свой собственный хост, сеть и файловая система. Но у Docker и Podman архитектура работы разная.
Как устроен Docker:
Docker устроен по модели «демон + клиент». На машине работает сервис dockerd с root-правами, который управляет всеми контейнерами. Когда вы пишете команду docker run nginx, CLI отправляет её демону, дальше запускается цепочка:
dockerd → containerd → containerd-shim → runc → PID 1 контейнера
Контейнерные процессы видны в ps, но родитель у них containerd-shim.
Как устроен Podman:
Podman демона не имеет. Команда podman run nginx сразу создаёт отдельный процесс-контейнер, за которым следит маленький монитор conmon:
podman → conmon → runc/crun → PID 1 контейнера
В дереве процессов видно сам контейнер, а не один общий демон.
Rootless режим:
С rootless режимом тоже разница. Docker может работать без root через rootlesskit и slirp4netns, но этот режим появился позже и имеет ограничения (например, не все сетевые возможности доступны). Podman изначально задумывался как rootless-friendly:
podman run --userns=keep-id -d alpine sleep 1000
Сеть:
Сеть у Docker в rootful-режиме - это мост docker0 и правила iptables:
ip link show docker0
В rootless - slirp4netns. У Podman начиная с версии 4.x сеть делает связка netavark + aardvark-dns, в rootless тоже используется slirp4netns или pasta.
Оркестрация:
Для Docker есть официальный docker compose. У Podman - podman-compose (комьюнити) и поддержка pods:
podman pod create --name mypod
podman run --pod mypod -d nginx
podman run --pod mypod -d redis
Ещё Podman умеет работать с Kubernetes-манифестами: podman play kube и podman generate kube.
Вывод:
Оба запускают одни и те же OCI-образы, но Docker работает через демон и привычен для большинства DevOps-пайплайнов, а Podman - без демона, с изначальной поддержкой rootless и pods, ближе к модели Kubernetes.
LinuxCamp | #docker #devops
👍27❤9🔥7❤🔥2✍2
PewDiePie-технарь в деле 🤯
PewDiePie завёл GitHub и выкатил свои dotfiles для Arch (Hyprland). Оконный менеджер прям хорошо выглядит, смахивает на fallout.
README проекта встречает нас надписью «Добро пожаловать, командир» (почему-то на русском).
Короч, поздравляем его с переходом на новую ступень эволюции. Хочу от него курсы по системной разработке🗣
Репозиторий: pewdiepie-archdaemon/dionysus
LinuxCamp | #news #memes
PewDiePie завёл GitHub и выкатил свои dotfiles для Arch (Hyprland). Оконный менеджер прям хорошо выглядит, смахивает на fallout.
README проекта встречает нас надписью «Добро пожаловать, командир» (почему-то на русском).
Короч, поздравляем его с переходом на новую ступень эволюции. Хочу от него курсы по системной разработке
Репозиторий: pewdiepie-archdaemon/dionysus
LinuxCamp | #news #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41❤12👍10🤪4❤🔥1
Тест скорости сети одной командой
Запуск без установки:
Иногда нужно быстро проверить интернет, но нет желания ставить отдельные пакеты. В Linux можно сделать speedtest одной командой:
Команда скачает Python-скрипт speedtest-cli и тут же запустит его без установки. На выходе будет привычный результат с ping, download и upload. Для работы нужен установленный python3. Если его нет:
Установка для постоянного использования:
Если планируете пользоваться регулярно, то удобнее поставить сам speedtest-cli:
После этого достаточно просто выполнить команду:
LinuxCamp | #utils #microhelp
Запуск без установки:
Иногда нужно быстро проверить интернет, но нет желания ставить отдельные пакеты. В Linux можно сделать speedtest одной командой:
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
Команда скачает Python-скрипт speedtest-cli и тут же запустит его без установки. На выходе будет привычный результат с ping, download и upload. Для работы нужен установленный python3. Если его нет:
sudo apt install python3
Установка для постоянного использования:
Если планируете пользоваться регулярно, то удобнее поставить сам speedtest-cli:
sudo apt install speedtest-cli
После этого достаточно просто выполнить команду:
speedtest
LinuxCamp | #utils #microhelp
😁22👍15🔥7❤🔥2❤1🤝1
htop: фишки, о которых часто забывают
О htop знают практически все пользователи линухи. Его воспринимают как "красивый top", а для каких-то систем она вообще предустановлена по умолчанию. Но всеми возможностями пользуются редко, либо вообще не в курсе о них, хотя они реально могут ускорять работу.
Сортировка и дерево процессов:
Сортировку процессов можно переключать на лету. Часто по умолчанию htop показывает нагрузку по CPU, но нажми F6 - и список можно отсортировать по памяти, времени жизни, приоритету или IO. Это удобно, если нужно понять, кто именно грузит систему, не только процессор.
Есть режим дерева процессов. Нажми F5, и все процессы выстроятся в иерархию с отступами, где видно, кто чей родитель. Это помогает, например, при отладке сервисов или контейнеров, когда нужно быстро увидеть, какой процесс кого породил.
Поиск, приоритеты и завершение:
Поиск по процессам тоже встроен. Просто нажми / и введи часть имени процесса. Найденные совпадения будут подсвечены. Это быстрее, чем прокручивать сотни строк глазами.
Можно менять приоритет процессов прямо из интерфейса. Выбираешь процесс стрелками, нажимаешь F7/F8 и меняешь nice-уровень. Таким образом можно «успокоить» прожорливую задачу без выхода в отдельные команды.
Если нужно убить процесс, не обязательно выходить и писать kill. Выбираешь его и нажимаешь F9. Htop спросит, каким сигналом завершить.
Дополнительные метрики:
Есть и скрытые метрики. Через F2 открывается меню настроек, где можно включить показ IO по процессам, swap, контекстные переключения, page faults. Htop сразу отобразит эти данные в колонках.
Подводный момент: htop показывает данные только в момент запуска, он не хранит историю и не строит долгосрочных графиков. Поэтому если проблему нужно отлавливать во времени, лучше использовать atop или glances.
Вывод:
htop - это не просто «цветной top», а мощный инструмент: сортировка, дерево процессов, поиск, изменение приоритетов, завершение задач и гибкая настройка колонок.
LinuxCamp | #utils
О htop знают практически все пользователи линухи. Его воспринимают как "красивый top", а для каких-то систем она вообще предустановлена по умолчанию. Но всеми возможностями пользуются редко, либо вообще не в курсе о них, хотя они реально могут ускорять работу.
Сортировка и дерево процессов:
Сортировку процессов можно переключать на лету. Часто по умолчанию htop показывает нагрузку по CPU, но нажми F6 - и список можно отсортировать по памяти, времени жизни, приоритету или IO. Это удобно, если нужно понять, кто именно грузит систему, не только процессор.
htop
# F6 → выбрать Mem% или TIME+
Есть режим дерева процессов. Нажми F5, и все процессы выстроятся в иерархию с отступами, где видно, кто чей родитель. Это помогает, например, при отладке сервисов или контейнеров, когда нужно быстро увидеть, какой процесс кого породил.
htop
# F5 → Tree
Поиск, приоритеты и завершение:
Поиск по процессам тоже встроен. Просто нажми / и введи часть имени процесса. Найденные совпадения будут подсвечены. Это быстрее, чем прокручивать сотни строк глазами.
htop
# /nginx
Можно менять приоритет процессов прямо из интерфейса. Выбираешь процесс стрелками, нажимаешь F7/F8 и меняешь nice-уровень. Таким образом можно «успокоить» прожорливую задачу без выхода в отдельные команды.
htop
# стрелками выбрать процесс
# F7 - снизить nice, F8 - повысить
Если нужно убить процесс, не обязательно выходить и писать kill. Выбираешь его и нажимаешь F9. Htop спросит, каким сигналом завершить.
htop
# стрелками выбрать процесс
# F9 → SIGTERM или SIGKILL
Дополнительные метрики:
Есть и скрытые метрики. Через F2 открывается меню настроек, где можно включить показ IO по процессам, swap, контекстные переключения, page faults. Htop сразу отобразит эти данные в колонках.
htop
# F2 → Columns → выбрать IO_read, IO_write, MajFLT
Подводный момент: htop показывает данные только в момент запуска, он не хранит историю и не строит долгосрочных графиков. Поэтому если проблему нужно отлавливать во времени, лучше использовать atop или glances.
Вывод:
htop - это не просто «цветной top», а мощный инструмент: сортировка, дерево процессов, поиск, изменение приоритетов, завершение задач и гибкая настройка колонок.
LinuxCamp | #utils
❤40👍28🔥11