linux.exex [GFYB]
157 subscribers
746 photos
87 videos
9 files
544 links
GFYB - go fuck yourself bitch. This Is team GFYB. goida
Download Telegram
📰 Как типично и абсолютно предсказуемо 😄

Samsung искусственно ограничивала объёмы производства оперативной памяти. Китай объявляет, что теперь способен делать свою. Apple начинает истошно вопить в уши американскому правительству — мол, позвольте нам закупаться у китайцев. Samsung: «эээ, ладно, шутка была, расширяемся!»

Ссылка на новость: en.sedaily.com/finance/2026/07/27/samsung-expands-hwaseong-fab-to-break-dram-bottleneck

Не прошло и 24 часов. Вот это цирк. Все, кто говорил, что конкуренция со стороны Китая ничего не изменит — просто идиоты.

Источник (4chan /g/): https://boards.4chan.org/g/thread/109403553

📍 Подпишись на создателей: https://t.me/linuxexex
📰 Chromium Thread #27

Добро пожаловать в тред, посвящённый браузерам на основе Chromium!

Список актуальных браузеров на основе Chromium:

Google Chrome ‒ основоположник движения браузеров на основе Chromium. Активно экспериментирует над пользователями, внедряя инновационные технологии по профилированию и предоставлению рекламы. Недавно внедрил manifest v3, что запрещает пользователям устанавливать расширения на основе mv2, такие как uBlock Origin, Violentmonkey и другие.
Скачать: https://www.google.com/chrome https://www.google.com/chrome

Ungoogled Chromium ‒ Chromium версия веб-браузера Chromium без интеграции сервисов Google, ориентированная на приватность (включаются через флаги). Включает улучшения для конфиденциальности, прозрачности и контроля онлайн-активности, а так же добавляет в хромиум дополнительные настройки, позволяющие убрать плашку варнинга при входе в полноэкранный режим, крестики с вкладок, настроить кастомную новую вкладку и многое другое.
Скачать: https://github.com/ungoogled-software/ungoogled-chromium https://github.com/ungoogled-software/ungoogled-chromium
Для windows: https://github.com/ungoogled-software/ungoogled-chromium-windows https://github.com/ungoogled-software/ungoogled-chromium-windows (бинарники от васянов качать строго не рекомендуется!)

Chromium: https://www.chromium.org/getting-involved/download-chromium/ https://www.chromium.org/getting-involved/download-chromium/

Cromite ‒ это форк Chromium на основе Bromite со встроенной стойкой блокировки рекламы и обеспечения конфиденциальности. Имеет мощную защиту от отслеживания, пробивает такие трекеры как fingerprint-js-pro и creepjs. Умеет устанавливать расширения из Chrome Web Store. В мобильной версии есть возможность устанавливать расширения.
Скачать: https://github.com/uazo/cromite/releases https://github.com/uazo/cromite/releases

Brave – защищенный браузер с открытым исходным кодом на базе Chromium. Официально браузер имеет нативный блокировщик рекламы, на который не распространяются ограничения накладываемые Google manifest v3 и который поддерживает фильтры от uBlock Origin, анонимную синхронизацию без регистрации между устройствами (без аккаунтов), встроенный Tor с мостами, IPFS, Web3 кошелек. Также в наличии всё еще имеется поддержка mv2 расширений, возможность установки uBO прямо из настроек, вертикальные вкладки с возможностью полного скрытия и сопротивление microsoft recall. Недавно в браузер добавлены контейнеры, подобные тем, которые в фаерфокс. Включить можно через brave://flags. Также еще добавлена возможность скроллить вкладки (когда ширина вкладки не сжимается зависимо от самого количества вкладок) тоже как в фаерфокс. Доступна Origin версия браузера, на windows/android она платна, на linux бесплатна. Отлична тем, что вырезан весь ненужный говняк, из-за которого часто возникают споры и сомнения (типо крипты).
Скачать: https://brave.com https://brave.com
Ссылка на скрипт где можете удалить ненужные вам фичи браузера: https://github.com/ltx0101/SlimBrave https://github.com/ltx0101/SlimBrave

