Быстрая работа с 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
🔥27👍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 script.sh
LinuxCamp | #utils
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍22❤8🥴4🤝2🌚1
Линус, три в одном
Мне вот этот комментарий на Reddit понравился:
Мы же, как раз, все его и знаем как "великого дизайнера"🗣
LinuxCamp | #memes
Мне вот этот комментарий на Reddit понравился:
«Если бы я оказался на необитаемом острове, и единственным способом выбраться оттуда было бы сделать красивый интерфейс, я бы там и умер».
— Торвальдс, великий дизайнер
Мы же, как раз, все его и знаем как "великого дизайнера"
LinuxCamp | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁64🔥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
👍65❤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🔥5❤🔥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
👍20❤13🔥5❤🔥4👏2
Я уже как 5 лет учу программирование. За это время совершал ошибки и корректировал свой путь. Есть много вещей, которые я бы делал иначе, чтобы процесс шел более эффективно.
В новом видео делюсь опытом и рассказываю, как, по моему мнению, стоит учить программирование, учитывая наличие ИИ в современном мире:
— какие ошибки я бы точно не повторил и как себя держать в ментальном порядке
— как быстро обучаться так, чтобы знания не выветривались через пару дней. Также поговорим о том, что нужно на старте учить и в какой последовательности
— как не попасть в "Tutorial hell" и не увязнуть в потреблении курсов
Видос уже на канале: YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥9❤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
🔥23👍8❤5🤔4❤🔥1