linux.exex [GFYB]
156 subscribers
748 photos
87 videos
9 files
554 links
GFYB - go fuck yourself bitch. This Is team GFYB. goida
Download Telegram
Ебучие беспилотники у окна летают
думаю сделать архитектуру процессора для mirox
Лайфхак для терминала, который реально экономит время ⚡

Если ты до сих пор набираешь длинные команды целиком или листаешь историю стрелочками — держи трюк, который меняет подход к работе в терминале.

Ctrl + R — поиск по истории команд в реальном времени.

Нажал, начал вводить кусок команды — и bash (или zsh) сразу показывает совпадение из истории. Нашёл нужное — Enter, и готово. Не нужно помнить точный синтаксис длинного rsync или docker run с кучей флагов.

Но это ещё не всё. По умолчанию история часто слишком короткая и не сохраняет дубли. Исправляется парой строк в ~/.bashrc:

HISTSIZE=100000
HISTFILESIZE=200000
HISTCONTROL=ignoredups:erasedups
shopt -s histappend

После этого история перестаёт затираться между сессиями и хранит десятки тысяч команд. Ctrl + R становится настоящей машиной времени по твоим действиям в терминале.

Хочешь ещё удобнее? Поставь fzf — это fuzzy-поиск, который превращает Ctrl + R в интерактивный фильтр с мгновенным откликом. Ставится одной командой:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install

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

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

📍 Подпишись на создателей: https://t.me/linuxexex
меня крайне заебали эти максы похуяксы так что сделаем свой месенджер
ебать
нихуя
🧠 Linux tip: namei

Есть команда, о которой часто забывают: namei.

Она раскладывает путь по компонентам и показывает права на каждом уровне:

namei -l /var/www/site/index.html

Это удобно, когда файл существует, права на нём нормальные, но nginx или приложение всё равно получает Permission denied. Проблема часто не в самом файле, а в одной из родительских папок.

Если дебажишь доступы в Linux, namei экономит много времени.

📍 Подпишись на создателей: https://t.me/linuxexex
🔐 Linux security: проверь SSH-доступ

Минимальный чек-лист для сервера:

1. Отключить вход root по SSH:
PermitRootLogin no

2. Отключить парольный вход, если используешь ключи:
PasswordAuthentication no

3. Проверить, кто вообще может логиниться:
AllowUsers your_user

После изменения конфига не закрывай текущую SSH-сессию сразу. Сначала открой вторую и проверь вход.

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

📍 Подпишись на создателей: https://t.me/linuxexex
📰 Ешь салат. С салатом всё в порядке.

FDA Трампа делает вид, что проводит серьёзное расследование — уже после того, как Трамп получил взятку от Taylor Farms.

Вокруг продолжающейся вспышки циклоспороза в понедельник возникла путаница: поставщик продуктов питания, связанный с заболеванием, вступил в конфликт с Управлением по санитарному надзору за качеством пищевых продуктов и медикаментов (FDA).

Чиновники FDA заявили на пресс-конференции в понедельник, что расследование по-прежнему указывает на листовой салат айсберг компании Taylor Farms как на источник вспышки. Это несмотря на то, что компания утверждает: агентство принесло ей официальные извинения за объявление ложноположительного результата теста на циклоспору в их салате.

«Мы не приносили официальных извинений, но фактически разъяснили возникшие вопросы», — заявил представитель FDA.

Taylor Farms — многонациональный гигант по поставкам продуктов питания — оказался в центре истории со вспышкой паразита, вызывающего диарею, после того как Центры по контролю и профилактике заболеваний (CDC) отследили сообщения о болезни до салата-айсберга Taylor Farms de Mexico, который подавали в заведениях Taco Bell в пяти штатах. В пятницу поставщик объявил добровольный отзыв айсберга из центральной Мексики, включая фасованные салатные миксы из продуктовых магазинов.

В выходные FDA сначала объявило, а затем отозвало новость о том, что образец салата Taylor Farms дал положительный результат на циклоспору. Этот тест оказался ложноположительным — то есть агентство так и не обнаружило никаких «подтверждённых положительных результатов при тестировании продуктов на циклоспору», говорится в заявлении FDA.

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

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

Многие знают про Ctrl+R — обратный поиск по истории. Но есть кое-что помощнее, и большинство про это не знает.

Называется fzf — fuzzy finder для командной строки. Устанавливается за секунду:

# Debian/Ubuntu
apt install fzf

# Arch
pacman -S fzf

# macOS
brew install fzf