Microsoft Edge ‒ второй крупный игрок после Google Chrome. Реинкарнация некогда известного браузера Internet Explorer на современный лад и его замена. Быстрый и безопасный,…

Источник (2ch /s/): https://2ch.org/s/res/3728838.html

📍 Подпишись на создателей: https://t.me/linuxexex
Один и тот же ноутбук, три дистрибутива — что получилось

Взял старый ThinkPad X230 (Core i5-3320M, 8 ГБ RAM, SSD 120 ГБ) и поставил по очереди три популярных дистрибутива. Задача простая: настроить рабочее окружение для разработки, поднять Docker, настроить vim/neovim, подключить внешний монитор через DisplayPort. Ничего экзотического — типичный сценарий.

Ubuntu 22.04 LTS

Установка заняла 12 минут. Всё завелось сразу, внешний монитор подхватился без танцев. Docker ставится двумя командами по официальной документации. Из коробки — snap-пакеты, которые никто не просил, и Firefox в snap-формате с заметной задержкой старта. Потребление RAM в простое — около 900 МБ. Для новичка или тех, кто не хочет думать об инфраструктуре — честный выбор. Для ветерана раздражает обилие лишнего.

Arch Linux

Установка — 40 минут, если знаешь что делаешь. Если нет — добро пожаловать на wiki.archlinux.org, там реально хорошо написано. Пакетный менеджер pacman работает быстро, AUR закрывает почти любую потребность. Docker, neovim, шрифты — всё нашлось без самодеятельности. Внешний монитор через xrandr настроился одной командой. RAM в простое — 350 МБ с i3wm. Главный минус: rolling-release иногда преподносит сюрпризы после обновления. За месяц один раз слетел конфиг pipewire после апдейта — починил за 10 минут, но осадочек.

Fedora 38

Вот это приятно удивило. Установка — 15 минут, SELinux включён по умолчанию и почти не мешает (почти). RPM Fusion подключается быстро и даёт нужные кодеки. Docker здесь заменяется на Podman — rootless из коробки, это реально удобнее с точки зрения безопасности. Внешний монитор завёлся сам. RAM в простое с GNOME — около 750 МБ. Fedora ощущается как Ubuntu для тех, кто чуть вырос из Ubuntu. Свежее ядро, современный стек, но без необходимости собирать всё руками.

Итог по ощущениям

Если нужно просто работать и не думать — Ubuntu. Если хочешь контроль и не боишься терминала — Arch. Если хочешь баланс между свежестью и стабильностью — Fedora.

Для того ThinkPad X230 я в итоге оставил Fedora: свежее ядро лучше работает с энергосбережением на этом железе, и Podman мне честно понравился больше Docker-демона. Arch был бы идеален, но на машине, которой пользуюсь каждый день для работы, не хочу гамблить на обновлениях.

Какой дистрибутив у вас на основной машине? 👇

📍 Подпишись на создателей: https://t.me/linuxexex
скоро призма станет мессенджером
jq — швейцарский нож для JSON

Если ты хоть раз работал с API или логами в терминале, ты знаешь эту боль: curl что-то возвращает, а в ответ — одна длинная каша из JSON без пробелов и переносов. Читать невозможно, искать нужное поле — страдание.

Вот тут и заходит jq.

Это консольная утилита для парсинга, фильтрации и трансформации JSON. Маленькая, быстрая, без зависимостей. Стоит один раз освоить базу — и работа с любыми API в терминале становится приятной.

Самое простое — красивый вывод:

curl -s https://api.github.com/users/torvalds | jq .

Всё, JSON уже читаемый, с подсветкой.

Хочешь только одно поле:

curl -s https://api.github.com/users/torvalds | jq .name

Массив объектов? Вытащи конкретное поле из каждого:

jq '.[].login' users.json

Фильтрация — только те объекты, где значение совпадает:

jq '.[] | select(.active == true)' data.json

Можно собирать новый объект из нужных полей:

jq '.[] | {id: .id, email: .email}' data.json

Работает и с файлами, и с пайпами — встраивается в любой скрипт без проблем.

Установка везде одинаково просто:

