linuxacademiya | Unsorted

Telegram-канал linuxacademiya - Linux Academy

28352

Admin - @workakkk РКН: clck.ru/3FmvFv

Subscribe to a channel

Linux Academy

В C код может выполниться ещё до `main()`

В Linux и GCC есть constructor-функции - они запускаются автоматически до входа в main().

Выглядит почти как магия:

__attribute__((constructor))

Такую функцию не нужно вызывать вручную. Компилятор сам пометит её как код, который должен выполниться при старте программы.

Где это используется:

- инициализация глобального состояния
- подготовка shared libraries
- регистрация плагинов
- настройка runtime-окружения
- выполнение служебного кода до основной логики

Именно поэтому в C-программе не всегда всё начинается с main().

Иногда до него уже кто-то успел поработать.

Читать полностью…

Linux Academy

Релиз AlmaLinux 9.8 и 10.2

Представлен релиз дистрибутива AlmaLinux 10.2, а также обновление прошлой ветки - AlmaLinux 9.8. Релизы синхронизированны c Red Hat Enterprise Linux 9.8 и 10.2, и содержат все предложенные в данных выпусках изменения. Установочные образы подготовлены для архитектур x86_64_v3, x86_64_v2, ARM64, ppc64le и s390x в форме загрузочного (1 ГБ), минимального (1.6 ГБ) и полного образа (10 ГБ). Позднее будут сформированы Live-сборки с GNOME, KDE, MATE и Xfce, а также образы для плат Raspberry Pi, контейнеров, WSL (Windows Subsystem for Linux) и облачных платформ.

Подробнее:
https://opennet.ru/65533/
https://opennet.me/65533/

Читать полностью…

Linux Academy

⚡️ Деннис Ритчи и Стив Джобс умерли в одном месяце: одного оплакивал весь мир, второго почти не заметили

Об этом факте регулярно вспоминают в сообществе разработчиков, но и сейчас он продолжает бить в больную точку. Стив Джобс и Деннис Ритчи ушли в одном и том же месяце одного и того же года, в октябре 2011. Их уход превратился в символ того, насколько по-разному мир относится к людям, которые формируют технологии.

Джобса оплакивали планетой, выпускали книги, сняли фильмы, именем назвали улицы. Он подарил iPhone, iPad, iPod и Macintosh, собрал вокруг Apple одну из самых дорогих компаний в истории. Денниса Ритчи провожали разве что в узком кругу и парой статей в блогах. Это был человек, который подарил нам язык C и вместе с Кеном Томпсоном Unix.

Дальше просто пройдёмся по цепочке. Без C нет Unix. Без Unix нет Linux, нет BSD, нет macOS и iOS. Без C не было бы Windows в его нынешнем виде, не было бы C++, Objective-C, Java, JavaScript в их привычном виде. Нет Chrome и Firefox, нет PostgreSQL и SQLite, нет Nginx, нет Photoshop, нет PlayStation и Xbox. Даже Python и PHP написаны на C.

При таком влиянии Ритчи оставался человеком, которого было сложно представить на сцене с черной водолазкой и в режиссёрском свете. Он работал в Bell Labs, носил бороду, избегал интервью и писал программы. Человек, без которого современный цифровой мир просто не выглядел бы так, как сейчас, провёл жизнь в тени своих собственных результатов.

Похоже, именно в этом и суть контраста. Джобс продавал эмоции и мечты о будущем, это видно и понятно любому человеку. Ритчи писал инфраструктуру, которой пользуются все, но вспоминают о которой, только когда она ломается. Инженерх понимают это отлично: восхищение и слава идут тем, кто выходит на сцену, а не тем, кто держит фундамент.

Поэтому этот сюжет приятно иногда вытаскивать наружу. Не чтобы принижать Джобса, он действительно изменил потребительский рынок. Но чтобы напомнить, что рядом жил тихий инженер в свитере, без которого все эти коробочки от Apple были бы просто красивыми пресс-папье.

Читать полностью…

Linux Academy

🔥 Linux-трюк: найдите, какой процесс жрёт диск прямо сейчас

