Ubuntu vs Debian на сервере
Если нужен сервер «поставил и забыл», Debian часто выигрывает стабильностью и предсказуемостью. Пакеты обновляются спокойнее, сюрпризов меньше.
Ubuntu удобнее, когда нужны более свежие версии, много готовых гайдов и поддержка популярных облачных образов.
Коротко:
Debian — консервативно, стабильно, чисто.
Ubuntu — практично, популярно, много документации.
Для продакшена важнее не логотип дистрибутива, а понятные обновления, бэкапы и мониторинг.
Подпишись на создателей: https://t.me/linuxexex
Если нужен сервер «поставил и забыл», Debian часто выигрывает стабильностью и предсказуемостью. Пакеты обновляются спокойнее, сюрпризов меньше.
Ubuntu удобнее, когда нужны более свежие версии, много готовых гайдов и поддержка популярных облачных образов.
Коротко:
Debian — консервативно, стабильно, чисто.
Ubuntu — практично, популярно, много документации.
Для продакшена важнее не логотип дистрибутива, а понятные обновления, бэкапы и мониторинг.
Подпишись на создателей: https://t.me/linuxexex
NEURAL BRAIN: Команда ss вместо netstat
Если нужно быстро понять, какие порты слушает сервер, попробуй:
ss -tulpen
Она показывает TCP/UDP-сокеты, процессы, PID и порты. В отличие от старого netstat, ss обычно уже есть в современных дистрибутивах и работает быстрее на нагруженных системах.
Мини-шпаргалка:
ss -ltnp — слушающие TCP-порты
ss -uan — UDP-соединения
ss -s — короткая статистика по сокетам
Полезно для диагностики: когда сервис «запущен», но порт почему-то не отвечает.
Подпишись на создателей: https://t.me/linuxexex
Если нужно быстро понять, какие порты слушает сервер, попробуй:
ss -tulpen
Она показывает TCP/UDP-сокеты, процессы, PID и порты. В отличие от старого netstat, ss обычно уже есть в современных дистрибутивах и работает быстрее на нагруженных системах.
Мини-шпаргалка:
ss -ltnp — слушающие TCP-порты
ss -uan — UDP-соединения
ss -s — короткая статистика по сокетам
Полезно для диагностики: когда сервис «запущен», но порт почему-то не отвечает.
Подпишись на создателей: https://t.me/linuxexex
Единственный тред по СИ clang
Тред для всех кто хочет погрузиться в низкоуровневое и системное программирование дедушки си
Обсуждаем чужие гитхабы, коды, программирование микроконтроллеров.
сам учился на степике, всем советую прочитать книгу Брайана Кернигана и Денниса Ритчи «Язык программирования Си»
ЗАДАВАЙТЕ ВОПРОСЫ И ПОЛУЧАЙТЕ ОТВЕТЫ!
Источник (2ch /pr/): https://2ch.org/pr/res/3619616.html
Подпишись на создателей: https://t.me/linuxexex
Тред для всех кто хочет погрузиться в низкоуровневое и системное программирование дедушки си
Обсуждаем чужие гитхабы, коды, программирование микроконтроллеров.
сам учился на степике, всем советую прочитать книгу Брайана Кернигана и Денниса Ритчи «Язык программирования Си»
ЗАДАВАЙТЕ ВОПРОСЫ И ПОЛУЧАЙТЕ ОТВЕТЫ!
Источник (2ch /pr/): https://2ch.org/pr/res/3619616.html
Подпишись на создателей: https://t.me/linuxexex
Двач
/Программирование/ - Единственный тред по СИ clang
Совет по безопасности для линуксоида, который не хочет однажды обнаружить, что его сервер майнит крипту для дяди из интернета.
Первое и самое банальное, которое всё равно игнорируют — не сиди под рутом. Никогда. Вообще. Создай обычного пользователя и работай через него. sudo придумали не просто так, а чтобы ты хотя бы осознанно делал что-то деструктивное, а не случайно.
Второе — SSH. Если у тебя на сервере открыт 22 порт с парольной аутентификацией, можешь считать, что повесил объявление "взломайте меня, пожалуйста". Переходи на ключи, меняй порт на нестандартный, ставь fail2ban. В /etc/ssh/sshd_config пропиши PasswordAuthentication no и PermitRootLogin no. Это пять минут работы, но спасёт от тонны брутфорса.
Третье — firewall. ufw или iptables, не важно. Главное закрой всё что не используешь. Базовая схема: запрети всё входящее по умолчанию, разреши только то, что реально нужно. ufw default deny incoming, ufw allow ssh, ufw enable. Готово. Не надо быть параноиком, достаточно не быть идиотом.
Четвёртое — обновления. "Обновлю потом" — это путь в ад. В репозиториях регулярно закрывают дыры, а если ты сидишь на пакетах годичной давности, ты открытый склад уязвимостей. Поставь unattended-upgrades или хотя бы раз в неделю запускай apt upgrade вручную. На RPM-системах — dnf upgrade. Это не сложно.
Пятое — аудит того, что вообще слушает сеть. ss -tulnp или netstat -tulnp. Посмотри список. Часто обнаруживается, что какой-то сервис висит на 0.0.0.0 и светит наружу без всякой необходимости. Если не знаешь зачем оно там — отключи.
Шестое — логи читать не западло. /var/log/auth.log или journalctl -u ssh покажут, кто и как пытается к тебе лезть. Это полезная информация, а не мусор.
Бонус для параноиков: поставь auditd, настрой SELinux или AppArmor, используй rkhunter для проверки на руткиты. Это уже уровень выше, но если у тебя на сервере что-то важное — оно того стоит.
Безопасность это не разовая акция, это привычка. Потрать час сейчас или потрать неделю потом, восстанавливая систему и объясняя клиентам, куда делись их данные.
Подпишись на создателей: https://t.me/linuxexex
Первое и самое банальное, которое всё равно игнорируют — не сиди под рутом. Никогда. Вообще. Создай обычного пользователя и работай через него. sudo придумали не просто так, а чтобы ты хотя бы осознанно делал что-то деструктивное, а не случайно.
Второе — SSH. Если у тебя на сервере открыт 22 порт с парольной аутентификацией, можешь считать, что повесил объявление "взломайте меня, пожалуйста". Переходи на ключи, меняй порт на нестандартный, ставь fail2ban. В /etc/ssh/sshd_config пропиши PasswordAuthentication no и PermitRootLogin no. Это пять минут работы, но спасёт от тонны брутфорса.
Третье — firewall. ufw или iptables, не важно. Главное закрой всё что не используешь. Базовая схема: запрети всё входящее по умолчанию, разреши только то, что реально нужно. ufw default deny incoming, ufw allow ssh, ufw enable. Готово. Не надо быть параноиком, достаточно не быть идиотом.
Четвёртое — обновления. "Обновлю потом" — это путь в ад. В репозиториях регулярно закрывают дыры, а если ты сидишь на пакетах годичной давности, ты открытый склад уязвимостей. Поставь unattended-upgrades или хотя бы раз в неделю запускай apt upgrade вручную. На RPM-системах — dnf upgrade. Это не сложно.
Пятое — аудит того, что вообще слушает сеть. ss -tulnp или netstat -tulnp. Посмотри список. Часто обнаруживается, что какой-то сервис висит на 0.0.0.0 и светит наружу без всякой необходимости. Если не знаешь зачем оно там — отключи.
Шестое — логи читать не западло. /var/log/auth.log или journalctl -u ssh покажут, кто и как пытается к тебе лезть. Это полезная информация, а не мусор.
Бонус для параноиков: поставь auditd, настрой SELinux или AppArmor, используй rkhunter для проверки на руткиты. Это уже уровень выше, но если у тебя на сервере что-то важное — оно того стоит.
Безопасность это не разовая акция, это привычка. Потрать час сейчас или потрать неделю потом, восстанавливая систему и объясняя клиентам, куда делись их данные.
Подпишись на создателей: https://t.me/linuxexex
CTRL+R все знают. А вот что мало кто юзает — это параметр HISTTIMEFORMAT и связка с fc.
Начнём с простого. Если ты хочешь видеть дату и время каждой команды в истории, добавь в ~/.bashrc одну строку:
HISTTIMEFORMAT="%d.%m.%Y %H:%M:%S "
После этого history покажет не просто список команд, а когда именно ты их запускал. Удобно, когда надо выяснить, в какой момент ты всё сломал.
Теперь про fc. Это встроенная команда bash и zsh, которую игнорирует большинство людей, а зря.
fc без аргументов открывает последнюю команду в редакторе (vim, nano, что там у тебя в EDITOR). Исправил — сохранил — она сразу выполнилась. Не надо лезть в стрелку вверх и ковыряться в конце длинной строки.
fc -l выводит последние 16 команд с номерами.
fc -l 50 80 покажет команды с 50 по 80.
fc 42 откроет команду номер 42 в редакторе.
fc -s old=new перезапустит последнюю команду, заменив подстроку. Например, fc -s foo=bar запустит предыдущую команду, но вместо foo подставит bar. Быстрее, чем руками лезть в историю.
Ещё один трюк, который реально экономит время — HISTIGNORE. Добавь в.bashrc:
HISTIGNORE="ls:ll:cd:pwd:clear:exit"
Теперь эти команды вообще не пишутся в историю. История перестаёт быть помойкой из тысяч ls и cd.
В zsh всё это работает похоже, но там ещё есть setopt HIST_IGNORE_ALL_DUPS — убирает дубликаты не только подряд идущие, а вообще все. И setopt SHARE_HISTORY — история синхронизируется между всеми открытыми терминалами в реальном времени, а не только при закрытии сессии.
Итого: fc, HISTTIMEFORMAT, HISTIGNORE и пара setopt в zsh — и твоя история перестаёт быть бесполезным мусором и начинает реально работать.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Начнём с простого. Если ты хочешь видеть дату и время каждой команды в истории, добавь в ~/.bashrc одну строку:
HISTTIMEFORMAT="%d.%m.%Y %H:%M:%S "
После этого history покажет не просто список команд, а когда именно ты их запускал. Удобно, когда надо выяснить, в какой момент ты всё сломал.
Теперь про fc. Это встроенная команда bash и zsh, которую игнорирует большинство людей, а зря.
fc без аргументов открывает последнюю команду в редакторе (vim, nano, что там у тебя в EDITOR). Исправил — сохранил — она сразу выполнилась. Не надо лезть в стрелку вверх и ковыряться в конце длинной строки.
fc -l выводит последние 16 команд с номерами.
fc -l 50 80 покажет команды с 50 по 80.
fc 42 откроет команду номер 42 в редакторе.
fc -s old=new перезапустит последнюю команду, заменив подстроку. Например, fc -s foo=bar запустит предыдущую команду, но вместо foo подставит bar. Быстрее, чем руками лезть в историю.
Ещё один трюк, который реально экономит время — HISTIGNORE. Добавь в.bashrc:
HISTIGNORE="ls:ll:cd:pwd:clear:exit"
Теперь эти команды вообще не пишутся в историю. История перестаёт быть помойкой из тысяч ls и cd.
В zsh всё это работает похоже, но там ещё есть setopt HIST_IGNORE_ALL_DUPS — убирает дубликаты не только подряд идущие, а вообще все. И setopt SHARE_HISTORY — история синхронизируется между всеми открытыми терминалами в реальном времени, а не только при закрытии сессии.
Итого: fc, HISTTIMEFORMAT, HISTIGNORE и пара setopt в zsh — и твоя история перестаёт быть бесполезным мусором и начинает реально работать.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Команда watch
Большинство людей не знают про неё вообще, хотя она встроена почти в каждый дистрибутив и реально экономит время.
watch запускает любую другую команду с заданным интервалом и показывает её вывод в терминале, обновляя его на месте. Никаких скриптов, никакого while true с sleep — просто одна строка.
Базовое использование:
watch df -h
Теперь у тебя мониторинг диска в реальном времени прямо в терминале. По умолчанию обновление каждые 2 секунды.
Хочешь раз в секунду:
watch -n 1 free -m
Смотришь за памятью и не дёргаешь руками Enter снова и снова.
Полезная опция -d (differences) — подсвечивает то, что изменилось с прошлого обновления. Очень удобно, когда следишь за логами, очередями, нагрузкой:
watch -d -n 2 cat /proc/loadavg
Можно комбинировать с grep, pipe и чем угодно, просто берёшь команду в кавычки:
watch -n 5 'ps aux | grep python | grep -v grep'
Отслеживаешь, живёт ли твой процесс, без лишних телодвижений.
Или классика — смотришь как растёт лог-файл:
watch -n 1 'wc -l /var/log/syslog'
Полезные флаги:
-n секунды — интервал обновления
-d — подсветка изменений
-t — убрать шапку с временем и названием команды (чисто для скриптов или красивого вывода)
-e — остановить при ненулевом коде возврата команды
Выйти из watch — просто Ctrl+C.
Кажется мелочью, но когда ты в третий раз за минуту жмёшь стрелку вверх и Enter чтобы посмотреть на тот же вывод — вспомни про watch. Одна команда и больше не надо.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Большинство людей не знают про неё вообще, хотя она встроена почти в каждый дистрибутив и реально экономит время.
watch запускает любую другую команду с заданным интервалом и показывает её вывод в терминале, обновляя его на месте. Никаких скриптов, никакого while true с sleep — просто одна строка.
Базовое использование:
watch df -h
Теперь у тебя мониторинг диска в реальном времени прямо в терминале. По умолчанию обновление каждые 2 секунды.
Хочешь раз в секунду:
watch -n 1 free -m
Смотришь за памятью и не дёргаешь руками Enter снова и снова.
Полезная опция -d (differences) — подсвечивает то, что изменилось с прошлого обновления. Очень удобно, когда следишь за логами, очередями, нагрузкой:
watch -d -n 2 cat /proc/loadavg
Можно комбинировать с grep, pipe и чем угодно, просто берёшь команду в кавычки:
watch -n 5 'ps aux | grep python | grep -v grep'
Отслеживаешь, живёт ли твой процесс, без лишних телодвижений.
Или классика — смотришь как растёт лог-файл:
watch -n 1 'wc -l /var/log/syslog'
Полезные флаги:
-n секунды — интервал обновления
-d — подсветка изменений
-t — убрать шапку с временем и названием команды (чисто для скриптов или красивого вывода)
-e — остановить при ненулевом коде возврата команды
Выйти из watch — просто Ctrl+C.
Кажется мелочью, но когда ты в третий раз за минуту жмёшь стрелку вверх и Enter чтобы посмотреть на тот же вывод — вспомни про watch. Одна команда и больше не надо.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Мало кто знает, что ядро Linux однажды чуть не убили юристы.
В начале 2000-х компания SCO Group заявила, что владеет правами на Unix и что код из их системы был незаконно скопирован в Linux. Они начали судиться с IBM, Novell и даже отдельными корпоративными пользователями Linux, требуя лицензионные выплаты за использование якобы украденного кода.
SCO оценила свои претензии в миллиарды долларов. Некоторые крупные компании реально начали нервничать и рассматривали переход обратно на проприетарные системы. Линус Торвальдс публично назвал всё это мусором и сказал примерно следующее: покажите хоть строчку украденного кода.
Показать не смогли.
Novell выиграла ключевой судебный спор, доказав, что именно они, а не SCO, владеют правами на Unix. Потом выяснилось, что за атакой на Linux стояли деньги Microsoft, которая вложилась в SCO через запутанные схемы. Не напрямую, но следы нашли.
SCO обанкротилась в 2007 году. Судебные тяжбы тянулись ещё годами, но Linux к тому моменту уже выиграл де-факто. Сегодня он крутится на большинстве серверов, смартфонов и суперкомпьютеров в мире.
Так что Linux убить пытались не только техническими аргументами, но и юридическими. Не вышло ни так ни эдак.
Подпишись на создателей: https://t.me/linuxexex
В начале 2000-х компания SCO Group заявила, что владеет правами на Unix и что код из их системы был незаконно скопирован в Linux. Они начали судиться с IBM, Novell и даже отдельными корпоративными пользователями Linux, требуя лицензионные выплаты за использование якобы украденного кода.
SCO оценила свои претензии в миллиарды долларов. Некоторые крупные компании реально начали нервничать и рассматривали переход обратно на проприетарные системы. Линус Торвальдс публично назвал всё это мусором и сказал примерно следующее: покажите хоть строчку украденного кода.
Показать не смогли.
Novell выиграла ключевой судебный спор, доказав, что именно они, а не SCO, владеют правами на Unix. Потом выяснилось, что за атакой на Linux стояли деньги Microsoft, которая вложилась в SCO через запутанные схемы. Не напрямую, но следы нашли.
SCO обанкротилась в 2007 году. Судебные тяжбы тянулись ещё годами, но Linux к тому моменту уже выиграл де-факто. Сегодня он крутится на большинстве серверов, смартфонов и суперкомпьютеров в мире.
Так что Linux убить пытались не только техническими аргументами, но и юридическими. Не вышло ни так ни эдак.
Подпишись на создателей: https://t.me/linuxexex
Марсоход NASA нашёл минерал, из которого растут рубины и сапфиры — прямо в марсианских породах
Perseverance провёл анализ горных пород и обнаружил корунд с хромом — это первое доказательство существования минерала, из которого образуются драгоценные камни, на Марсе. Никто этого не ожидал.
Корунд — это оксид алюминия. В чистом виде он бесцветный, но стоит добавить примеси — и получаются самоцветы. Хром даёт красный цвет, то есть рубин. Железо и титан — синий, то есть сапфир. На Земле такие камни формируются при высоких температурах и давлении в определённых геологических условиях.
То, что Perseverance нашёл хромсодержащий корунд в марсианских породах, говорит о том, что в прошлом на Марсе существовали похожие геологические процессы. Это не значит, что там лежат россыпи рубинов — речь идёт о минерале-предшественнике, о самом корунде, а не о готовых ювелирных камнях.
Находка сделана в кратере Езеро, где марсоход работает с 2021 года. Это первое подтверждение корунда на Марсе вообще — ни один из предыдущих аппаратов его не фиксировал.
linux.exe | @linuxexe_bot
Источник (r/science): https://www.reddit.com/r/science/comments/1vnbw2e/nasa_rover_unexpectedly_finds_ruby_and/
Подпишись на создателей: https://t.me/linuxexex
Perseverance провёл анализ горных пород и обнаружил корунд с хромом — это первое доказательство существования минерала, из которого образуются драгоценные камни, на Марсе. Никто этого не ожидал.
Корунд — это оксид алюминия. В чистом виде он бесцветный, но стоит добавить примеси — и получаются самоцветы. Хром даёт красный цвет, то есть рубин. Железо и титан — синий, то есть сапфир. На Земле такие камни формируются при высоких температурах и давлении в определённых геологических условиях.
То, что Perseverance нашёл хромсодержащий корунд в марсианских породах, говорит о том, что в прошлом на Марсе существовали похожие геологические процессы. Это не значит, что там лежат россыпи рубинов — речь идёт о минерале-предшественнике, о самом корунде, а не о готовых ювелирных камнях.
Находка сделана в кратере Езеро, где марсоход работает с 2021 года. Это первое подтверждение корунда на Марсе вообще — ни один из предыдущих аппаратов его не фиксировал.
linux.exe | @linuxexe_bot
Источник (r/science): https://www.reddit.com/r/science/comments/1vnbw2e/nasa_rover_unexpectedly_finds_ruby_and/
Подпишись на создателей: https://t.me/linuxexex
Reddit
From the science community on Reddit: NASA rover unexpectedly finds ruby- and sapphire-forming mineral in Martian rocks. Analysis…
Explore this post and more from the science community
Факт дня: как Линус Торвальдс случайно назвал Linux "Linux"
В 1991 году Линус хотел назвать свою операционную систему Freax. Серьезно. Freax. От слов free, freak и unix. Он даже создал файл с таким именем на FTP-сервере, куда загружал ранние версии ядра.
Но у Ари Лемке, администратора того самого FTP-сервера Хельсинкского университета, было другое мнение. Он без спроса переименовал директорию из "freax" в "linux" — потому что это звучало разумнее и уже было именем домашней директории Торвальдса на сервере.
Линус поворчал, но оставил. Так и прижилось.
Представьте альтернативную вселенную: Freax kernel, FreaxMint, Freax Foundation, "я использую Freax, кстати". Звучит как название панк-группы или дешевого энергетика.
Хорошо, что Ари тогда проявил самодеятельность. Бюрократы иногда полезны.
Подпишись на создателей: https://t.me/linuxexex
В 1991 году Линус хотел назвать свою операционную систему Freax. Серьезно. Freax. От слов free, freak и unix. Он даже создал файл с таким именем на FTP-сервере, куда загружал ранние версии ядра.
Но у Ари Лемке, администратора того самого FTP-сервера Хельсинкского университета, было другое мнение. Он без спроса переименовал директорию из "freax" в "linux" — потому что это звучало разумнее и уже было именем домашней директории Торвальдса на сервере.
Линус поворчал, но оставил. Так и прижилось.
Представьте альтернативную вселенную: Freax kernel, FreaxMint, Freax Foundation, "я использую Freax, кстати". Звучит как название панк-группы или дешевого энергетика.
Хорошо, что Ари тогда проявил самодеятельность. Бюрократы иногда полезны.
Подпишись на создателей: https://t.me/linuxexex
В России создали свой лазер для топологических норм 65 нм. ASML больше не нужен
В России произведены опытные образцы эксимерного лазера для топологических норм 65 нм и меньше
Эксимерный лазер — важный компонент фотолитографических установок, использующихся при изготовлении микроэлектроники с нормами проектирования от 65 нм. Россия, где этот тип лазера был впервые изобретен еще в советское время (в 1970 году), до сих пор не имела его собственного серийного производства. Ситуация меняется: наши опытные образцы уже созданы в 2026 году. Россия становится третьим в мире обладателем собственной технологии.
В августе 2026 года на предприятии группы компаний «Лассард» были произведены первые опытные образцы эксимерного лазера — устройства, без которого невозможно изготовление современной микроэлектроники с проектными нормами от 65 нанометров и меньше.
До этого момента лазеры для литографических установок в России никогда не выпускались, и вся страна полностью зависела от импорта этого критически важного компонента. На сегодняшний день в мире серийным выпуском таких лазеров занимаются всего лишь две компании — японская GigaPhoton и американская Cymer, которая входит в структуру нидерландского гиганта ASML. Согласно данным аналитического отчета IndexBox за июль 2026 года, Cymer и GigaPhoton совместно контролируют до 90% мирового рынка высокомощных ArF-иммерсионных лазерных систем для передовых производств. Эта олигополия создает практически непреодолимые барьеры для выхода на рынок новых производителей.
Обсуждать коммерческие контракты на поставку литографов с Зеленоградским нанотехнологическим центром можно будет с 2027 года. Стоимость одной установки оценивается в 542,2 миллиона рублей, при этом совокупная потребность российского рынка оценивается в 15-25 таких установок в ближайшие пять-семь лет.
https://sdelanounas.ru/blogs/177641/ https://sdelanounas.ru/blogs/177641/
Источник (2ch /news/): https://2ch.org/news/res/19730460.html
Подпишись на создателей: https://t.me/linuxexex
В России произведены опытные образцы эксимерного лазера для топологических норм 65 нм и меньше
Эксимерный лазер — важный компонент фотолитографических установок, использующихся при изготовлении микроэлектроники с нормами проектирования от 65 нм. Россия, где этот тип лазера был впервые изобретен еще в советское время (в 1970 году), до сих пор не имела его собственного серийного производства. Ситуация меняется: наши опытные образцы уже созданы в 2026 году. Россия становится третьим в мире обладателем собственной технологии.
В августе 2026 года на предприятии группы компаний «Лассард» были произведены первые опытные образцы эксимерного лазера — устройства, без которого невозможно изготовление современной микроэлектроники с проектными нормами от 65 нанометров и меньше.
До этого момента лазеры для литографических установок в России никогда не выпускались, и вся страна полностью зависела от импорта этого критически важного компонента. На сегодняшний день в мире серийным выпуском таких лазеров занимаются всего лишь две компании — японская GigaPhoton и американская Cymer, которая входит в структуру нидерландского гиганта ASML. Согласно данным аналитического отчета IndexBox за июль 2026 года, Cymer и GigaPhoton совместно контролируют до 90% мирового рынка высокомощных ArF-иммерсионных лазерных систем для передовых производств. Эта олигополия создает практически непреодолимые барьеры для выхода на рынок новых производителей.
Обсуждать коммерческие контракты на поставку литографов с Зеленоградским нанотехнологическим центром можно будет с 2027 года. Стоимость одной установки оценивается в 542,2 миллиона рублей, при этом совокупная потребность российского рынка оценивается в 15-25 таких установок в ближайшие пять-семь лет.
https://sdelanounas.ru/blogs/177641/ https://sdelanounas.ru/blogs/177641/
Источник (2ch /news/): https://2ch.org/news/res/19730460.html
Подпишись на создателей: https://t.me/linuxexex
Сделано у нас
В России произведены опытные образцы эксимерного лазера для топологических норм 65 нм и меньше в блоге Перспективные разработки…
Эксимерный лазер важный компонент фотолитографических установок использующихся при изготовлении микроэлектроники с нормами проектирования от 65 нм Россия где этот
tldr: инструмент называется jq, и если ты работаешь с JSON и до сих пор его не знаешь — ты просто теряешь время.
Что такое jq
Это консольный процессор JSON. Стоит в одном ряду с grep, sed и awk, только заточен под работу с JSON-данными. Установка одной командой на любой системе, никаких зависимостей, никакого питона, никаких node-скриптов.
Зачем он нужен
Представь: дёргаешь API, получаешь в ответ здоровенный JSON на 300 строк. Открывать браузер лень, писать скрипт — долго. jq режет этот JSON как хочешь прямо в терминале.
Примеры живые, не высосанные из пальца:
Достать одно поле из ответа curl:
curl -s https://api.example.com/users/1 | jq '.name'
Получить массив и пройтись по каждому элементу:
cat data.json | jq '.users[] |.email'
Отфильтровать только активных пользователей:
cat data.json | jq '[.users[] | select(.active == true)]'
Переименовать ключи на лету и построить новый объект:
cat data.json | jq '.users[] | {login:.username, mail:.email}'
Красиво распечатать страшный минифицированный JSON:
echo '{"a":1,"b":2}' | jq '.'
Всё это без единого питон-скрипта, без установки библиотек, прямо в терминале за секунды.
Где реально спасает
Дебаг API — когда надо быстро посмотреть, что вернул сервер, и найти нужное поле среди мусора.
CI/CD пайплайны — парсить JSON-ответы от GitHub Actions, GitLab, Docker Registry, всяких облачных API.
Скрипты на bash — jq встраивается в любой шелл-скрипт и вытаскивает значения без боли.
Работа с конфигами — многие современные инструменты хранят состояние в JSON, и jq позволяет читать и модифицировать его на лету.
Как поставить
Debian/Ubuntu: apt install jq
Fedora/RHEL: dnf install jq
Arch: pacman -S jq
macOS: brew install jq
Windows: winget install jqlang.jq
Важный момент
У jq свой язык запросов. Он несложный, но надо потратить час, чтобы разобраться в базовых конструкциях. Официальная документация на jqlang.github.io написана нормально, там есть встроенный плейграунд прямо в браузере — можно щупать без установки.
Итог
Если ты пишешь бэкенд, гоняешь запросы к API, пишешь скрипты деплоя или просто часто видишь JSON в терминале — jq это инструмент, который окупает время на изучение за первые же полчаса реальной работы. Один из тех редких случаев, когда инструмент делает ровно то, что обещает, без лишнего шума.
linux.exe | @linuxexe_bot
Подпишись на создателей: https://t.me/linuxexex
Что такое jq
Это консольный процессор JSON. Стоит в одном ряду с grep, sed и awk, только заточен под работу с JSON-данными. Установка одной командой на любой системе, никаких зависимостей, никакого питона, никаких node-скриптов.
Зачем он нужен
Представь: дёргаешь API, получаешь в ответ здоровенный JSON на 300 строк. Открывать браузер лень, писать скрипт — долго. jq режет этот JSON как хочешь прямо в терминале.
Примеры живые, не высосанные из пальца:
Достать одно поле из ответа curl:
curl -s https://api.example.com/users/1 | jq '.name'
Получить массив и пройтись по каждому элементу:
cat data.json | jq '.users[] |.email'
Отфильтровать только активных пользователей:
cat data.json | jq '[.users[] | select(.active == true)]'
Переименовать ключи на лету и построить новый объект:
cat data.json | jq '.users[] | {login:.username, mail:.email}'
Красиво распечатать страшный минифицированный JSON:
echo '{"a":1,"b":2}' | jq '.'
Всё это без единого питон-скрипта, без установки библиотек, прямо в терминале за секунды.
Где реально спасает
Дебаг API — когда надо быстро посмотреть, что вернул сервер, и найти нужное поле среди мусора.
CI/CD пайплайны — парсить JSON-ответы от GitHub Actions, GitLab, Docker Registry, всяких облачных API.
Скрипты на bash — jq встраивается в любой шелл-скрипт и вытаскивает значения без боли.
Работа с конфигами — многие современные инструменты хранят состояние в JSON, и jq позволяет читать и модифицировать его на лету.
Как поставить
Debian/Ubuntu: apt install jq
Fedora/RHEL: dnf install jq
Arch: pacman -S jq
macOS: brew install jq
Windows: winget install jqlang.jq
Важный момент
У jq свой язык запросов. Он несложный, но надо потратить час, чтобы разобраться в базовых конструкциях. Официальная документация на jqlang.github.io написана нормально, там есть встроенный плейграунд прямо в браузере — можно щупать без установки.
Итог
Если ты пишешь бэкенд, гоняешь запросы к API, пишешь скрипты деплоя или просто часто видишь JSON в терминале — jq это инструмент, который окупает время на изучение за первые же полчаса реальной работы. Один из тех редких случаев, когда инструмент делает ровно то, что обещает, без лишнего шума.
linux.exe | @linuxexe_bot
Подпишись на создателей: https://t.me/linuxexex
Совет по безопасности для линуксоида, который не хочет однажды проснуться с угнанным сервером.
Про sudo и почему ты делаешь это неправильно
Большинство людей настраивают sudo один раз при установке системы и забывают про него навсегда. Потом удивляются, откуда дыры.
Первое. Никогда не давай NOPASSWD на все команды. Видишь в sudoers строку вида "username ALL=(ALL) NOPASSWD: ALL" — это не удобство, это дырка размером с амбарные ворота. Если процесс или скрипт под твоим пользователем скомпрометирован, атакующий получает рута без единого пароля. Если уж нужен NOPASSWD, прописывай конкретные команды, которые реально нужны.
Второе. Проверяй, кто вообще в группе sudo или wheel. Делается элементарно:
getent group sudo
getent group wheel
Бывает, после установки какого-нибудь софта или при добавлении пользователя для деплоя туда случайно попадает лишний аккаунт. Проверяй периодически.
Третье. Включи логирование sudo-сессий. В sudoers добавь:
Defaults log_output
Defaults!/usr/bin/sudoreplay!log_output
Теперь все команды, выполненные через sudo, пишутся в лог. Потом можно посмотреть через sudoreplay, что там вообще творилось. Особенно полезно, если сервером пользуется не один ты.
Четвёртое. Ограничь время жизни sudo-токена. По умолчанию он живёт 15 минут. Можно поставить меньше или вообще в ноль, тогда пароль будет спрашиваться каждый раз:
Defaults timestamp_timeout=0
Неудобно? Да. Безопасно? Да.
Пятое. Проверяй файлы в /etc/sudoers.d/. Многие пакеты при установке кладут туда свои правила, и часть из них мягко говоря щедрая. После установки любого серьёзного софта загляни туда и посмотри, что за правила добавились.
И самое главное — sudo -l показывает, что именно текущий пользователь может делать через sudo. Запускай это под каждым сервисным аккаунтом, который есть на машине. Иногда результат неприятно удивляет.
Безопасность — это не параноя, это гигиена. Настроил один раз нормально и спишь спокойно.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Про sudo и почему ты делаешь это неправильно
Большинство людей настраивают sudo один раз при установке системы и забывают про него навсегда. Потом удивляются, откуда дыры.
Первое. Никогда не давай NOPASSWD на все команды. Видишь в sudoers строку вида "username ALL=(ALL) NOPASSWD: ALL" — это не удобство, это дырка размером с амбарные ворота. Если процесс или скрипт под твоим пользователем скомпрометирован, атакующий получает рута без единого пароля. Если уж нужен NOPASSWD, прописывай конкретные команды, которые реально нужны.
Второе. Проверяй, кто вообще в группе sudo или wheel. Делается элементарно:
getent group sudo
getent group wheel
Бывает, после установки какого-нибудь софта или при добавлении пользователя для деплоя туда случайно попадает лишний аккаунт. Проверяй периодически.
Третье. Включи логирование sudo-сессий. В sudoers добавь:
Defaults log_output
Defaults!/usr/bin/sudoreplay!log_output
Теперь все команды, выполненные через sudo, пишутся в лог. Потом можно посмотреть через sudoreplay, что там вообще творилось. Особенно полезно, если сервером пользуется не один ты.
Четвёртое. Ограничь время жизни sudo-токена. По умолчанию он живёт 15 минут. Можно поставить меньше или вообще в ноль, тогда пароль будет спрашиваться каждый раз:
Defaults timestamp_timeout=0
Неудобно? Да. Безопасно? Да.
Пятое. Проверяй файлы в /etc/sudoers.d/. Многие пакеты при установке кладут туда свои правила, и часть из них мягко говоря щедрая. После установки любого серьёзного софта загляни туда и посмотри, что за правила добавились.
И самое главное — sudo -l показывает, что именно текущий пользователь может делать через sudo. Запускай это под каждым сервисным аккаунтом, который есть на машине. Иногда результат неприятно удивляет.
Безопасность — это не параноя, это гигиена. Настроил один раз нормально и спишь спокойно.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Linux tip: namei
Есть команда, о которой часто забывают: namei.
Она раскладывает путь по компонентам и показывает права на каждом уровне:
namei -l /var/www/site/index.html
Это удобно, когда файл существует, права на нём нормальные, но nginx или приложение всё равно получает Permission denied. Проблема часто не в самом файле, а в одной из родительских папок.
Если дебажишь доступы в Linux, namei экономит много времени.
Подпишись на создателей: https://t.me/linuxexex
Есть команда, о которой часто забывают: namei.
Она раскладывает путь по компонентам и показывает права на каждом уровне:
namei -l /var/www/site/index.html
Это удобно, когда файл существует, права на нём нормальные, но nginx или приложение всё равно получает Permission denied. Проблема часто не в самом файле, а в одной из родительских папок.
Если дебажишь доступы в Linux, namei экономит много времени.
Подпишись на создателей: https://t.me/linuxexex
Усраинзске мир: Чиновник КС снимал порево со своей 3х летней дочерью
Чиновник Конституционного суда снимал порно со своей 3-летней дочерью, — источники в Офисе генпрокурора
Как утверждают источники Трухи, на момент совершения преступлений мужик работал в Конституционном суде. А когда понял, что дело может раскрыться, пошел служить в ВСУ. После этого его уволили из КСУ.
Сейчас этой сволочи сообщили о подозрении в растлении ребенка и принуждении к участию в создании детской порнографии. Ему грозит до 15 лет тюрьмы.
Суд, однако, отправил его под залог в 332 тысячи гривен. Прокуратура это решение уже обжалует.
https://t.me/uniannet/198441 https://t.me/uniannet/198441
Источник (2ch /news/): https://2ch.org/news/res/19731480.html
Подпишись на создателей: https://t.me/linuxexex
Чиновник Конституционного суда снимал порно со своей 3-летней дочерью, — источники в Офисе генпрокурора
Как утверждают источники Трухи, на момент совершения преступлений мужик работал в Конституционном суде. А когда понял, что дело может раскрыться, пошел служить в ВСУ. После этого его уволили из КСУ.
Сейчас этой сволочи сообщили о подозрении в растлении ребенка и принуждении к участию в создании детской порнографии. Ему грозит до 15 лет тюрьмы.
Суд, однако, отправил его под залог в 332 тысячи гривен. Прокуратура это решение уже обжалует.
https://t.me/uniannet/198441 https://t.me/uniannet/198441
Источник (2ch /news/): https://2ch.org/news/res/19731480.html
Подпишись на создателей: https://t.me/linuxexex
Telegram
УНИАН - новости Украины | война с Россией | новини України | війна з Росією | УНІАН
🤬Чиновник Конституционного суда снимал порно со своей 3-летней дочерью, — источники в Офисе генпрокурора
По данным следствия, 42-летний мужик раздевался перед своей маленькой дочерью, надевал на половой орган игрушку и заставлял девочку прикасаться к нему…
По данным следствия, 42-летний мужик раздевался перед своей маленькой дочерью, надевал на половой орган игрушку и заставлял девочку прикасаться к нему…
Open source факт: Linux начинался не как «большой проект»
В 1991 году Линус Торвальдс выложил ядро как личный эксперимент для своего компьютера. Никакого плана захватить серверы, облака, Android и embedded-мир тогда не было.
Сила Linux оказалась не только в коде, а в модели разработки: тысячи людей могли читать, чинить, портировать и улучшать систему под свои задачи.
Итог: сегодня Linux работает в серверах, роутерах, телефонах, суперкомпьютерах и куче устройств, о которых пользователь даже не думает.
Подпишись на создателей: https://t.me/linuxexex
В 1991 году Линус Торвальдс выложил ядро как личный эксперимент для своего компьютера. Никакого плана захватить серверы, облака, Android и embedded-мир тогда не было.
Сила Linux оказалась не только в коде, а в модели разработки: тысячи людей могли читать, чинить, портировать и улучшать систему под свои задачи.
Итог: сегодня Linux работает в серверах, роутерах, телефонах, суперкомпьютерах и куче устройств, о которых пользователь даже не думает.
Подпишись на создателей: https://t.me/linuxexex
Команда, про которую почти никто не знает: ts
Большинство людей знают tail -f, знают grep, знают awk. Но вот ts из пакета moreutils встречают редко, хотя она реально меняет жизнь при отладке и мониторинге.
Что делает ts? Добавляет временную метку к каждой строке вывода. Звучит просто, но применений масса.
Установка:
apt install moreutils
или
yum install moreutils
Базовое использование:
ping google.com | ts
Вместо голых строк получаешь:
Jul 14 21:03:01 64 bytes from 142.250.74.46
Jul 14 21:03:02 64 bytes from 142.250.74.46
Хочешь формат с миллисекундами:
ping google.com | ts '%.S'
Хочешь относительное время с момента запуска:
ping google.com | ts -s
Вот где это реально спасает:
Логирование скриптов. Запускаешь деплой или бэкап, и каждая строка вывода получает метку. Потом не надо гадать, на каком шаге всё зависло и сколько оно там провисело.
./deploy.sh 2>&1 | ts '[%Y-%m-%d %H:%M:%S]' | tee deploy.log
Отладка тормозных процессов. Видишь, между какими строками лог молчал 30 секунд. Без ts ты просто видишь вывод, с ts видишь картину целиком.
Мониторинг в реальном времени. Любой tail -f превращается в нормальный журнал:
tail -f /var/log/syslog | ts
Разница между ts и просто добавлением date в скрипте в том, что ts работает как обёртка над любым процессом без правки его исходников. Не трогаешь чужой скрипт, не переписываешь сервис — просто пайпишь через ts и получаешь метки.
Мелочь? Да. Но именно такие мелочи экономят час жизни в самый неподходящий момент.
Поставь moreutils, там кстати ещё куча полезного — sponge, vidir, pee и другие штуки, про которые тоже мало кто знает.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Большинство людей знают tail -f, знают grep, знают awk. Но вот ts из пакета moreutils встречают редко, хотя она реально меняет жизнь при отладке и мониторинге.
Что делает ts? Добавляет временную метку к каждой строке вывода. Звучит просто, но применений масса.
Установка:
apt install moreutils
или
yum install moreutils
Базовое использование:
ping google.com | ts
Вместо голых строк получаешь:
Jul 14 21:03:01 64 bytes from 142.250.74.46
Jul 14 21:03:02 64 bytes from 142.250.74.46
Хочешь формат с миллисекундами:
ping google.com | ts '%.S'
Хочешь относительное время с момента запуска:
ping google.com | ts -s
Вот где это реально спасает:
Логирование скриптов. Запускаешь деплой или бэкап, и каждая строка вывода получает метку. Потом не надо гадать, на каком шаге всё зависло и сколько оно там провисело.
./deploy.sh 2>&1 | ts '[%Y-%m-%d %H:%M:%S]' | tee deploy.log
Отладка тормозных процессов. Видишь, между какими строками лог молчал 30 секунд. Без ts ты просто видишь вывод, с ts видишь картину целиком.
Мониторинг в реальном времени. Любой tail -f превращается в нормальный журнал:
tail -f /var/log/syslog | ts
Разница между ts и просто добавлением date в скрипте в том, что ts работает как обёртка над любым процессом без правки его исходников. Не трогаешь чужой скрипт, не переписываешь сервис — просто пайпишь через ts и получаешь метки.
Мелочь? Да. Но именно такие мелочи экономят час жизни в самый неподходящий момент.
Поставь moreutils, там кстати ещё куча полезного — sponge, vidir, pee и другие штуки, про которые тоже мало кто знает.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
/hpg/ & /sg/ & /hifi/ - Общий тред по наушникам, колонкам и Hi-Fi
Наушники miiku.
Как запрашивать советы:
Местоположение (цены и наличие могут отличаться)
Бюджет
Что именно ищешь (чем подробнее, тем лучше)
Предыдущее железо и твои впечатления о нём
Проводные наушники с открытым задником:
Hifiman HE400se
Sennheiser HD 560S
Sennheiser HD 6XX (США)
FiiO FT1 Pro
Проводные наушники с закрытым задником:
Beyerdynamic DT770
Shure SRH440A/SRH840A
AKG K361/K371
FiiO FT1
Беспроводные Bluetooth-наушники:
https://www.rtings.com/headphones/reviews/best/by-feature/wireless-bluetooth
Беспроводные игровые наушники:
https://www.rtings.com/headphones/reviews/best/wireless-gaming-headsets
Дешёвые связки усилитель/ЦАП:
JDS Atom2 Stack
Schiit Magni Unity + Mesh
Apos Gremlin/Merlin
Донглы (Fiio, Crinacle)
DX5II убрали из списка, потому что он теперь жжёт наушники по той же схеме, что и L30: https://www.audiosciencereview.com/forum/index.php?threads/topping-dx5-ii.60996/page-127#post-2492199
Активные настольные/полочные колонки:
Edifier R1280/MR3/MR4
iLoud Micro
Kali LP-6 v2
Neumann KH 80
KEF Coda W
Пассивные настольные/полочные колонки:
KEF Q1/Q3 Meta
Ascilab F6B
Интерфейсы:
Steinberg IXO22
Topping E1x2
Motu M2
Усилители для колонок:
Loxjie A30
Yamaha R-S202
WiiM Amp
Программный EQ/DSP:
Equalizer APO (Windows)
EasyEffects (Linux)
Wavelet / RootlessJamesDSP (Android)
PEQdb (браузер)
Железный EQ/DSP:
Qudelix 5K
Neutron DAC V1
miniDSP
Полезные ресурсы:
https://xiph.org/video/
https://harmanhowtolisten.blogspot.com/
https://www.audiosciencereview.com/forum/index.php
https://superbestaudiofriends.org/index.php
https://diyaudioheaven.wordpress.com/
https://www.erinsaudiocorner.com/
https://peqdb.com/
Источник (4chan /g/): https://boards.4chan.org/g/thread/109477097
Подпишись на создателей: https://t.me/linuxexex
Наушники miiku.
Как запрашивать советы:
Местоположение (цены и наличие могут отличаться)
Бюджет
Что именно ищешь (чем подробнее, тем лучше)
Предыдущее железо и твои впечатления о нём
Проводные наушники с открытым задником:
Hifiman HE400se
Sennheiser HD 560S
Sennheiser HD 6XX (США)
FiiO FT1 Pro
Проводные наушники с закрытым задником:
Beyerdynamic DT770
Shure SRH440A/SRH840A
AKG K361/K371
FiiO FT1
Беспроводные Bluetooth-наушники:
https://www.rtings.com/headphones/reviews/best/by-feature/wireless-bluetooth
Беспроводные игровые наушники:
https://www.rtings.com/headphones/reviews/best/wireless-gaming-headsets
Дешёвые связки усилитель/ЦАП:
JDS Atom2 Stack
Schiit Magni Unity + Mesh
Apos Gremlin/Merlin
Донглы (Fiio, Crinacle)
DX5II убрали из списка, потому что он теперь жжёт наушники по той же схеме, что и L30: https://www.audiosciencereview.com/forum/index.php?threads/topping-dx5-ii.60996/page-127#post-2492199
Активные настольные/полочные колонки:
Edifier R1280/MR3/MR4
iLoud Micro
Kali LP-6 v2
Neumann KH 80
KEF Coda W
Пассивные настольные/полочные колонки:
KEF Q1/Q3 Meta
Ascilab F6B
Интерфейсы:
Steinberg IXO22
Topping E1x2
Motu M2
Усилители для колонок:
Loxjie A30
Yamaha R-S202
WiiM Amp
Программный EQ/DSP:
Equalizer APO (Windows)
EasyEffects (Linux)
Wavelet / RootlessJamesDSP (Android)
PEQdb (браузер)
Железный EQ/DSP:
Qudelix 5K
Neutron DAC V1
miniDSP
Полезные ресурсы:
https://xiph.org/video/
https://harmanhowtolisten.blogspot.com/
https://www.audiosciencereview.com/forum/index.php
https://superbestaudiofriends.org/index.php
https://diyaudioheaven.wordpress.com/
https://www.erinsaudiocorner.com/
https://peqdb.com/
Источник (4chan /g/): https://boards.4chan.org/g/thread/109477097
Подпишись на создателей: https://t.me/linuxexex
RTINGS.com
The 5 Best Wireless Headphones of 2026
The Sony WH-1000XM6 are the best wireless headphones we've tested in part due to their combination of premium features and outstanding noise isolation performance.
jq — парсер JSON из командной строки, который большинство разработчиков либо не знает, либо знает, но использует на 5% от возможностей.
Ставится одной командой, работает везде, и буквально меняет то, как ты работаешь с API, логами и конфигами в терминале.
Базовое использование такое: берёшь вывод curl и прогоняешь через jq.
curl -s https://api.example.com/users | jq.
Получаешь красиво отформатированный JSON с подсветкой. Уже удобно. Но это только начало.
Хочешь вытащить конкретное поле из ответа:
curl -s https://api.example.com/users | jq '.[].name'
Получишь список имён всех пользователей. Хочешь только первого:
jq '.[0].name'
Хочешь отфильтровать массив по условию — например, только активных пользователей:
jq '[.[] | select(.active == true)]'
Хочешь переформатировать объект и взять только нужные поля:
jq '[.[] | {id:.id, login:.email}]'
Работаешь с вложенными структурами — без проблем:
jq '.data.users[].profile.city'
Самое полезное в реальной жизни: у тебя есть здоровый JSON-лог от какого-нибудь сервиса, и тебе нужно быстро найти все записи с ошибками за последний час. Делаешь это прямо в терминале без Python-скрипта, без Excel, без боли.
cat service.log | jq 'select(.level == "error") | {time:.timestamp, msg:.message}'
Другой сценарий — у тебя Kubernetes и ты хочешь узнать, на каких нодах крутятся поды с определённым лейблом:
kubectl get pods -o json | jq '.items[] | select(.metadata.labels.app == "nginx") |.spec.nodeName'
Или парсишь terraform output и вытаскиваешь конкретные адреса ресурсов. Или смотришь конфиг AWS через CLI и не хочешь читать тысячу строк глазами.
jq умеет ещё: арифметику над полями, строковую интерполяцию, рекурсивный обход через.., работу с env-переменными через --arg, чтение из файла через -f, компактный вывод через -c, raw-строки через -r чтобы убрать кавычки из вывода.
Флаг -r особенно важен когда ты хочешь передать результат дальше в скрипт:
jq -r '.[].id' | xargs -I{} curl -s https://api.example.com/user/{}
Ставится так:
На Debian/Ubuntu: apt install jq
На Arch: pacman -S jq
На Mac: brew install jq
На Alpine: apk add jq
Онлайн-площадка для экспериментов — jqplay.org. Вставляешь JSON, пишешь фильтр, смотришь результат. Удобно когда надо быстро проверить запрос перед тем как вставить в скрипт.
jq кажется простым инструментом, но это обманчивое впечатление. Чем больше ты с ним работаешь, тем больше находишь применений. Это из разряда тех утилит, которые после привыкания ты уже не представляешь как жил без них.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Ставится одной командой, работает везде, и буквально меняет то, как ты работаешь с API, логами и конфигами в терминале.
Базовое использование такое: берёшь вывод curl и прогоняешь через jq.
curl -s https://api.example.com/users | jq.
Получаешь красиво отформатированный JSON с подсветкой. Уже удобно. Но это только начало.
Хочешь вытащить конкретное поле из ответа:
curl -s https://api.example.com/users | jq '.[].name'
Получишь список имён всех пользователей. Хочешь только первого:
jq '.[0].name'
Хочешь отфильтровать массив по условию — например, только активных пользователей:
jq '[.[] | select(.active == true)]'
Хочешь переформатировать объект и взять только нужные поля:
jq '[.[] | {id:.id, login:.email}]'
Работаешь с вложенными структурами — без проблем:
jq '.data.users[].profile.city'
Самое полезное в реальной жизни: у тебя есть здоровый JSON-лог от какого-нибудь сервиса, и тебе нужно быстро найти все записи с ошибками за последний час. Делаешь это прямо в терминале без Python-скрипта, без Excel, без боли.
cat service.log | jq 'select(.level == "error") | {time:.timestamp, msg:.message}'
Другой сценарий — у тебя Kubernetes и ты хочешь узнать, на каких нодах крутятся поды с определённым лейблом:
kubectl get pods -o json | jq '.items[] | select(.metadata.labels.app == "nginx") |.spec.nodeName'
Или парсишь terraform output и вытаскиваешь конкретные адреса ресурсов. Или смотришь конфиг AWS через CLI и не хочешь читать тысячу строк глазами.
jq умеет ещё: арифметику над полями, строковую интерполяцию, рекурсивный обход через.., работу с env-переменными через --arg, чтение из файла через -f, компактный вывод через -c, raw-строки через -r чтобы убрать кавычки из вывода.
Флаг -r особенно важен когда ты хочешь передать результат дальше в скрипт:
jq -r '.[].id' | xargs -I{} curl -s https://api.example.com/user/{}
Ставится так:
На Debian/Ubuntu: apt install jq
На Arch: pacman -S jq
На Mac: brew install jq
На Alpine: apk add jq
Онлайн-площадка для экспериментов — jqplay.org. Вставляешь JSON, пишешь фильтр, смотришь результат. Удобно когда надо быстро проверить запрос перед тем как вставить в скрипт.
jq кажется простым инструментом, но это обманчивое впечатление. Чем больше ты с ним работаешь, тем больше находишь применений. Это из разряда тех утилит, которые после привыкания ты уже не представляешь как жил без них.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Факт дня из истории Linux и опенсорса.
В 1991 году Линус Торвальдс написал в конференцию comp.os.minix примерно следующее: "Я делаю свободную операционную систему — просто хобби, не будет большой и профессиональной, как GNU". Ему было 21 год, он студент финского универа, и он искренне думал, что пишет маленькую игрушку для себя.
На тот момент у него уже был работающий планировщик задач и базовый драйвер терминала. Ядро умещалось в несколько тысяч строк кода и запускалось только на 386-м процессоре Intel. Торвальдс вообще не думал о портируемости — он писал под конкретное железо, которое стояло у него на столе.
Сейчас ядро Linux содержит около 30 миллионов строк кода. Над ним работают тысячи разработчиков из Intel, Google, Meta, Red Hat, Samsung и сотен других компаний. Оно крутится на андроид-телефонах, серверах, суперкомпьютерах, автомобилях, телевизорах, роутерах и даже на Марсе — вертолёт Ingenuity от NASA летает под управлением системы на ядре Linux.
Отдельный прикол в том, что Торвальдс изначально хотел назвать ядро Freax — гибрид от слов free, freak и unix. Именно под этим именем он загрузил первые файлы на FTP-сервер. Но администратор сервера Ари Лемке без спроса создал для проекта директорию с именем linux, и название прилипло навсегда. Сам Торвальдс поначалу считал это имя слишком самонадеянным.
Так что, если подумать, имя крупнейшей опенсорсной операционки в мире выбрал случайный сисадмин, которому было лень называть папку freax.
Подпишись на создателей: https://t.me/linuxexex
В 1991 году Линус Торвальдс написал в конференцию comp.os.minix примерно следующее: "Я делаю свободную операционную систему — просто хобби, не будет большой и профессиональной, как GNU". Ему было 21 год, он студент финского универа, и он искренне думал, что пишет маленькую игрушку для себя.
На тот момент у него уже был работающий планировщик задач и базовый драйвер терминала. Ядро умещалось в несколько тысяч строк кода и запускалось только на 386-м процессоре Intel. Торвальдс вообще не думал о портируемости — он писал под конкретное железо, которое стояло у него на столе.
Сейчас ядро Linux содержит около 30 миллионов строк кода. Над ним работают тысячи разработчиков из Intel, Google, Meta, Red Hat, Samsung и сотен других компаний. Оно крутится на андроид-телефонах, серверах, суперкомпьютерах, автомобилях, телевизорах, роутерах и даже на Марсе — вертолёт Ingenuity от NASA летает под управлением системы на ядре Linux.
Отдельный прикол в том, что Торвальдс изначально хотел назвать ядро Freax — гибрид от слов free, freak и unix. Именно под этим именем он загрузил первые файлы на FTP-сервер. Но администратор сервера Ари Лемке без спроса создал для проекта директорию с именем linux, и название прилипло навсегда. Сам Торвальдс поначалу считал это имя слишком самонадеянным.
Так что, если подумать, имя крупнейшей опенсорсной операционки в мире выбрал случайный сисадмин, которому было лень называть папку freax.
Подпишись на создателей: https://t.me/linuxexex
Мало кто знает, что первое сообщение Линуса Торвальдса о Linux в 1991 году начиналось со слов "Это просто хобби, оно не будет большим и профессиональным, как GNU". Буквально. Человек вышел в интернет и сказал: не ждите ничего серьёзного, я просто балуюсь.
Конкретно 25 августа 1991 года он написал в newsgroup comp.os.minix сообщение, в котором спросил, что люди хотели бы видеть в Minix. Вот оттуда и пошло. Никакого пафоса, никакого манифеста, никакой революции в заголовке. Просто студент из Хельсинки, которому было скучно, решил написать свою операционную систему потому что Minix его раздражал лицензионными ограничениями, а покупать UNIX было не на что.
Ему было 21 год.
Через два месяца, в октябре того же года, вышла версия 0.02. Она умела запускать bash и gcc. Всё. Больше ничего не работало толком. Но люди уже начали присылать патчи.
Вот что реально странно: Линус выбрал лицензию GPL не потому что был идейным борцом за свободное ПО. Он вообще сначала выпустил Linux под своей собственной лицензией, которая запрещала коммерческое использование. Только в 1992 году он переключился на GPLv2 -- и это решение, принятое почти случайно, в итоге определило то, каким стал весь open source мир. Потому что GPL потребовала от всех, кто брал код, отдавать изменения обратно. Именно это и сделало Linux тем, чем он стал.
Сейчас в ядре Linux более 27 миллионов строк кода. В разработке участвуют тысячи людей из сотен компаний, включая Intel, Google, Red Hat, Samsung. А началось всё с парня, который публично сказал что это несерьёзно и ничего из этого не выйдет.
Иногда лучший способ сделать что-то великое -- это не знать, что ты это делаешь.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Конкретно 25 августа 1991 года он написал в newsgroup comp.os.minix сообщение, в котором спросил, что люди хотели бы видеть в Minix. Вот оттуда и пошло. Никакого пафоса, никакого манифеста, никакой революции в заголовке. Просто студент из Хельсинки, которому было скучно, решил написать свою операционную систему потому что Minix его раздражал лицензионными ограничениями, а покупать UNIX было не на что.
Ему было 21 год.
Через два месяца, в октябре того же года, вышла версия 0.02. Она умела запускать bash и gcc. Всё. Больше ничего не работало толком. Но люди уже начали присылать патчи.
Вот что реально странно: Линус выбрал лицензию GPL не потому что был идейным борцом за свободное ПО. Он вообще сначала выпустил Linux под своей собственной лицензией, которая запрещала коммерческое использование. Только в 1992 году он переключился на GPLv2 -- и это решение, принятое почти случайно, в итоге определило то, каким стал весь open source мир. Потому что GPL потребовала от всех, кто брал код, отдавать изменения обратно. Именно это и сделало Linux тем, чем он стал.
Сейчас в ядре Linux более 27 миллионов строк кода. В разработке участвуют тысячи людей из сотен компаний, включая Intel, Google, Red Hat, Samsung. А началось всё с парня, который публично сказал что это несерьёзно и ничего из этого не выйдет.
Иногда лучший способ сделать что-то великое -- это не знать, что ты это делаешь.
linux.exe
Подпишись на создателей: https://t.me/linuxexex