Знаешь только 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
👍66❤13🔥12
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
🔥26👍22❤10⚡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🔥52👍28❤🔥8❤3👏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
🔥34🤔21👍16💊11❤1
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
👍25❤8🔥6❤🔥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
😁21👍14🔥6❤🔥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
❤39👍27🔥10
Исправление ошибок в консоли одной командой
Когда часто работаешь в консоли постоянно возникают какие-то мелкие проблемы: опечатался в команде, забыл sudo, не тот флаг или пакет, и снова приходится вводить всё заново.
Решение:
Существует шикарный инструмент - TheFuck! Он автоматически исправляет ошибки в предыдущей команде.
Установка:
Debian/Ubuntu:
Arch:
Чтобы активировать добавьте в ~/.bashrc или ~/.zshrc:
Использование:
После этого можно использовать, теперь, если вы ошиблись при вводе команды, достаточно набрать:
И утилита автоматически предложит правильный вариант.
Важно!
Иногда thefuck может предложить неожиданное исправление, поэтому полезно следить за тем, что именно он собирается выполнить :)
LinuxCamp | #utils
Когда часто работаешь в консоли постоянно возникают какие-то мелкие проблемы: опечатался в команде, забыл sudo, не тот флаг или пакет, и снова приходится вводить всё заново.
Решение:
Существует шикарный инструмент - TheFuck! Он автоматически исправляет ошибки в предыдущей команде.
Установка:
Debian/Ubuntu:
sudo apt install python3-dev python3-pip
pip3 install thefuck --user
Arch:
yay -S thefuck
Чтобы активировать добавьте в ~/.bashrc или ~/.zshrc:
echo 'eval $(thefuck --alias)' >> ~/.bashrc
source ~/.bashrc
Использование:
После этого можно использовать, теперь, если вы ошиблись при вводе команды, достаточно набрать:
fuck
И утилита автоматически предложит правильный вариант.
Важно!
Иногда thefuck может предложить неожиданное исправление, поэтому полезно следить за тем, что именно он собирается выполнить :)
LinuxCamp | #utils
❤16😁13🔥10⚡5
Современный ls: exa / eza
Когда-то появился инструмент exa - красивая альтернатива ls. С недавних пор основной форк называется eza. Оба делают одно и то же, просто eza активнее поддерживается и именно он есть в новых Ubuntu/Debian.
Что умеет:
- Красиво подсвечивает права, владельцев, даты.
- Показывает дерево директорий.
- Встраивает git-статусы (-M modified, -N new, -- unchanged).
- Поддерживает иконки (если шрифт в терминале позволяет).
Установка:
(в старых системах пакет может называться exa)
Мастхэв команды:
Комбинированный вариант (можно использовать как алиас вместо ls):
Вывод:
eza - это та же простая команда для просмотра файлов, но в современном исполнении. Установка занимает секунды, а ощущение, что терминал стал живее и дружелюбнее - останется надолго. Если привыкли к ls, попробуйте заменить его алиасом на eza и, скорее всего, уже не захотите возвращаться назад.
LinuxCamp | #utils
Когда-то появился инструмент exa - красивая альтернатива ls. С недавних пор основной форк называется eza. Оба делают одно и то же, просто eza активнее поддерживается и именно он есть в новых Ubuntu/Debian.
Что умеет:
- Красиво подсвечивает права, владельцев, даты.
- Показывает дерево директорий.
- Встраивает git-статусы (-M modified, -N new, -- unchanged).
- Поддерживает иконки (если шрифт в терминале позволяет).
Установка:
sudo apt install eza
(в старых системах пакет может называться exa)
Мастхэв команды:
# дерево каталогов
eza -T
# подробный вывод с правами и датами
eza -l
# с владельцами и git-статусом
eza -lg --git
# размеры в "человеческом" виде
eza -lh
# сортировка по времени изменения
eza -lt
Комбинированный вариант (можно использовать как алиас вместо ls):
alias ls="eza -lh --git --icons"
Вывод:
eza - это та же простая команда для просмотра файлов, но в современном исполнении. Установка занимает секунды, а ощущение, что терминал стал живее и дружелюбнее - останется надолго. Если привыкли к ls, попробуйте заменить его алиасом на eza и, скорее всего, уже не захотите возвращаться назад.
LinuxCamp | #utils
🔥35👍22❤5😐3❤🔥1
Напоминаю, что у нас есть чат с отборными линуксоидами. Сюда можно задать любой интересующий вопрос по Linux, DevOps, системному администрированию и разработке.
Участники всегда рады помочь и пообщаться, поэтому не упускай сообщество из виду и присоединяйся!
Участники всегда рады помочь и пообщаться, поэтому не упускай сообщество из виду и присоединяйся!
👍9🔥7💊4❤1
Работа с HTTP-запросами в терминале
Инструмент:
Для отправки запросов из командной строки можно использовать утилиту httpie. Она позволяет выполнять запросы в формате, близком к привычному синтаксису HTTP.
Установка:
Примеры использования:
Простой GET-запрос
(без операторов — просто указываем метод и URL):
Запрос с передачей данных
- ключ=значение → строка
- ключ:=значение → литерал (число, true/false/null)
Добавить заголовки
- ключ:значение → HTTP-заголовок
Особенности:
- Подсветка синтаксиса и форматирование ответа.
- Удобный ввод параметров (ключ-значение).
- Поддержка JSON "из коробки".
- Подходит для быстрой проверки API прямо из терминала.
Вывод:
httpie - это удобная альтернатива curl, ориентированная на человеко-читаемый вывод. Подсветка синтаксиса, автоматическая работа с JSON и лаконичный ввод делают его полезным инструментом для тестирования и отладки HTTP-запросов прямо в терминале.
LinuxCamp | #utils
Инструмент:
Для отправки запросов из командной строки можно использовать утилиту httpie. Она позволяет выполнять запросы в формате, близком к привычному синтаксису HTTP.
Установка:
apt install httpie
Примеры использования:
Простой GET-запрос
(без операторов — просто указываем метод и URL):
http GET https://primer.com/json
Запрос с передачей данных
- ключ=значение → строка
- ключ:=значение → литерал (число, true/false/null)
http POST https://primer.com/post name=LinuxCamp active:=true
Добавить заголовки
- ключ:значение → HTTP-заголовок
http GET https://primer.com/headers User-Agent:LinuxCamp
Особенности:
- Подсветка синтаксиса и форматирование ответа.
- Удобный ввод параметров (ключ-значение).
- Поддержка JSON "из коробки".
- Подходит для быстрой проверки API прямо из терминала.
Вывод:
httpie - это удобная альтернатива curl, ориентированная на человеко-читаемый вывод. Подсветка синтаксиса, автоматическая работа с JSON и лаконичный ввод делают его полезным инструментом для тестирования и отладки HTTP-запросов прямо в терминале.
LinuxCamp | #utils
👍28❤9🔥6❤🔥1
Быстрое перемещение по папкам с помощью zoxide
Инструмент:
zoxide - это умный заменитель cd, который запоминает каталоги, в которых вы работаете, и позволяет прыгать к ним за пару символов.
Установка:
Затем добавьте в ~/.bashrc или ~/.zshrc:
Как пользоваться:
Обычный cd остаётся доступным, но появляются новые возможности, например, добавление каталогов в базу (происходит автоматически при cd):
Переход в каталог по части имени (z - сокращение от zoxide), сразу откроет ~/projects/linuxcamp:
Если каталог встречается несколько раз, можно уточнить путь:
Быстрый возврат в предыдущую папку:
Посмотреть список популярных путей (с рейтингом посещений):
Особенности:
- Работает поверх истории - чем чаще заходите в папку, тем выше её приоритет.
- Поддерживает автодополнение (bash, zsh, fish).
- Значительно сокращает время навигации по проектам.
Вывод:
zoxide делает работу с файловой системой быстрее и удобнее. Там, где раньше приходилось писать длинные пути или хранить алиасы, теперь достаточно пары букв.
LinuxCamp | #utils
Инструмент:
zoxide - это умный заменитель cd, который запоминает каталоги, в которых вы работаете, и позволяет прыгать к ним за пару символов.
Установка:
sudo apt install zoxide
Затем добавьте в ~/.bashrc или ~/.zshrc:
eval "$(zoxide init bash)" # для bash
eval "$(zoxide init zsh)" # для zsh
Как пользоваться:
Обычный cd остаётся доступным, но появляются новые возможности, например, добавление каталогов в базу (происходит автоматически при cd):
cd ~/projects/linuxcamp
Переход в каталог по части имени (z - сокращение от zoxide), сразу откроет ~/projects/linuxcamp:
z linux
Если каталог встречается несколько раз, можно уточнить путь:
z proj lin
Быстрый возврат в предыдущую папку:
z -
Посмотреть список популярных путей (с рейтингом посещений):
zoxide query -l
Особенности:
- Работает поверх истории - чем чаще заходите в папку, тем выше её приоритет.
- Поддерживает автодополнение (bash, zsh, fish).
- Значительно сокращает время навигации по проектам.
Вывод:
zoxide делает работу с файловой системой быстрее и удобнее. Там, где раньше приходилось писать длинные пути или хранить алиасы, теперь достаточно пары букв.
LinuxCamp | #utils
👍21❤13🔥6❤🔥4👏2
Я уже как 5 лет учу программирование. За это время совершал ошибки и корректировал свой путь. Есть много вещей, которые я бы делал иначе, чтобы процесс шел более эффективно.
В новом видео делюсь опытом и рассказываю, как, по моему мнению, стоит учить программирование, учитывая наличие ИИ в современном мире:
— какие ошибки я бы точно не повторил и как себя держать в ментальном порядке
— как быстро обучаться так, чтобы знания не выветривались через пару дней. Также поговорим о том, что нужно на старте учить и в какой последовательности
— как не попасть в "Tutorial hell" и не увязнуть в потреблении курсов
Видос уже на канале: YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥10❤5🥱2🤣1
asciinema - как записать терминал красиво и удобно
С помощью asciinema можно записывать терминал так, что результат выглядит как видео, но на самом деле это текст. Его можно не только просто воспроизводить как видео, но и копировать команды и вывод прямо из записи. В отличие от классического скринкаста, который занимает много места и теряет качество, asciinema сохраняет чистый поток терминала в лёгком текстовом файле, соответственно мало весит.
Установка:
Как записать демку:
Запустится запись. Всё, что вы вводите и что выводит программа сохраняется. Остановить: Ctrl+D или exit.
Файл demo.cast можно вставить в README.md проекта, хранить локально (и потом воспроизводить: asciinema play demo.cast), либо просто делиться файлом
Мгновенный шаринг:
Можно делиться записью прямо через официальное облако asciinema:
После этой команды терминал вернёт ссылку вида:
По этой ссылке можно открыть сайт asciinema и там посмотреть запись терминала как видео и также весь поток ввода-вывода можно скопировать!
Осторожно с паролями!
asciinema пишет всё, что появляется в терминале. Если вводите пароль или показываете секретный ключ он попадёт в запись, этими данными делиться небезопасно :)
Вывод:
asciinema - это как GIFки из терминала, только без лишнего веса и с удобной интеграцией в документацию, README файлы и копирования ввода-вывода.
LinuxCamp | #utils
С помощью asciinema можно записывать терминал так, что результат выглядит как видео, но на самом деле это текст. Его можно не только просто воспроизводить как видео, но и копировать команды и вывод прямо из записи. В отличие от классического скринкаста, который занимает много места и теряет качество, asciinema сохраняет чистый поток терминала в лёгком текстовом файле, соответственно мало весит.
Установка:
sudo apt install asciinema
Как записать демку:
asciinema rec demo.cast
Запустится запись. Всё, что вы вводите и что выводит программа сохраняется. Остановить: Ctrl+D или exit.
Файл demo.cast можно вставить в README.md проекта, хранить локально (и потом воспроизводить: asciinema play demo.cast), либо просто делиться файлом
Мгновенный шаринг:
Можно делиться записью прямо через официальное облако asciinema:
asciinema upload demo.cast
После этой команды терминал вернёт ссылку вида:
https://asciinema.org/a/cFWlOCAQjSYYGeJRoUAlSfHx1
По этой ссылке можно открыть сайт asciinema и там посмотреть запись терминала как видео и также весь поток ввода-вывода можно скопировать!
Осторожно с паролями!
asciinema пишет всё, что появляется в терминале. Если вводите пароль или показываете секретный ключ он попадёт в запись, этими данными делиться небезопасно :)
Вывод:
asciinema - это как GIFки из терминала, только без лишнего веса и с удобной интеграцией в документацию, README файлы и копирования ввода-вывода.
LinuxCamp | #utils
🔥24👍8❤5🤔4❤🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁70💊11👍7🔥7❤5👏3❤🔥1
История о моменте, когда не понимаешь, что происходит
Запускал я однажды MVP нового проекта на новом домене. Сеть поднял, контейнеры крутятся, nginx настроен. Сидим все в офисе с wi-fi - всё летает, тестировщики даже с иностранными vpn тестируют, все ок.
Пошёл трафик, хоть и небольшой. Через пару дней бизнес: «С телефона сайт не открывается». Проверяю, реально, в мобильной сети таймаут.
Думаю: баг в коде? косяк в nginx? Меняю конфиги, даже делаю location / { return 200 "test"; }, но не помогает. Оказывается, что основной сайт компании при этом работает и с wi-fi, и с мобильного. Что-то тут нечисто🤔
И тут вкидывают новость: в РФ начали троттлить (ограничивать скорость) пул ip адресов Cloudflare, и работает это тоже неравномерно, в одной сети может быть все ок, в другой нет. Я конечно же подумал: "пф, как же хорошо, что у нас все домены идут через ServicePipe". Но все-таки решил сравнить DNS у доменов:
Результат:
— основной домен: ip провайдера/прокси (ServicePipe), у которого в РФ всё ок
— мой домен: IP-адреса Cloudflare, часть из которых блокировалась
Добавил проверку трассы:
Картина сложилась: мобильные операторы по пути до Cloudflare режут или троттлят соединение, а трафик на ServicePipe доходит без проблем.
В итоге перевели новый домен через тот же провайдер (SP), всё стабилизировалось. И да, ещё и денег заработали😊
LinuxCamp | #magadrovosex #network #story
Запускал я однажды MVP нового проекта на новом домене. Сеть поднял, контейнеры крутятся, nginx настроен. Сидим все в офисе с wi-fi - всё летает, тестировщики даже с иностранными vpn тестируют, все ок.
Пошёл трафик, хоть и небольшой. Через пару дней бизнес: «С телефона сайт не открывается». Проверяю, реально, в мобильной сети таймаут.
Думаю: баг в коде? косяк в nginx? Меняю конфиги, даже делаю location / { return 200 "test"; }, но не помогает. Оказывается, что основной сайт компании при этом работает и с wi-fi, и с мобильного. Что-то тут нечисто
И тут вкидывают новость: в РФ начали троттлить (ограничивать скорость) пул ip адресов Cloudflare, и работает это тоже неравномерно, в одной сети может быть все ок, в другой нет. Я конечно же подумал: "пф, как же хорошо, что у нас все домены идут через ServicePipe". Но все-таки решил сравнить DNS у доменов:
# Мой MVP-домен
dig +short my-new-domain.tld A
# Основной домен
dig +short main.company.tld A
Результат:
— основной домен: ip провайдера/прокси (ServicePipe), у которого в РФ всё ок
— мой домен: IP-адреса Cloudflare, часть из которых блокировалась
Добавил проверку трассы:
dig +trace my-new-domain.tld
dig +trace main.company.tld
Картина сложилась: мобильные операторы по пути до Cloudflare режут или троттлят соединение, а трафик на ServicePipe доходит без проблем.
В итоге перевели новый домен через тот же провайдер (SP), всё стабилизировалось. И да, ещё и денег заработали
LinuxCamp | #magadrovosex #network #story
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥29👍14❤9❤🔥1
btop: next level мониторинг процессов
Что такое btop:
Классика жанра top или htop. Но есть современная альтернатива - btop. Интерфейс более красивый, делится на несколько вкладок, и каждая отвечает за свою часть системы.
Установка:
Работа с процессами:
В btop можно смотреть список процессов, фильтровать и сортировать их, переключаться на дерево иерархии. Управление процессами тоже встроено: можно изменить приоритет или завершить задачу.
Поддерживается работа мышью, клик по нужному процессу сразу открывает меню действий.
Запускается просто командой:
Память и диски:
В отличие от htop, btop показывает полное распределение памяти: занятое, свободное, кэш, буферы и swap. Для дисков можно видеть не только объём, но и скорость чтения и записи в реальном времени.
Сеть:
Встроенный мониторинг сетевых интерфейсов позволяет сразу видеть скорость входящего и исходящего трафика.
На графиках удобно отслеживать пики нагрузки. В htop этого нет, там пришлось бы использовать отдельные инструменты, например iftop или nload.
Вывод:
btop объединяет в одном интерфейсе возможности htop, iotop и nload. При этом он остаётся лёгким по ресурсам и удобным в использовании.
Если нужен инструмент для мониторинга процессов, памяти, дисков и сети btop заметно опережает htop по возможностям.
LinuxCamp | #utils
Что такое btop:
Классика жанра top или htop. Но есть современная альтернатива - btop. Интерфейс более красивый, делится на несколько вкладок, и каждая отвечает за свою часть системы.
Установка:
sudo snap install btop
Работа с процессами:
В btop можно смотреть список процессов, фильтровать и сортировать их, переключаться на дерево иерархии. Управление процессами тоже встроено: можно изменить приоритет или завершить задачу.
Поддерживается работа мышью, клик по нужному процессу сразу открывает меню действий.
Запускается просто командой:
btop
Память и диски:
В отличие от htop, btop показывает полное распределение памяти: занятое, свободное, кэш, буферы и swap. Для дисков можно видеть не только объём, но и скорость чтения и записи в реальном времени.
Сеть:
Встроенный мониторинг сетевых интерфейсов позволяет сразу видеть скорость входящего и исходящего трафика.
На графиках удобно отслеживать пики нагрузки. В htop этого нет, там пришлось бы использовать отдельные инструменты, например iftop или nload.
Вывод:
btop объединяет в одном интерфейсе возможности htop, iotop и nload. При этом он остаётся лёгким по ресурсам и удобным в использовании.
Если нужен инструмент для мониторинга процессов, памяти, дисков и сети btop заметно опережает htop по возможностям.
LinuxCamp | #utils
👍35❤6🔥6❤🔥1
Последняя стадия принятия, она такая)
1. Борюсь с багами Nvidia
2. Плачу из-за багов Nvidia
3. Становлюсь одним целым с багами Nvidia
У меня на работе даже был кейс, когда нужно было под каждое отдельное GPU Nvidia в композиторе (picom) добавлять исключения на некоторые граф. эффекты, иначе все артефачило.
LinuxCamp | #memes
1. Борюсь с багами Nvidia
2. Плачу из-за багов Nvidia
3. Становлюсь одним целым с багами Nvidia
У меня на работе даже был кейс, когда нужно было под каждое отдельное GPU Nvidia в композиторе (picom) добавлять исключения на некоторые граф. эффекты, иначе все артефачило.
LinuxCamp | #memes
😭29😁12🫡7❤1💔1