Ubuntu/Debian — apt install jq
macOS — brew install jq
Alpine — apk add jq

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

Если ты до сих пор парсишь JSON через grep или Python-однострочники — попробуй jq. Скорее всего, он останется у тебя навсегда 🛠️

📍 Подпишись на создателей: https://t.me/linuxexex
📰 Java Thread №291

Вики по джаве: https://github.com/java2ch/java-thread/wiki https://github.com/java2ch/java-thread/wiki (доступна для редактирования всем)
Предыдущий: >>3686960 (OP)

Источник (2ch /pr/): https://2ch.org/pr/res/3718743.html

📍 Подпишись на создателей: https://t.me/linuxexex
Знаешь, откуда взялось имя «Linux»?

Линус Торвальдс изначально хотел назвать своё ядро Freax — от слов «free», «freak» и «Unix». Он даже успел создать файлы с таким именем и несколько месяцев использовал его у себя локально.

Но в 1991 году его приятель Ари Лемке, который администрировал FTP-сервер финского университета, загрузил ядро в публичный доступ. И назвал директорию своей волей — linux. Лемке посчитал, что это звучит лучше. Торвальдс поначалу был против, но потом смирился и принял имя как данность.

Так что технически Linux назвал не сам Линус. 😄

Интересно, что сам Торвальдс признавался: если бы он выбирал имя осознанно, то слово Freax ему нравилось больше. Но история распорядилась иначе, и сегодня слово «Linux» знает весь мир — от серверных стоек до смартфонов в кармане.

Вот так случайное решение одного системного администратора в маленьком университете Финляндии навсегда вошло в историю IT.

📍 Подпишись на создателей: https://t.me/linuxexex
📰 Объявление: правила обновлены, и апрель наконец-то закончился

После временного бана на контент об LLM в течение всего апреля, и после того как модераторы собрали обратную связь от пользователей, было решено завершить временный запрет на посты об ИИ — тот самый, про который уже думали «не верю, что он до сих пор действует».

Вместо пробного правила появилось новое, которое отсылает к новой политике сабреддита в отношении ИИ. Если коротко: контент об ИИ и LLM считается офтопиком, за одним исключением — глубоко технические материалы о реализации таких систем всё же разрешены. Если хочется подробностей — читайте политику, она для этого и написана.

Кроме того, в процессе написания нового правила модераторы обнаружили, что правила не отображались в сайдбаре на old.reddit.com — это исправили. Для тех, кто видит правила впервые: там нет ничего нового. Модераторы применяли эти правила как могли уже давно. По ссылке над списком правил можно перейти на страницу правил old.reddit с подробной информацией, которая просто плохо влезает в сайдбар.

Источник (r/programming): https://www.reddit.com/r/programming/comments/1tlh5aj/announcement_weve_updated_the_rules_and_april_is/

📍 Подпишись на создателей: https://t.me/linuxexex
Быстрый совет по безопасности для тех, кто сидит на Linux 🐧

Многие ставят систему, настраивают всё под себя — и забывают про одну банальную вещь. Это аудит файлов с SUID-битом.

Что такое SUID? Это специальный бит, который позволяет запускать программу с правами владельца файла, а не с правами того, кто её запустил. Звучит безобидно, пока владелец не root.

Типичный пример — /usr/bin/passwd. Он должен иметь SUID, потому что меняет системные файлы. Но если в системе появится посторонний файл с этим битом, злоумышленник получит лёгкий путь к повышению привилегий.

Как это проверить? Одной командой:

find / -perm -4000 -type f 2>/dev/null

Она найдёт все файлы с SUID в системе. Запусти и пробегись по списку. Большинство из них — стандартные утилиты: passwd, su, sudo, ping. Это нормально.

Но если видишь что-то незнакомое — это повод копать глубже.

Что делать с подозрительными файлами?

Сначала смотришь, кто владелец и откуда файл появился:

ls -la /путь/к/файлу
dpkg -S /путь/к/файлу # для Debian/Ubuntu
rpm -qf /путь/к/файлу # для RHEL/Fedora

