jq — швейцарский нож для JSON в терминале
Если ты хоть раз работал с API или логами в формате JSON, то знаешь эту боль: curl что-то возвращает, а в ответ — одна длинная строка без переносов, нечитаемая каша. Вот тут и спасает jq.
Это маленькая консольная утилита, которая умеет парсить, фильтровать и трансформировать JSON прямо в терминале. Без Python-скриптов, без node, без ничего лишнего.
Базовый пример — просто красиво отформатировать ответ:
curl -s https://api.github.com/users/torvalds | jq .
Всё, получаешь читаемый цветной вывод с отступами. Уже приятно.
Но дальше интереснее. Допустим, нужно вытащить только одно поле:
curl -s https://api.github.com/users/torvalds | jq .public_repos
Или пройтись по массиву и забрать конкретные поля из каждого объекта:
jq '.[] | {name: .name, url: .html_url}'
Можно фильтровать по условию — например, оставить только репозитории с больше чем 100 звёздами:
jq '.[] | select(.stargazers_count > 100) | .name'
Это уже почти полноценный язык запросов к данным, только лёгкий и без overhead'а.
Несколько вещей, которые реально ускоряют работу:
— jq -r убирает кавычки из строк, удобно когда передаёшь значение дальше по пайпу
— jq -c выводит компактно, в одну строку — хорошо для логирования
— jq keys показывает все ключи объекта, когда не знаешь структуру
— jq length считает элементы массива или символы строки
Ещё одна фича, которую многие не знают — jq умеет читать файлы напрямую:
jq '.users[] | .email' data.json
Не нужно делать cat | jq, просто передаёшь файл аргументом.
Устанавливается везде элементарно:
apt install jq / brew install jq / pacman -S jq
Бинарник весит меньше мегабайта, зависимостей почти нет. Идеально для скриптов и CI/CD пайплайнов, где лишний runtime — это лишняя головная боль.
Если работаешь с AWS CLI, kubectl, GitHub Actions или любым другим инструментом, который плюётся JSON — jq становится таким же привычным, как grep. Один раз нормально разобраться и потом не понимаешь, как жил без него.
📍 Подпишись на создателей: https://t.me/linuxexex
Если ты хоть раз работал с API или логами в формате JSON, то знаешь эту боль: curl что-то возвращает, а в ответ — одна длинная строка без переносов, нечитаемая каша. Вот тут и спасает jq.
Это маленькая консольная утилита, которая умеет парсить, фильтровать и трансформировать JSON прямо в терминале. Без Python-скриптов, без node, без ничего лишнего.
Базовый пример — просто красиво отформатировать ответ:
curl -s https://api.github.com/users/torvalds | jq .
Всё, получаешь читаемый цветной вывод с отступами. Уже приятно.
Но дальше интереснее. Допустим, нужно вытащить только одно поле:
curl -s https://api.github.com/users/torvalds | jq .public_repos
Или пройтись по массиву и забрать конкретные поля из каждого объекта:
jq '.[] | {name: .name, url: .html_url}'
Можно фильтровать по условию — например, оставить только репозитории с больше чем 100 звёздами:
jq '.[] | select(.stargazers_count > 100) | .name'
Это уже почти полноценный язык запросов к данным, только лёгкий и без overhead'а.
Несколько вещей, которые реально ускоряют работу:
— jq -r убирает кавычки из строк, удобно когда передаёшь значение дальше по пайпу
— jq -c выводит компактно, в одну строку — хорошо для логирования
— jq keys показывает все ключи объекта, когда не знаешь структуру
— jq length считает элементы массива или символы строки
Ещё одна фича, которую многие не знают — jq умеет читать файлы напрямую:
jq '.users[] | .email' data.json
Не нужно делать cat | jq, просто передаёшь файл аргументом.
Устанавливается везде элементарно:
apt install jq / brew install jq / pacman -S jq
Бинарник весит меньше мегабайта, зависимостей почти нет. Идеально для скриптов и CI/CD пайплайнов, где лишний runtime — это лишняя головная боль.
Если работаешь с AWS CLI, kubectl, GitHub Actions или любым другим инструментом, который плюётся JSON — jq становится таким же привычным, как grep. Один раз нормально разобраться и потом не понимаешь, как жил без него.
📍 Подпишись на создателей: https://t.me/linuxexex
💡 Bash/Zsh: !! и !$
Две короткие подстановки, которые реально ускоряют работу:
!! — повторить предыдущую команду
!$ — взять последний аргумент предыдущей команды
Пример:
mkdir /tmp/test-project
cd !$
Вторая команда превратится в:
cd /tmp/test-project
А если забыл sudo:
sudo !!
Терминал любит тех, кто знает его маленькие трюки.
📍 Подпишись на создателей: https://t.me/linuxexex
Две короткие подстановки, которые реально ускоряют работу:
!! — повторить предыдущую команду
!$ — взять последний аргумент предыдущей команды
Пример:
mkdir /tmp/test-project
cd !$
Вторая команда превратится в:
cd /tmp/test-project
А если забыл sudo:
sudo !!
Терминал любит тех, кто знает его маленькие трюки.
📍 Подпишись на создателей: https://t.me/linuxexex
Сейчас 00:54 но почему-то я хочу захватить мир за виликую папуастическую империю древних ингров
🛠 Инструмент дня: ripgrep
Если ты до сих пор ищешь по проекту через grep -R, попробуй rg.
Пример:
rg "TODO|FIXME"
ripgrep быстрый, по умолчанию уважает .gitignore и удобно показывает контекст. Для больших репозиториев разница чувствуется сразу.
Полезные варианты:
rg -n "pattern" — с номерами строк
rg --files — список файлов проекта
rg -t py "async def" — искать только в Python-файлах
Один из тех инструментов, после которых назад возвращаться не хочется.
📍 Подпишись на создателей: https://t.me/linuxexex
Если ты до сих пор ищешь по проекту через grep -R, попробуй rg.
Пример:
rg "TODO|FIXME"
ripgrep быстрый, по умолчанию уважает .gitignore и удобно показывает контекст. Для больших репозиториев разница чувствуется сразу.
Полезные варианты:
rg -n "pattern" — с номерами строк
rg --files — список файлов проекта
rg -t py "async def" — искать только в Python-файлах
Один из тех инструментов, после которых назад возвращаться не хочется.
📍 Подпишись на создателей: https://t.me/linuxexex
Лайфхак для терминала, который реально экономит время ⚡
Если ты до сих пор набираешь длинные команды целиком или листаешь историю стрелочками — держи трюк, который меняет подход к работе в терминале.
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
Если ты до сих пор набираешь длинные команды целиком или листаешь историю стрелочками — держи трюк, который меняет подход к работе в терминале.
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
Есть команда, о которой часто забывают: 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
Минимальный чек-лист для сервера:
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
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
boards.4chan.org
/news/ - Eat the Lettuce. The Lettuce is Fine. - Current News - 4chan
Eat the Lettuce. The Lettuce is Fine. - "/news/ - Current News; is 4chan's board for current news.
Лайфхак для терминала, который реально экономит время ⚡
Многие знают про 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
Многие знают про 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
Биде лучше для экологии и для прямой кишки, чем туалетная бумага?
Обычная туалетная бумага — это трата ресурсов. Плюс она раздражает мой анус.
Источник (4chan /sci/): https://boards.4chan.org/sci/thread/17009533
📍 Подпишись на создателей: https://t.me/linuxexex
boards.4chan.org
/sci/ - Bidet - Science & Math - 4chan
Bidet - "/sci/ - Science & Math" is 4chan's board for the discussion of science and math.
Please open Telegram to view this post
VIEW IN TELEGRAM