После установки жмёшь Ctrl+R — и вместо стандартного поиска получаешь интерактивный список всей истории с нечётким поиском. Начинаешь набирать любую часть команды — список фильтруется на лету. Не надо помнить точное начало команды, достаточно вспомнить любое слово из неё.

Но это только начало. Вот где начинается магия:

Ctrl+T — вставить путь к файлу прямо в текущую команду. Набираешь vim, жмёшь Ctrl+T, выбираешь файл из интерактивного дерева — готово.

Alt+C — моментально перейти в любую папку. Не надо помнить полный путь, просто набираешь кусок названия.

Можно использовать fzf в пайпах. Например выбрать процесс для kill:

kill -9 $(ps aux | fzf | awk '{print $2}')

Или выбрать ветку git для переключения:

git checkout $(git branch | fzf)

Или открыть любой файл в проекте:

vim $(find . -type f | fzf)

Последнее вообще убивает необходимость помнить структуру проекта целиком.

Ещё одна вещь, про которую забывают — двойные восклицательные знаки !! в bash. Это псевдоним для последней команды. Забыл написать sudo? Не надо стрелку вверх давить и идти в начало строки:

sudo !!

Просто выполнит предыдущую команду с sudo. Работает везде без установки чего-либо.

И совсем простое, но удивительно полезное — Ctrl+W удаляет одно слово назад. Если написал длинную команду с ошибкой в последнем аргументе, не надо держать Backspace — одно нажатие и слово стёрто.

Терминал это не про скорость печати, это про то чтобы не делать лишних движений 🖥️

📍 Подпишись на создателей: https://t.me/linuxexex
📰 Биде — экологично и нежно для попы?

Биде лучше для экологии и для прямой кишки, чем туалетная бумага?

Обычная туалетная бумага — это трата ресурсов. Плюс она раздражает мой анус.

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

📍 Подпишись на создателей: https://t.me/linuxexex
Зiвтрiк 🥰
Please open Telegram to view this post
VIEW IN TELEGRAM
Как Linux решает, кому дать процессор прямо сейчас

Представь: у тебя 8 ядер и 300 процессов. Кто работает, а кто ждёт? Этим занимается планировщик задач — одна из самых интересных подсистем ядра.

С 2007 года в Linux живёт CFS — Completely Fair Scheduler. Название говорит само за себя: он пытается быть честным. Но как именно?

Главная идея — виртуальное время

CFS не думает категориями «дай процессу 10 миллисекунд». Вместо этого он ведёт для каждого процесса счётчик vruntime — виртуальное время выполнения. Чем дольше процесс уже работал, тем больше его vruntime.

Логика простая: всегда запускай того, у кого vruntime наименьший. То есть того, кто меньше всего получил процессорного времени.

Красно-чёрное дерево вместо очереди

Все запущенные процессы хранятся в красно-чёрном дереве — это самобалансирующаяся структура данных. Ключ — тот самый vruntime. Самый «голодный» процесс всегда крайний левый узел дерева.

Планировщик просто берёт левый узел, запускает процесс, обновляет vruntime — и снова кладёт в дерево уже на другое место. Вставка и поиск за O(log n). Элегантно.

А что с приоритетами?

Приоритет (nice value, от -20 до +19) влияет на скорость роста vruntime. У важного процесса vruntime растёт медленнее — значит, он чаще оказывается «самым голодным» и получает больше времени. Никакой магии, просто математика.

Период и гранулярность

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

Почему это круто

До CFS в Linux был O(1) scheduler — он работал быстро, но интерактивность страдала. Браузер мог подвисать, потому что планировщик не умел хорошо отличать «жду ввода от пользователя» от «считаю что-то тяжёлое».

CFS решил это элегантно: процессы, которые часто спят (ждут клавиатуру, сеть), накапливают маленький vruntime. Когда они просыпаются — сразу оказываются в начале очереди и получают процессор почти мгновенно. Отсюда отзывчивость десктопа.

Сейчас в ядре 6.6+ появился EEVDF — наследник CFS с более честной математикой, но принцип тот же: виртуальное время и честное распределение.

Планировщик — это несколько тысяч строк кода в kernel/sched/fair.c, которые незаметно делают так, чтобы твой терминал отвечал быстро, пока в фоне компилируется ядро 😄

📍 Подпишись на создателей: https://t.me/linuxexex
📰 Учёные изучили, как длинноцепочечные полиненасыщенные жирные кислоты распределяются в пищевых цепях пресноводных рыб Европы

Систематический обзор исследовал пространственно-временное распределение длинноцепочечных полиненасыщенных жирных кислот (LC-PUFA) в пищевых сетях европейских пресноводных озёр и прудов — в той их части, которая фильтруется через жабры рыб.