Когда сервер тормозит, top часто показывает CPU и RAM, но не отвечает на главный вопрос: кто прямо сейчас долбит диск.

Используйте:


sudo iotop -oPa


Что покажет команда:

• удалённые файлы, которые всё ещё открыты
• процесс, который их держит
PID
• размер файла
• путь до удалённого файла

Типичный кейс:

/var/log/app.log (deleted)

Файл уже удалён из директории, но пока процесс жив, место не освободится.

Что делать:

sudo systemctl restart имя_сервиса

или аккуратно завершить конкретный процесс по PID.

Полезно после ротации логов, падений приложений, runaway-контейнеров и ситуаций, когда df -h показывает забитый диск, а du -sh /* ничего подозрительного не находит.

Читать полностью…

Linux Academy

Rocky Linux ввёл в строй репозиторий для оперативного устранения уязвимостей

Разработчики дистрибутива Rocky Linux объявили о создании отдельного репозитория для внеплановой публикации срочных обновлений пакетов с устранением уязвимостей, не синхронизированного с репозиториями Red Hat Enterprise Linux. Отмечается, что проект Rocky Linux придерживается принципа максимально близкого соответствия пакетной базе RHEL, при этом возникающие последнее время угрозы безопасности вынуждают сделать исключение.

Подробнее:
https://opennet.ru/65457/
https://opennet.me/65457/

Читать полностью…

Linux Academy

Linux Совет: почему память занята, хотя free говорит, что RAM ещё есть

Если на сервере «куда-то пропала память», не всегда виновато приложение.

Часть RAM может сидеть в kernel slab cache - это память, которую ядро использует под свои внутренние объекты: dentries, inodes, сетевые буферы, структуры файловой системы и другие аллокации ядра.

Проверить это можно командой:


slabtop


Она показывает live-картину slab-памяти:

• какие kernel objects занимают больше всего RAM
• сколько объектов активно
• сколько памяти уходит на dentries и inodes
не растёт ли filesystem cache слишком агрессивно
нет ли признаков kernel memory leak

Это очень полезно в проде, когда free -h показывает, что память вроде бы доступна, но система ведёт себя странно.

Типовые случаи, где помогает slabtop:

внезапный рост inode cache
слишком много dentries после работы с миллионами файлов
утечки в kernel modules
• сетевые буферы съедают память
• файловый кэш выглядит нормально, но slab раздувается

Большинство админов при memory debugging смотрят только top, free, htop и процессы.

А иногда главный потребитель памяти вообще не userspace.

Он внутри ядра.

Читать полностью…

Linux Academy

На UNIX stdout - это просто файловый дескриптор 1.

И из-за этого можно поймать очень неприятный эффект: если закрыть stdout, следующий открытый файл может получить тот же дескриптор 1.

То есть код вроде этого:


close(1);
FILE *f = fopen("output.txt", "w");
printf("hello\n");


Может записать printf не в терминал, а прямо в output.txt.

Потому что система обычно выдаёт минимальный свободный файловый дескриптор. Закрыл 1 - значит он снова свободен. Открыл файл - он может стать новым stdout.

Мелочь, но именно из таких мелочей и состоит настоящее понимание UNIX.

Читать полностью…

Linux Academy

📁🧹 Умный файловый организатор для терминала

File Organizer — это современный инструмент CLI для автоматической организации файлов в папках. С интуитивно понятным интерфейсом TUI, он поддерживает более 170 форматов файлов, обеспечивает дублирование и интеллектуальную категоризацию.

🚀Основные моменты:
- Автоматическая категоризация по типу файлов
- Интерактивный TUI с живым предварительным просмотром
- Режим "сухого запуска" для безопасного тестирования
- Поддержка JSON для гибкой настройки правил
- Обнаружение дубликатов с реальным временем прогресса

📌 GitHub: https://github.com/SaschaKohler/file-organizer

#cpp

Читать полностью…

Linux Academy

👣 На Stepik обновили курс «Rust: полный курс разработчика. С нуля до профи»

Представьте: через три месяца вы открываете чужой Rust-код и читаете его как книгу.

Arc<Mutex<T>> не вызывает панику. impl Future не пугает. Вы точно знаете, почему компилятор ругается и как это починить за 10 секунд.

Это не фантазия. Это результат 50 уроков, в которых каждая концепция объясняется через код и закрепляется практикой.

Ownership, traits, generics, async, unsafe - всё, что казалось магией, станет рабочим инструментом.

А бонусом - портфолио проектов: от CLI-утилит до REST API и WebAssembly.

Вы и так знаете, что Rust - ваш следующий язык. Этот курс просто сделает это реальностью.

Сегодня - 55% процентов от цены, торопись: https://stepik.org/a/269250/

Читать полностью…

Linux Academy

Linux не станет свалкой AI-кода

Линус Торвальдс довольно ясно обозначил позицию: Linux не собираются превращать в мусорку для кода, который сгенерировали ИИ-инструменты и толком не проверили.

После долгих споров в сообществе появились официальные правила по использованию GitHub Copilot, Claude и других помощников при разработке ядра.

пользоваться ИИ можно. Протаскивать slop - нельзя.

Главная фраза всей истории: «За ошибки отвечают люди».

Хочешь писать с Copilot - пиши. Хочешь просить Claude помочь с патчем - проси. Но если код попадает в Linux kernel, ответственность лежит не на модели, не на тулзе и не на «оно само так сгенерировало».

Ответственность на тебе.

Ты проверяешь код. Ты исправляешь ошибки. Ты доказываешь, что патч соответствует стандартам ядра. Ты отвечаешь за последствия.

И это, пожалуй, самая взрослая позиция open source-сообщества по отношению к ИИ.

Linux строили больше 30 лет. Его не будут ломать ради экономии 20 минут на написании кода.

Читать полностью…

Linux Academy

🖥 На Stepik обновили курс «C# с нуля до профи»

Представьте: через четыре месяца вы открываете чужой .NET-проект и читаете его как книгу.

IServiceCollection не вызывает ступора. async Task<IActionResult> пишется на автомате. Вы точно знаете, почему EF Core сгенерировал именно такой SQL - и как переписать запрос, чтобы он летал.

Это не фантазия. Это результат после 16 модулей, в которых каждая концепция объясняется через код и закрепляется практикой.

ООП, SOLID, LINQ, async/await, DI, EF Core, ASP.NET Core, Docker, Kubernetes - всё, что казалось магией, станет рабочим инструментом.

А бонусом - портфолио проектов: от CLI-утилит и REST API до собственного SaaS с multi-tenancy, JWT и деплоем в Kubernetes под TLS.

Скидка - 58% доступна 48 часов: https://stepik.org/a/282984/

Читать полностью…

Linux Academy

🔥 Продвинутый Rust без учебных игрушек

Базу уже прошли? Тогда следующий шаг - production-разработка.

На Stepik идет скидка 60% на продвинутый курс по Rust для тех, кто хочет не просто знать синтаксис, а строить реальные системы.

Внутри: async, unsafe, gRPC, lock-free, observability, Kafka, NATS, axum, tower, CI/CD и канареечный деплой.

Финальный проект - production-ready feed-сервис от архитектуры до релиза.

21 модуль, 84 урока, 400+ проверочных шагов.

Если хотите перейти от маленьких Rust-утилит к коммерческой разработке, сейчас хороший момент зайти: https://stepik.org/a/285608/pay

Читать полностью…

Linux Academy

Если Linux-приложение падает и пишет что-то вроде “config not found”, не гадай, где оно ищет файл.

Используй strace.

Команда:

strace -f -e trace=file myapp 2>&1 | grep -E 'ENOENT|EACCES|openat|stat'

Она покажет, какие файлы программа реально пытается открыть.

Смотри на три вещи:

ENOENT - файл не найден

EACCES - нет прав

openat / stat - точный путь, куда программа полезла

Это особенно спасает, когда сервис не видит конфиг, бинарник не находит .so библиотеку или приложение ищет сокет и сертификат вообще не там, где ты думал.

А если процесс уже запущен:

sudo strace -f -e trace=file -p PID

Один из самых полезных приёмов для отладки Linux: не угадывать проблему, а посмотреть, что процесс делает на самом деле.

Читать полностью…

Linux Academy

Coolify — это опенсорсная альтернатива Heroku/Netlify/Vercel для простого развертывания любых приложений.

Инструмент поможет вам управлять вашими серверами, приложениями и базами данных на вашей VPS, Bare Metal, Raspberry PI и чем угодно. Все, что вам нужно, это SSH-соединение.

✅ Поддержка Docker и Docker Compose
✅ Развёртывание из Git
✅ Поддержка баз данных (PostgreSQL, MySQL, MongoDB и др.)
Графический интерфейс для управления
✅ Поддержка простого масштабирования и обновлений без даунтайма
✅ Интеграция с Cloudflare, Traefik, Let's Encrypt и другими инструментами

Coolify может быть развёрнут в пару кликов, работает на собственных серверах или VPS и даёт разработчикам полный контроль над инфраструктурой без лишней головной боли.

https://github.com/coollabsio/coolify

Читать полностью…

Linux Academy

Ты всё ещё распаковываешь .gz логи перед просмотром?

Зря тратишь время и диск.

В Linux можно работать с сжатыми логами напрямую - без распаковки.

Вот что реально нужно знать:

- zcat - быстро посмотреть файл
- zless - пролистать лог удобно
- zgrep - найти нужное внутри
- zegrep - поиск с расширенными regex
- zfgrep - быстрый поиск по строкам
- zcmp / zdiff - сравнить файлы

Работает мгновенно и не создаёт лишнего мусора на диске.

Идеально, когда нужно быстро разобраться, что происходит в проде.

Читать полностью…

Linux Academy

Как он создал Linux без OPUS 4.8 ??

Есть идеи?)

Читать полностью…

Linux Academy

🖥 Linux под капотом: как mknod превращает железо в файлы и почему это магия номер 133

Принцип "всё есть файл" в Linux часто звучит как маркетинговый слоган, хотя на самом деле это базовое инженерное решение, на котором держится вся система. Жёсткий диск /dev/sda, терминал /dev/tty и даже мышка открываются и читаются точно так же, как обычный текстовый файл. Возникает закономерный вопрос: каким образом физическая железка вообще оказывается в файловой системе?

Вся магия упирается в один привилегированный системный вызов: mknod. На архитектуре x86_64 у него номер 133. Именно он создаёт специальный узел в файловой системе, и именно через него ядро понимает, какой драйвер должен обработать обращение к этому пути.

В отличие от обычного файла, при вызове mknod никто не выделяет блоки на диске. Вместо хранения данных создаётся связка пути с парой чисел: major и minor. Major-номер указывает ядру на конкретный драйвер, а minor-номер уточняет конкретное устройство внутри этого драйвера. Считайте их координатами, по которым ядро бьёт в нужную точку без поиска.

Именно поэтому команда cat /dev/urandom не читает никаких байт с накопителя. Файловая система видит специальный узел, перенаправляет запрос в генератор случайных чисел ядра, и вы получаете бесконечный поток энтропии. На диске при этом не лежит ровным счётом ничего.

Поскольку создание такого узла фактически даёт прямой доступ к драйверу ядра, вызов требует capability CAP_MKNOD. Без прав процесс получит EPERM и быстро поймёт, что раздавать доступ к железу от имени обычного пользователя ядро не собирается. Это дополнительный барьер безопасности поверх обычных прав на файлы.

Ниже пример на C, который полностью клонирует /dev/null. Major-номер 1 в ядре зарезервирован под memory devices, а minor-номер 3 указывает именно на null. Запускать нужно от root.


#include <sys/types.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
#include <stdio.h>

int main(void) {
// 1 = major number for memory devices
// 3 = minor number for the null device
dev_t dev = makedev(1, 3);

// S_IFCHR creates a character device file
if (mknod("my_null", S_IFCHR | 0666, dev) == -1) {
perror("mknod failed (try running with sudo)");
return 1;
}

printf("Successfully created my_null!\n");
return 0;
}


После компиляции и запуска появится файл my_null, который ведёт себя как исходный /dev/null. Любой вывод, перенаправленный в этот файл, попадёт в тот же самый null-драйвер ядра. Различий в поведении по сравнению с системным /dev/null не будет вообще.

Такой пример хорошо показывает, почему инженеры Unix в своё время свели работу с железом к файловым операциям. Вместо десятков разных API для дисков, терминалов и сети программист получает единый интерфейс read, write, open и close. А вся сложная матчасть по маршрутизации запросов прячется внутри mknod и пары major/minor.

Читать полностью…

Linux Academy

Rust-приложение, которое превращает скучный терминал в живой dashboard

Splashboard - это splash screen для терминала, написанный на Rust. Открываешь новый shell - и вместо пустого экрана видишь контекст по проекту.

Он может показывать Git-статус, состояние CI, открытые PR, contribution heatmap и даже фазу Луны. Да, зачем-то это тоже есть.

Главная фишка в DX: репозиторий сам может описать свой dashboard через один dashboard.toml. Заходишь в папку проекта через cd - и терминал сразу подхватывает нужный контекст без флагов, ручной настройки и лишней возни.

Под капотом Rust и ratatui, работает кроссплатформенно, пакет доступен на crates.io.

Вот так выглядит нормальный zero-overhead DX: не ещё одна тяжёлая панель в браузере, а быстрый TUI прямо там, где разработчик и так живёт - в терминале.


🔗 http://github.com/unhappychoice/splashboard

#Rust #RustLang #CLI #TerminalTools #OpenSource #DeveloperTools #TUI #Ratatui #Rustacean

Читать полностью…

Linux Academy

🔐 Стань этичным хакером - с нуля до Pro

Хочешь зарабатывать на поиске уязвимостей, а не бояться их? Этот курс проведёт тебя от первой команды в терминале до реальных техник пентеста.

Что внутри:
→ Разведка целей: nmap, curl, анализ заголовков
→ Криптография и разбор кода на практике
→ Эксплуатация уязвимостей и документирование находок
→ Только живые задачи - никакой воды
Без скучной теории. Только то, за что платят в bug bounty и на собеседованиях в InfoSec.

📈 От «что такое порт» — до отчёта пентестера за несколько недель.

👉 Записывайся на Stepik и начни взламывать легально уже сегодня.

Читать полностью…

Linux Academy

⚡️ 1Password поднял цену индивидуального плана до $47,88 в год.

LastPass Premium стоит $36 в год.
Dashlane Premium - $59,88 в год.

И все это за одну базовую задачу: хранить строки текста в зашифрованном хранилище.

На этом фоне KeePassXC выглядит почти как антидот.

Это open-source парольный менеджер, который не требует аккаунта, подписки и доверия к очередному облачному сервису. Ваши пароли хранятся в одном .kdbx файле, который контролируете вы сами.

Что внутри:
- AES-256
- Argon2
- автозаполнение в браузерах
- TOTP/HOTP коды
- поддержка YubiKey и OnlyKey
- passkeys
- SSH agent для разработчиков
- Windows, macOS, Linux и BSD
- синхронизация через Dropbox, OneDrive, Nextcloud, Syncthing, флешку или что угодно

Главная магия в простоте: база паролей - это просто файл.

Если ваш облачный диск взломают, злоумышленник получит не список паролей, а зашифрованный blob. Мастер-пароль не уходит с вашего устройства.

KeePassXC развивается с 2016 года, имеет почти 27 тысяч звезд на GitHub, сотни контрибьюторов и полностью открытую GPLv2-лицензию.

На фоне индустрии, где парольные менеджеры превращаются в еще одну подписку, KeePassXC напоминает старую добрую идею:

- ваши пароли
- ваш файл
- ваш контроль


https://github.com/keepassxreboot/keepassxc

Читать полностью…

Linux Academy

Ты читал десять статей про XSS и до сих пор не знаешь, почему один сайт ломается через <img onerror>, а другой нет.

Ты прошёл три курса по «основам безопасности» и не сможешь сейчас провести нмап своей сетки.
Ты решал CTF, но если спросят «как работает Kerberos», ты залипнешь.

Проблема не в тебе. Проблема в том, что безопасность преподают как теорию.

Этот курс делает наоборот. С первого урока ты ломаешь, чинишь, поднимаешь стенды, читаешь HTTP-сырьём, собираешь ROP-цепочки руками. SQLi, XSS, CSRF, SSRF, IDOR, обход аутентификации, переполнение буфера, атаки на AD, побег из K8s-пода, реверс мобильных приложений, сборка собственного C2.

20 блоков, реальные задания с кодом, финальный пентест с отчётом для портфолио. С нуля. До Pro.

Начать Учиться: https://stepik.org/a/279968/

Читать полностью…

Linux Academy

Linux умеет запускать программы в почти контейнерной изоляции вообще без Docker.

За это отвечает `unshare`.

Команда создает для процесса отдельные namespace: свой список процессов, свой mount-view, hostname, IPC, network и user namespace. В итоге программа видит не всю систему, а только ограниченный «кусок» окружения.

Пример:


sudo unshare --pid --fork --mount --uts --ipc --net --user --map-root-user --mount-proc bash


Внутри новой shell можно выполнить:


ps aux


И вместо сотен процессов увидеть почти пустую систему: bash с PID 1 и сам ps.

Это не Docker, не container runtime и не магия. Это базовый механизм ядра Linux, на котором контейнеры во многом и построены.

Полезно знать, если хотите понимать контейнеры не как «черный ящик», а на уровне того, что реально делает kernel.

Читать полностью…

Linux Academy

Пересмотр решения о создании редакции Fedora AI Developer Desktop

Управляющий совет проекта Fedora (Fedora Council) отозвал ранее принятое решение о создании Fedora AI Developer Desktop - официальной редакции дистрибутива для разработчиков, использующих AI-инструменты. Изначально все 6 членов управляющего совета проголосовали за создание проекта, но после ознакомления с критикой, высказанной в ходе обсуждения в сообществе, через несколько дней два участника изменили свои голоса и высказались против. Так как единогласия не достигнуто, утверждение решения отложено. Вопрос планируют решить до проведения конференции Flock 2026, которая пройдёт с 14 по 16 июня.

Подробнее:
https://opennet.ru/65454/
https://opennet.me/65454/

Читать полностью…

Linux Academy

🐧 Быстрый Linux совет

Место на Диске снова «внезапно» закончилось? Начни с этой команды:

`du -h / --max-depth=1 2>/dev/null | sort -rh | head -10`

Она показывает 10 самых больших директорий в корне системы: считает размер папок первого уровня, сортирует их от самой тяжелой к самой легкой и оставляет только топ.

2>/dev/null просто скрывает ошибки доступа, чтобы вывод не превращался в кашу из permission denied.

На продакшн-серверах чаще всего раздуваются /var/log, /var/lib/docker, кэши пакетных менеджеров и временные файлы. Поэтому если место исчезло без причины, сначала смотри туда.

Одна команда - и уже понятно, где копать.

Читать полностью…

Linux Academy

FTXUI

Простая кроссплатформенная библиотека C++ для пользовательских интерфейсов на базе терминала!

• Функциональный стиль
• Простой и элегантный синтаксис
• Создаваемые консольные UI поддерживают навигацию с помощью клавиатуры и мыши
• Поддержка UTF8
• Поддержка анимации
• Поддержка рисования
• Нет зависимостей
• Кроссплатформенность: Linux/MacOS, WebAssembly, Windows


https://github.com/ArthurSonzogni/FTXUI

Читать полностью…

Linux Academy

Cамые нужные команд SSH

Запускай команды быстро
Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:
$ ssh user@host df -h
А так — перезагрузить ее:
$ ssh user@host sudo reboot

Составляй списки команд и запускай их разом
Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:
$ ssh user@host "`cat file.txt`"

Редактируй удаленные файлы локальным редактором
Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim заменяем на свой редактор):
$ gvim scp://user@host//путь/к/файлу

Копируй содержимое удаленного файла в буфер обмена
Если необходимо скопировать содержимое удаленного файла или вывод команды в буфер обмена, не обязательно выводить его на экран или открывать в текстовом редакторе и копировать вручную. Можно использовать следующую команду:
$ ssh user@host cat /путь/к/файлу | xclip
А так можно скопировать вывод команды:
$ ssh user@host uname -a | xclip

Сравнивай удаленный и локальный файл без копирования
Похожий прием можно использовать для сравнения двух файлов:
$ ssh user@host cat /путь/к/удаленному/файлу | diff /путь/к/лoкальному/файлу -

Работай с удаленными файлами с помощью локального файлового менеджера
Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:
$ sudo apt-get install sshfs
Создать каталог для подключения «сетевого диска»:
$ mkdir remote_files
И подключить его:
$ sshfs user@host:/home/user ~/remote_files/
Теперь все файлы удаленного каталога /home/user будут видны в каталоге ~/remote_files/ и с ними можно работать, как с обычными.

Копируй ключи быстро
Хоть и копирование публичного ключа на удаленный сервер — задача простая, но она требует выполнения нескольких действий вручную. Если тебя это напpягает, скопировать ключ можно в автоматическом режиме:
$ ssh-copy-id user@host
При этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:
$ ssh-copy-id -i ~/my_key.pub user@host

Создай постоянное соединение с машиной
Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.
Добавь следующие строки в ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no

А затем создай соединение:
$ ssh -MNf user@host

Читать полностью…

Linux Academy

👉 Linux - strace: один из самых недооценённых инструментов

Он нужен в тот момент, когда приложение падает, не видит конфиг, не может найти библиотеку или ругается на файл, которого “вроде бы нет”.

Обычно в такой ситуации начинают гадать: путь не тот, прав не хватает, переменная окружения сломалась, сервис запущен не от того пользователя.

Но strace позволяет не гадать.

Он показывает, к каким файлам процесс реально обращается во время работы. Не то, что написано в документации. Не то, что вы предполагаете. А то, что программа делает на самом деле.

И вот тут часто всё становится очевидно: приложение ищет config не в той директории, лезет за библиотекой по старому пути, не может открыть сертификат или получает отказ из-за прав доступа.

Это особенно полезно при отладке сервисов, Docker-контейнеров, странных production-багов и бинарников, у которых нет нормальных логов.

Главная идея простая: когда Linux-программа ведёт себя непонятно, сначала посмотри её системные вызовы.

https://www.youtube.com/shorts/iRnNQWKozSA

Читать полностью…

Linux Academy

Ratatui

Библиотека Rust, предназначенная для создания терминальных пользовательских интерфейсов (TUI).

https://github.com/tui-rs-revival/ratatui

Читать полностью…

Linux Academy

🖥 «Git Pro: от первого коммита до уровня senior» — на Stepik
Пятница, 17:58.


Вы пишете git push --force. И понимаете, что были не в той ветке.

Дальше два сценария. Первый: холодный пот, звонок тимлиду, испорченные выходные. Второй: git reflog, две команды, всё на месте, идёте домой.

Разница между этими сценариями - этот курс.
Git изнутри. Rebase без страха. Конфликты по алгоритму. Pull Request, code review, защита веток, CI/CD. Три модели ветвления - выберете свою.

Скидка 58%, 48 часов: https://stepik.org/course/284799/

Читать полностью…

Linux Academy

❗️🇫🇷 После того, как французское правительство запретило Windows и заменило его на Linux, французские активисты теперь прощаются с Windows 10 и активно призывают людей принять свободу и использовать Linux вместо того, чтобы платить за обновление до Windows 11, ссылаясь на проблемы с конфиденциальностью.

Французы наконец-то нашли систему, которая капитулирует ещё реже, чем они сами — это Linux: он падает только тогда, когда ты сам введёшь sudo rm -rf /. 🐧🥖

Читать полностью…
Subscribe to a channel