Если файл не принадлежит ни одному пакету — это красный флаг 🚩

Убрать SUID-бит, если он не нужен, просто:

chmod u-s /путь/к/файлу

Дополнительно можно автоматизировать мониторинг. Сохрани текущий список доверенных SUID-файлов в файл и сравнивай периодически через cron:

find / -perm -4000 -type f 2>/dev/null | sort > /root/suid_baseline.txt

Потом через cron запускаешь аналогичную команду и сравниваешь diff-ом с baseline. Любое новое вхождение — сигнал для проверки.

Это не паранойя, это гигиена. Linux доверяет тебе, а ты доверяй, но проверяй 🔍

📍 Подпишись на создателей: https://t.me/linuxexex
📰 Это случилось

Несколько лет назад люди начали говорить об определённых китайских колёсах не просто как о «лучших китайских» или «лучших бюджетных», а просто как о «лучших колёсах». В этом году Winspace выпустила T1600 — продукт для внутреннего китайского рынка, который стоит дороже Madone или Tarmac. Прямо из коробки он одобрен UCI (хотя, возможно, придётся приклеить свинцовые грузики, чтобы вписаться в весовые ограничения). Западным покупателям он официально не предназначен — хотя они, без сомнения, всё равно попытаются его достать.

Западные бренды сыпались один за другим ещё до того, как опустился железный занавес 2.0, а теперь прозвучал и контрольный выстрел: такие гиганты, как Trek, рискуют обанкротиться, потому что их производственные цепочки перерезала политика импортозамещения — популярная тактика развития третьего мира, которую в своё время с энтузиазмом практиковали такие визионеры, как Пиночет и Гальтиери.

Это конец эпохи западного велосипеда? Будут ли завтрашние дантисты соглашаться не меньше чем на китайские байки с китайской же трансмиссией?

Источник (4chan /n/): https://boards.4chan.org/n/thread/2039960

📍 Подпишись на создателей: https://t.me/linuxexex
Как Linux понимает, что файл — это файл 📁

Давайте разберём VFS — виртуальную файловую систему. Это одна из тех штук, которую все используют, но мало кто думает о том, как она вообще работает.

Проблема, которую VFS решает

На вашей машине может стоять ext4 на системном разделе, btrfs на домашнем, ntfs на флешке, и ещё /proc с /sys, которые вообще не хранят данные на диске — они генерируются ядром на лету. Как пользовательская программа работает с ними одинаково? Пишет open(), read(), write() — и всё просто работает.

Ответ: VFS — это слой абстракции внутри ядра, который прячет все различия за единым интерфейсом.

Четыре кита VFS

Внутри VFS есть четыре ключевых объекта.

Суперблок — это метаданные всей файловой системы. Когда вы монтируете раздел, ядро читает суперблок и создаёт его in-memory представление. Там хранится тип ФС, размер блока, указатели на корневой inode и прочее.

Inode — описание конкретного файла или директории. Здесь живут права доступа, владелец, размер, временные метки и указатели на блоки данных. Имени файла здесь нет — это важный момент.

Dentry (directory entry) — связывает имя файла с inode. Именно поэтому hard link работает так, как работает: два dentry указывают на один inode. Ядро кэширует dentry агрессивно, потому что обход пути /usr/bin/python3 иначе превратился бы в кучу операций чтения.

File — объект, который создаётся при каждом вызове open(). Он хранит текущую позицию чтения, флаги доступа и указатель на inode. Один и тот же файл могут открыть десять процессов — будет десять объектов file, но один inode.

Как это работает при open()

Вы пишете open("/home/user/notes.txt", O_RDONLY).

Ядро начинает с корня, берёт dentry для "/", потом ищет "home" в нём, потом "user", потом "notes.txt". На каждом шаге идёт в dentry-кэш, и только при промахе — на диск. В итоге получает inode нужного файла, создаёт объект file, кладёт его в таблицу открытых файлов процесса и возвращает вам файловый дескриптор — просто число.

Когда вы делаете read(), ядро по дескриптору находит объект file, через него добирается до inode, а дальше вызывает метод read конкретной файловой системы. ext4 и btrfs реализуют эти методы по-своему, но VFS не знает и знать не хочет — он просто дёргает указатель на функцию.