LC-PUFA, в частности омега-3 кислоты EPA и DHA, критически важны для здоровья водных экосистем и самих рыб. Они синтезируются преимущественно микроводорослями и фитопланктоном, затем передаются по пищевой цепи — от зоопланктона к рыбам.

Исследование охватывает европейские пресноводные водоёмы и анализирует, как концентрация этих веществ меняется в зависимости от сезона, географии и типа экосистемы. Это важно для понимания того, насколько пресноводные рыбы способны обеспечивать людей качественными омега-3 жирными кислотами — особенно на фоне изменения климата и эвтрофикации водоёмов, которые влияют на состав фитопланктона и, следовательно, на доступность LC-PUFA во всей пищевой цепи.

Источник (r/science): https://www.reddit.com/r/science/comments/1v6xq62/spatiotemporal_distribution_of_longchain/

📍 Подпишись на создателей: https://t.me/linuxexex
У меня др седня кста
watch — команда, о которой забывают, но зря

Большинство линуксоидов знают top, htop, tail -f. Но есть одна простая штука, которую почему-то игнорируют — команда watch.

Что она делает: запускает любую команду повторно через заданный интервал и показывает результат прямо в терминале. Живое обновление без скриптов и циклов.

Базовое использование:

watch df -h

Это будет каждые 2 секунды показывать состояние дисков. Никакого скрипта, никакого while true.

Полезные флаги:

-n — задать интервал в секундах
watch -n 5 free -m
обновляет каждые 5 секунд, смотрим память

-d — подсвечивает изменения между обновлениями
watch -d netstat -an
сразу видно, что поменялось в сетевых соединениях

-t — убирает шапку с временем и командой, если мешает

-e — останавливает выполнение, если команда вернула ошибку

Реальные сценарии где это реально спасает:

Следишь за размером лога в реальном времени:
watch -n 1 'ls -lh /var/log/syslog'

Мониторишь очередь задач:
watch -n 3 'ps aux | grep python'

Ждёшь когда файл появится в директории:
watch -n 2 'ls /tmp/ | grep backup'

Смотришь как меняется температура процессора:
watch -n 1 sensors

Проверяешь статус сервиса пока что-то деплоишь:
watch systemctl status nginx

Одна тонкость: watch запускает команду через sh -c, поэтому алиасы из вашего .bashrc там не работают. Если нужен алиас — передавай явно строкой или используй функцию.

Ещё момент — минимальный интервал 0.1 секунды. Можно делать почти real-time мониторинг без написания ни строчки кода.

watch есть в procps-ng, стоит практически везде из коробки. На macOS ставится через brew install watch.

Простая команда, но когда знаешь о ней — перестаёшь писать дурацкие циклы в bash ради банального мониторинга 🖥️

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

Вы знаете про Ctrl+R — поиск по истории команд. Но большинство людей используют его неправильно: нажал, начал вводить, получил одну команду, вышел. Всё.

А теперь настоящий трюк.

Установите fzf — это fuzzy finder для командной строки. После установки он перехватывает Ctrl+R и превращает поиск по истории в интерактивный список с нечётким поиском.

Например, помните что запускали что-то с docker compose и каким-то длинным флагом — но не помните точно что. Жмёте Ctrl+R, вводите "dock comp", и fzf мгновенно показывает все подходящие команды из истории. Стрелками выбираете нужную, Enter — и она уже в строке ввода.

Установка на Ubuntu/Debian:

sudo apt install fzf

На macOS:

brew install fzf

После установки нужно подключить интеграцию с шеллом. Для bash и zsh:

$(brew --prefix)/opt/fzf/install

или на Linux:

/usr/share/doc/fzf/examples/key-bindings.bash

Добавьте source этого файла в .bashrc или .zshrc.

Но это ещё не всё. fzf работает не только с историей команд. Нажмите Ctrl+T в терминале — получите интерактивный поиск файлов прямо во время набора команды. Пишете vim, жмёте Ctrl+T, находите файл — путь вставляется автоматически.

А команда **cd + Alt+C** открывает интерактивный выбор директории для перехода.

Ещё один момент: по умолчанию история bash хранит 500 команд. Это смешно. Добавьте в .bashrc:

HISTSIZE=100000
HISTFILESIZE=200000
HISTCONTROL=ignoredups:erasedups

Теперь история не будет дублировать одинаковые команды и будет хранить реально много записей. В связке с fzf это становится вашей персональной базой знаний по командам, которые вы уже запускали.

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

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

В bash и zsh есть встроенная замена подстрок прямо в переменных — без sed, без awk, без лишних процессов.

Допустим, у тебя есть строка:

file="hello_world_2024.log"

Хочешь заменить первое вхождение подстроки:

echo "${file/world/linux}"
→ hello_linux_2024.log

Хочешь заменить все вхождения — добавляешь второй слэш:

text="aaa bbb aaa"
echo "${text//aaa/xxx}"
→ xxx bbb xxx

Это работает в bash и zsh без вызова внешних утилит. Быстро, чисто, и никакого fork().

Но это ещё не всё.

Можно удалить подстроку, просто не указывая замену:

echo "${file/2024/}"
→ hello_world_.log

Можно работать с началом и концом строки. Одна решётка — удалить минимальный префикс, две — максимальный:

path="/usr/local/bin/bash"
echo "${path#*/}" → usr/local/bin/bash
echo "${path##*/}" → bash

Процент работает так же, но с конца:

echo "${path%/*}" → /usr/local/bin
echo "${path%%/*}" → (пусто, срезало всё)

Это активно используют в скриптах для работы с путями и расширениями файлов — без dirname и basename:

file="archive.tar.gz"
echo "${file%%.*}" → archive
echo "${file##*.}" → gz

Ещё один трюк — изменение регистра (zsh и bash 4+):

str="hello world"
echo "${str^^}" → HELLO WORLD
echo "${str,,}" → hello world

А вот для первой буквы:

echo "${str^}" → Hello world

Это всё POSIX-расширения parameter expansion — встроены в сам шелл, документированы в man bash в разделе Parameter Expansion. Большинство людей знают про ${var:-default} и на этом останавливаются.

Почему это важно? В скриптах каждый вызов sed или awk — это отдельный процесс. Если ты в цикле обрабатываешь тысячи строк, разница в скорости будет ощутимой. Встроенные операции работают в памяти без форка.

Сохрани себе, пригодится при следующем скрипте 🐚

📍 Подпишись на создателей: https://t.me/linuxexex
Ставим веб-сервер на пяти дистрибутивах — смотрим, кто удобнее

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

Ubuntu 24.04
apt install nginx, systemctl enable --now nginx — и всё. Nginx уже в репозитории свежий, firewall не мешает (ufw по умолчанию выключен), браузер открывает страницу сразу. Для новичка — идеально. Для сервера — тоже норм, пока не нужен тонкий контроль.

Debian 12
Почти то же самое, но nginx в stable чуть старше. Зато система минималистичная: ставишь ровно то, что просил, ничего лишнего. AppArmor присутствует, но не мешает базовой установке. Предсказуемость и стабильность — главные козыри.

Fedora 40
dnf install nginx, потом systemctl enable --now nginx — и тут сюрприз. firewalld работает по умолчанию и 80 порт закрыт. Нужно явно открыть: firewall-cmd --permanent --add-service=http && firewall-cmd --reload. Новичок споткнётся, опытный оценит, что безопасность из коробки серьёзнее. Nginx здесь самый свежий из всех пяти.

AlmaLinux 9
Это RHEL-клон для тех, кто хочет «как на продакшене в энтерпрайзе». nginx надо сначала включить модуль или добавить репозиторий, потому что в базовом реп он постарше. SELinux включён и работает — если положить конфиг в нестандартное место, nginx тихо упадёт и будет смотреть на тебя с укором. Надо разбираться с контекстами. Зато потом понимаешь, почему крупные компании это любят.

Arch Linux
pacman -S nginx, systemctl enable --now nginx — пакет свежайший. Никакого лишнего слоя абстракции. Но Arch не держит тебя за руку: нет автонастройки firewall, нет подсказок, документация — это вики, и она реально хорошая. Зато полный контроль над каждым шагом. Если хочешь понять, как оно работает изнутри — лучший вариант для обучения.

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

Быстрее всего взлетело на Ubuntu — ноль сюрпризов.
Самый свежий пакет — Arch и Fedora.
Самый высокий порог входа из-за безопасности — AlmaLinux с SELinux.
Самый предсказуемый и тихий — Debian.
Лучший для понимания происходящего — Arch.

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

Под какие задачи ты выбираешь дистрибутив? 👇

📍 Подпишись на создателей: https://t.me/linuxexex
📰 Хронические финансовые проблемы связаны с ускоренным старением мозга

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

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

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

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

Источник (r/science): https://www.reddit.com/r/science/comments/1v72m2a/persistent_money_struggles_linked_to_faster_brain/

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