Почему /proc — это гениально

/proc монтируется как отдельная ФС типа procfs. Когда вы читаете /proc/1/status, никакого файла на диске нет. Ядро просто вызывает функцию, которая генерирует текст прямо в момент чтения. С точки зрения VFS это обычный файл. С точки зрения реализации — вызов в планировщик и подсистему памяти.

Вот почему cat /proc/cpuinfo работает точно так же, как cat README.md, хотя природа этих файлов принципиально разная.

VFS — это классический пример того, как правильный слой абстракции делает систему расширяемой без боли. Хотите добавить новую файловую систему в Linux? Реализуйте нужные операции, зарегистрируйте тип — и всё, она работает как родная. 🐧

📍 Подпишись на создателей: https://t.me/linuxexex
Знаете, почему пингвин Тукс стал символом Linux?

В 1996 году Линус Торвальдс объявил конкурс на логотип для своей операционной системы. Единственное условие — никаких серьёзных корпоративных орлов и прочей пафосной живности. Линус хотел что-то милое и немного нелепое.

Тут он вспомнил, что однажды его укусил пингвин в австралийском зоопарке. Звучит как байка, но сам Торвальдс это подтверждал. Укус оказался несильным, но запоминающимся — и образ остался в голове.

Художник Ларри Юинг нарисовал толстенького довольного пингвина, сидящего с набитым пузом. Как будто только что съел лишнюю рыбу и теперь просто кайфует. Никакой агрессии, никакой серьёзности. Торвальдсу понравилось.

Имя Tux, кстати, придумал не Линус. Его предложил Джеймс Хьюз — от слова tuxedo, то есть смокинг. Потому что чёрно-белая расцветка пингвина напоминает вечерний костюм. Ещё одна версия — сокращение от Torvalds UniX. Оба варианта красивые, официально закреплённого нет.

Самое интересное: Ларри Юинг нарисовал Тукса в программе GIMP — тогда совсем молодом open source редакторе. Символ Linux появился благодаря другому open source проекту. Такое вот взаимное уважение.

С тех пор Тукс живёт везде — на серверах, суперкомпьютерах, смартфонах с Android и даже в ядре марсохода NASA. Укушенный пингвином программист из Финляндии явно не предполагал, к чему это приведёт 🐧

📍 Подпишись на создателей: https://t.me/linuxexex
🛠 Инструмент дня: ripgrep

Если ты до сих пор ищешь по проекту через grep -R, попробуй rg.

Пример:

rg "TODO|FIXME"

ripgrep быстрый, по умолчанию уважает .gitignore и удобно показывает контекст. Для больших репозиториев разница чувствуется сразу.

Полезные варианты:
rg -n "pattern" — с номерами строк
rg --files — список файлов проекта
rg -t py "async def" — искать только в Python-файлах

Один из тех инструментов, после которых назад возвращаться не хочется.

📍 Подпишись на создателей: https://t.me/linuxexex
📰 Проект ЕС по верификации возраста обяжет использовать аппаратную аттестацию

Европейский союз работает над системой верификации возраста, и судя по всему, она потребует аппаратной аттестации — то есть привязки к железу конкретного устройства.

Что это значит на практике: сайты и сервисы смогут убедиться, что ты совершеннолетний, только если твоё устройство аппаратно подтверждает личность через встроенный чип (вроде TPM). Без «правильного» железа — нет доступа.

Сообщество Linux встревожено по понятным причинам. Аппаратная аттестация в том виде, в каком её продвигают крупные вендоры, — это по сути Web Environment Integrity от Google или аналогичные схемы. Они проверяют не только железо, но и то, «одобрена» ли операционная система. Linux, кастомные прошивки, разблокированные загрузчики — всё это рискует оказаться за бортом.

Фактически ЕС может узаконить механизм, который:
— дискриминирует пользователей свободного ПО
— даёт производителям железа и ОС контроль над тем, кто получает доступ к интернету
— создаёт инфраструктуру слежки под соусом «защиты детей»

Верификация возраста — цель благородная. Но аппаратная аттестация — это кувалда там, где нужен скальпель. И прецедент крайне опасный. 🔒

Источник (r/linux): https://www.reddit.com/r/linux/comments/1vfl2nq/eu_age_verification_project_mandates/

📍 Подпишись на создателей: https://t.me/linuxexex
Расскажу про одну штуку в bash и zsh, которую большинство не замечает годами.

Называется это parameter expansion с модификаторами. Звучит скучно, но на практике экономит кучу времени.

Смотри. У тебя есть переменная с путём к файлу:

file="/home/user/projects/app.tar.gz"

Теперь без единой внешней утилиты — ни basename, ни dirname, ни sed — ты можешь вытащить что угодно:

Только имя файла:
echo "${file##*/}"
→ app.tar.gz

Только директорию:
echo "${file%/*}"
→ /home/user/projects

Убрать расширение:
echo "${file%%.*}"
→ /home/user/projects/app

Убрать только последнее расширение:
echo "${file%.*}"
→ /home/user/projects/app.tar

Логика простая. Решётка # — режем с начала строки, процент % — режем с конца. Одинарный символ — минимальное совпадение, двойной — максимальное. Один раз запомнил, и больше не забудешь.

Но это ещё не всё. Есть замена по паттерну прямо внутри переменной:

text="hello world world"

echo "${text/world/linux}"
→ hello linux world

echo "${text//world/linux}"
→ hello linux linux

Один слэш — заменяет первое вхождение, два — все сразу. Никакого sed для простых замен.

И совсем редкая вещь — изменение регистра. Работает в bash 4+ и zsh:

name="hello world"

echo "${name^}"
→ Hello world

echo "${name^^}"
→ HELLO WORLD

str="LINUX IS COOL"
echo "${str,,}"
→ linux is cool

Каретка поднимает регистр, запятая опускает. Двойная — применяет ко всей строке.

Зачем это вообще нужно? Во-первых, скорость. Всё это работает внутри самого шелла без форка нового процесса. В скриптах, которые гоняют тысячи файлов в цикле, разница ощутимая. Во-вторых, читаемость — когда видишь ${file##*/}, понимаешь намерение сразу, не гадаешь что делает регулярка в sed.

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

for f in *.mp4; do
ffmpeg -i "$f" "${f%.mp4}.mkv"
done

Чисто, без подпроцессов, без временных переменных.

Это тот случай, когда bash перестаёт казаться убогим и начинает казаться хитрым 😄

📍 Подпишись на создателей: https://t.me/linuxexex
Как Linux управляет памятью — просто о сложном

Каждый раз, когда ты запускаешь программу, ядро делает кучу невидимой работы. Давай разберёмся, как устроена подсистема управления памятью в Linux — одна из самых фундаментальных частей системы.

Главная идея: виртуальная память

Каждый процесс думает, что у него есть весь адресный диапазон целиком. Браузер не знает о существовании терминала, терминал — о браузере. Это и есть виртуальная память. Ядро создаёт иллюзию, что у каждого процесса своя личная оперативка.

На самом деле за этим стоит таблица страниц. Ядро хранит маппинг: виртуальный адрес процесса → реальный физический адрес в RAM. Процессор при каждом обращении к памяти смотрит в эту таблицу через специальный блок MMU. Если адреса нет — получаешь segfault, знакомо?

Страницы и Page Fault

Память делится на страницы по 4 КБ (обычно). Когда процесс обращается к странице, которой нет в RAM, происходит так называемый page fault — прерывание. Ядро перехватывает его и решает: либо загрузить страницу с диска, либо убить процесс, если он полез куда не надо.

Это и есть механизм подкачки (swap). Когда RAM заканчивается, ядро выталкивает редко используемые страницы на диск, освобождая место. Потом, если они снова понадобятся — подгрузит обратно. Это медленно, но лучше чем OOM-killer, который просто расстреляет один из процессов 💀

OOM-killer — отдельная история

Если swap тоже кончился и памяти нет совсем, ядро запускает OOM-killer (Out Of Memory Killer). Он считает баллы каждому процессу: сколько памяти жрёт, насколько важен, сколько живёт — и убивает того, кто набрал больше всего очков "ненужности". Иногда выбор бывает... спорным. Поэтому в продакшне за памятью следят внимательно.

Copy-on-Write

Когда процесс делает fork() — создаёт дочерний процесс — ядро не копирует всю память сразу. Оба процесса смотрят на одни и те же физические страницы. Копирование произойдёт только тогда, когда кто-то из них попытается что-то записать. Это называется Copy-on-Write и экономит кучу ресурсов.

Зачем это знать на практике?

Смотришь на /proc/meminfo и видишь Cached и Buffers — это ядро использует свободную RAM как кэш файловой системы. Это нормально и хорошо. Если приложению понадобится память — кэш освободится. Поэтому "свободная" память в Linux почти всегда близка к нулю, и это не проблема.

Команды, которые помогают разобраться:
free -h — общая картина
vmstat 1 — динамика
cat /proc/meminfo — детали
dmesg | grep -i oom — был ли OOM-killer

Подсистема памяти в Linux — это огромный айсберг. Сегодня показал только верхушку, но уже достаточно, чтобы не паниковать когда видишь "память занята" 🧊

📍 Подпишись на создателей: https://t.me/linuxexex
Лайфхак для терминала, который я использую каждый день

Если ты часто работаешь в терминале, то наверняка знаешь боль: набрал длинную команду, нажал Enter — и только потом заметил ошибку. Или хуже — забыл как называлась та команда, которую вводил три дня назад.

Вот несколько трюков, которые реально экономят время.

⚡ Ctrl+R — поиск по истории

Нажимаешь Ctrl+R и начинаешь вводить часть команды — bash или zsh сами найдут её в истории. Не нужно листать стрелочками вверх сто раз. Просто вводишь кусок того, что помнишь, и получаешь результат. Если не то — жмёшь Ctrl+R ещё раз, идёт дальше по истории.

⚡ !! и !$

!! — повторяет предыдущую команду целиком. Классика: забыл написать sudo.

sudo !!

И команда выполнится с правами суперпользователя.

!$ — подставляет последний аргумент предыдущей команды. Например:

mkdir /very/long/path/to/project
cd !$

Не нужно копировать путь заново — он подставится сам.

⚡ Ctrl+A и Ctrl+E

Ctrl+A — прыгает в начало строки. Ctrl+E — в конец. Намного быстрее, чем держать стрелку зажатой.

⚡ Ctrl+U и Ctrl+K

Ctrl+U — удаляет всё от курсора до начала строки. Ctrl+K — до конца строки. Очень удобно, когда набрал длинную команду и хочешь переписать только начало или конец.

⚡ Alt+. (точка)

Подставляет последний аргумент из самой последней команды — аналог !$, но работает интерактивно. Нажимаешь несколько раз — листаешь аргументы из предыдущих команд по истории. Это вообще магия, пока не попробуешь — не понимаешь насколько полезно.

⚡ history | grep

Если Ctrl+R не справляется — можно поискать руками:

history | grep docker

Выдаст все команды с docker из истории. Находишь номер нужной и запускаешь через !номер — например !342.

Все эти штуки встроены в bash и zsh, ничего устанавливать не нужно. Просто начни использовать — через неделю руки сами будут тянуться к Ctrl+R вместо стрелки вверх. 🖥️

Какой из этих трюков уже знал, а какой стал открытием? Пиши в комментарии.

📍 Подпишись на создателей: https://t.me/linuxexex
Совет по безопасности, который многие игнорируют 🔐

Хочу поговорить про sudo и про то, как большинство людей пользуются им не думая.

Классическая картина: ставишь какой-нибудь пакет, лезешь в конфиг, что-то правишь — и на автопилоте пишешь sudo перед каждой командой. Привычка. Мышечная память. А потом удивляются, почему что-то пошло не так.

Вот несколько конкретных вещей, которые стоит сделать прямо сейчас.

— — —

Проверь, кто вообще в группе sudo или wheel

На Debian/Ubuntu:
getent group sudo

На Fedora/Arch:
getent group wheel

Если видишь там имена, которых не ожидал — это повод задать вопрос. Особенно актуально на серверах, где работало несколько человек.

— — —

Настрой таймаут sudo

По умолчанию sudo помнит твои права 15 минут. Это удобно, но если ты отошёл от компьютера, а сессия открыта — любой, кто сядет за клавиатуру, может рулить системой без пароля.

Открой visudo и добавь:

Defaults timestamp_timeout=0

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

— — —

Запрети sudo без пароля

Иногда в sudoers встречается страшная строка:

username ALL=(ALL) NOPASSWD: ALL

Это значит — пользователь делает всё что угодно от рута без ввода пароля. Удобно для автоматизации, но если кто-то получит доступ к сессии — система открыта нараспашку. Убирай NOPASSWD там, где это не жёсткая необходимость.

— — —

Используй sudo -l чтобы понимать свои права

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

— — —

Не запускай текстовые редакторы через sudo без нужды

sudo vim /etc/hosts — окей, если реально нужно.
Но многие запускают весь редактор с правами рута ради одного файла, а потом в нём открывают что-то ещё, ставят плагины и так далее. Лучше использовать sudoedit — он открывает файл безопаснее, через копию, и не даёт редактору работать от рута напрямую.

sudoedit /etc/hosts

— — —

Безопасность — это не параноя, это привычка думать перед тем, как нажать Enter. Особенно когда в команде есть sudo 🙂

📍 Подпишись на создателей: https://t.me/linuxexex
Лайфхак для терминала, который реально экономит время ⚡

Если ты каждый день работаешь в терминале, то наверняка набираешь одни и те же длинные команды по кругу. Есть простой способ это исправить — алиасы плюс одна малоизвестная штука, которую многие игнорируют.

Все знают про alias в .bashrc или .zshrc. Но мало кто использует функции вместо алиасов, когда нужно передать аргументы в середину команды.

Например, хочешь быстро зайти в любую директорию проекта и сразу открыть её в редакторе:

cdcode() { cd ~/projects/"$1" && code . ; }

Теперь пишешь cdcode myapp — и ты уже внутри нужной папки с открытым редактором. Никаких двух команд, никаких ошибок с путём.

Но это ещё не главное. Вот реальный экономщик времени — CDPATH.

Добавь в .bashrc строку:

export CDPATH=.:~:~/projects:~/work

После этого команда cd myapp будет искать папку не только в текущей директории, но и во всех путях из CDPATH. Ты пишешь просто cd myapp из любого места в системе — и попадаешь в ~/projects/myapp, если там такая папка есть.

Никакого автодополнения настраивать не надо, работает из коробки в bash и zsh.

Ещё один момент — история команд. По умолчанию она маленькая и не сохраняет дубли. Добавь это:

export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTCONTROL=ignoredups:erasedups
shopt -s histappend

Теперь история большая, дубли не захламляют её, и при открытии нового терминала история не перезатирается, а дописывается. Ctrl+R для обратного поиска по истории становится в разы полезнее, когда там реально все твои команды за последние месяцы.

Итого три вещи, которые стоит сделать прямо сейчас: написать функции вместо сложных алиасов, настроить CDPATH под свою структуру проектов, и починить настройки истории. Занимает пять минут, а время экономит каждый день. 🖥️

📍 Подпишись на создателей: https://t.me/linuxexex
📰 TUI

TUI (Terminal User Interface) — это тип интерфейса, использующий псевдографику и символы в терминале для создания интерактивных окон, меню и панелей. Они часто используются, так как легкие, работают без графической оболочки (GUI), быстры и популярны для управления системой.

Практически под каждый чих есть свой софт - тут актуальный каталог https://terminaltrove.com/ https://terminaltrove.com/

сам подсел на это дело после настройки своего selfhost сервака, потом на ноутбуке снёс гном и теперь полностью сиду в псевдографике. Жаль на мобиле такого нет.

Источник (2ch /s/): https://2ch.org/s/res/3698327.html

📍 Подпишись на создателей: https://t.me/linuxexex
какой пиздец