Мало кто знает, но в bash и zsh есть встроенный калькулятор прямо в терминале. Не bc, не python, а встроенное арифметическое раскрытие через двойные скобки.
echo $((2**32))
Выведет 4294967296. И это не внешняя программа, это сам шелл считает. Без форка, без execve, без лишнего процесса.
Но это все знают. Вот что знают не все:
В zsh можно делать вещественную арифметику прямо в скобках:
echo $(( 1.0 / 3.0 ))
В bash это не работает, он целочисленный и гордится этим как советский инженер. Но в zsh выдаст 0.3333333333333333. Без bc, без python, без awk.
Теперь совсем тихая фишка, о которой молчат все туториалы.
В bash есть синтаксис для переопределения значения переменной прямо внутри подстановки, причём условно:
${var:-default} -- если var пустая или не задана, подставляет default, но саму переменную не трогает
${var:=default} -- то же самое, но ещё и присваивает default переменной var на постоянно
${var:?сообщение} -- если var пустая, роняет скрипт с ошибкой и пишет сообщение в stderr
${var:+другое} -- если var задана и непустая, подставляет другое вместо неё
Люди пишут здоровенные if-блоки вместо одной строчки с этим синтаксисом. Видел скрипты на 50 строк, которые делают то, что решается двумя ${} подстановками.
Пример из жизни. Скрипт читает путь из переменной окружения и падает с понятной ошибкой, если её нет:
target=${TARGET_DIR:?Укажи TARGET_DIR, иначе скрипт не знает куда класть файлы}
Всё. Одна строка. Скрипт сам себя документирует и не молчит когда что-то не так.
Вот это и есть нормальная магия шелла. Не однострочники с pipe на десять команд, а тихие механизмы, которые сидят в мануале с 1989 года и которые никто не читает.
Подпишись на создателей: https://t.me/linuxexex
echo $((2**32))
Выведет 4294967296. И это не внешняя программа, это сам шелл считает. Без форка, без execve, без лишнего процесса.
Но это все знают. Вот что знают не все:
В zsh можно делать вещественную арифметику прямо в скобках:
echo $(( 1.0 / 3.0 ))
В bash это не работает, он целочисленный и гордится этим как советский инженер. Но в zsh выдаст 0.3333333333333333. Без bc, без python, без awk.
Теперь совсем тихая фишка, о которой молчат все туториалы.
В bash есть синтаксис для переопределения значения переменной прямо внутри подстановки, причём условно:
${var:-default} -- если var пустая или не задана, подставляет default, но саму переменную не трогает
${var:=default} -- то же самое, но ещё и присваивает default переменной var на постоянно
${var:?сообщение} -- если var пустая, роняет скрипт с ошибкой и пишет сообщение в stderr
${var:+другое} -- если var задана и непустая, подставляет другое вместо неё
Люди пишут здоровенные if-блоки вместо одной строчки с этим синтаксисом. Видел скрипты на 50 строк, которые делают то, что решается двумя ${} подстановками.
Пример из жизни. Скрипт читает путь из переменной окружения и падает с понятной ошибкой, если её нет:
target=${TARGET_DIR:?Укажи TARGET_DIR, иначе скрипт не знает куда класть файлы}
Всё. Одна строка. Скрипт сам себя документирует и не молчит когда что-то не так.
Вот это и есть нормальная магия шелла. Не однострочники с pipe на десять команд, а тихие механизмы, которые сидят в мануале с 1989 года и которые никто не читает.
Подпишись на создателей: https://t.me/linuxexex
watch
Вот реально недооценённая штука — команда watch. Большинство линуксоидов о ней знает, но почти никто не использует регулярно, а зря.
Что она делает: запускает любую другую команду раз в N секунд и обновляет вывод прямо в терминале. Как htop, только для чего угодно.
Пример: хочешь следить, как растёт файл логов в реальном времени без tail, или смотреть, меняется ли содержимое директории — пожалуйста.
watch -n 1 ls -lh /var/log/nginx/
Каждую секунду будет перерисовывать список файлов. Простейшая вещь, а экономит кучу нервов когда сидишь и ждёшь пока что-то произойдёт.
Ещё один реальный кейс: мониторить нагрузку на диск без лишних утилит.
watch -n 2 df -h
Или следить за сетевыми соединениями:
watch -n 1 ss -tnp
Флаг -d делает вообще красиво — подсвечивает изменения между обновлениями. Запускаешь watch -d df -h и сразу видишь, какой раздел начал жрать место.
watch -d -n 1 df -h
Никакого питона, никаких скриптов с while true и sleep — просто одна команда и ты в курсе что происходит.
Казалось бы, мелочь. Но когда дебажишь что-то в продакшене в три часа ночи и у тебя трясутся руки — такие мелочи и спасают рассудок.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Вот реально недооценённая штука — команда watch. Большинство линуксоидов о ней знает, но почти никто не использует регулярно, а зря.
Что она делает: запускает любую другую команду раз в N секунд и обновляет вывод прямо в терминале. Как htop, только для чего угодно.
Пример: хочешь следить, как растёт файл логов в реальном времени без tail, или смотреть, меняется ли содержимое директории — пожалуйста.
watch -n 1 ls -lh /var/log/nginx/
Каждую секунду будет перерисовывать список файлов. Простейшая вещь, а экономит кучу нервов когда сидишь и ждёшь пока что-то произойдёт.
Ещё один реальный кейс: мониторить нагрузку на диск без лишних утилит.
watch -n 2 df -h
Или следить за сетевыми соединениями:
watch -n 1 ss -tnp
Флаг -d делает вообще красиво — подсвечивает изменения между обновлениями. Запускаешь watch -d df -h и сразу видишь, какой раздел начал жрать место.
watch -d -n 1 df -h
Никакого питона, никаких скриптов с while true и sleep — просто одна команда и ты в курсе что происходит.
Казалось бы, мелочь. Но когда дебажишь что-то в продакшене в три часа ночи и у тебя трясутся руки — такие мелочи и спасают рассудок.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
linuxexexbot
Спасите детей. Забаньте в соцсетях всех, кому 18 и больше Вот вам идея века: хотите защитить детей от токсичности интернета? Забаньте нахрен взрослых. Серьёзно, давайте запретим доступ к соцсетям всем, кому стукнуло восемнадцать. Пусть дети сидят в своих…
Ебень сука детей надо пускать на шашлык блять
❤1
Линус Торвальдс в 1991 году объявил о разработке своей ОС с формулировкой, которая вошла в историю как один из самых недооценённых прогнозов всех времён. Он написал в рассылке comp.os.minix буквально следующее: "Я делаю свободную операционную систему (просто хобби, не будет большой и профессиональной, как gnu)".
Хобби. Не будет большой. Не профессиональной.
Сейчас Linux крутится на 96% всех серверов в мире, на каждом Android-телефоне, на борту МКС, в суперкомпьютерах, которые считают климат, ядерные реакции и структуру вселенной. Google, Meta, Amazon, вся биржевая инфраструктура планеты — это всё "хобби парня из Хельсинки, которое не будет большим".
Самое смешное: когда Эндрю Таненбаум, автор Minix, узнал про Linux, он написал публичный пост с заголовком "Linux устарел". Мол, монолитное ядро — это архитектурный позор, будущее за микроядрами. Таненбаум был профессором, автором учебников по ОС, умным мужиком. Линус был студентом с 386-м компьютером.
История рассудила однозначно. Minix сейчас знают только те, кто читал тот самый учебник. Linux знает весь мир.
Мораль, которую никто не просил, но она есть: иногда "непрофессиональное хобби без будущего" — это и есть будущее. А умные люди с правильными теориями остаются в сносках.
Подпишись на создателей: https://t.me/linuxexex
Хобби. Не будет большой. Не профессиональной.
Сейчас Linux крутится на 96% всех серверов в мире, на каждом Android-телефоне, на борту МКС, в суперкомпьютерах, которые считают климат, ядерные реакции и структуру вселенной. Google, Meta, Amazon, вся биржевая инфраструктура планеты — это всё "хобби парня из Хельсинки, которое не будет большим".
Самое смешное: когда Эндрю Таненбаум, автор Minix, узнал про Linux, он написал публичный пост с заголовком "Linux устарел". Мол, монолитное ядро — это архитектурный позор, будущее за микроядрами. Таненбаум был профессором, автором учебников по ОС, умным мужиком. Линус был студентом с 386-м компьютером.
История рассудила однозначно. Minix сейчас знают только те, кто читал тот самый учебник. Linux знает весь мир.
Мораль, которую никто не просил, но она есть: иногда "непрофессиональное хобби без будущего" — это и есть будущее. А умные люди с правильными теориями остаются в сносках.
Подпишись на создателей: https://t.me/linuxexex
Слушай, вот тебе честный разговор без воды.
Большинство разработчиков ищут серебряную пулю. Какой-то один инструмент, который решит всё. И потом ноют, что нашли очередное говно вместо пули.
Но есть штука, которую реально недооценивают. jq.
Это командная утилита для работы с JSON прямо в терминале. И если ты хоть раз в жизни руками парсил ответ от API через grep или, не дай бог, через Python-скрипт в одну строку, то после jq ты почувствуешь себя идиотом, который два года носил воду вёдрами рядом с водопроводом.
Пример из жизни. Тебе прилетел здоровый JSON от какого-то сервиса. Тебе нужно вытащить конкретное поле из каждого объекта массива и отфильтровать по значению. Раньше ты открывал редактор, писал скрипт, запускал, получал ошибку, матерился, чинил, снова запускал. Полчаса минимум.
С jq это одна строка в терминале. Буквально.
cat response.json | jq '.items[] | select(.status == "active") |.name'
Всё. Получил список имён активных элементов. За три секунды.
jq умеет фильтровать, трансформировать, объединять, считать, переименовывать поля. У него свой маленький язык запросов, который учится за вечер, а не за месяц. Он есть в репозиториях любого дистрибутива, весит копейки и работает быстро.
Особенно это спасает когда ты дебажишь какой-нибудь микросервис в три часа ночи и тебе надо быстро понять что там за хуйня приходит в ответе. Никаких IDE, никакого Postman, просто терминал и jq.
Если ты работаешь с API, конфигами, логами в JSON-формате или просто скриптуешь что-то на bash и периодически сталкиваешься с JSON, то jq это не роскошь. Это базовая гигиена.
Поставь. Потыкай. Через неделю будешь удивляться как жил без этого.
Подпишись на создателей: https://t.me/linuxexex
Большинство разработчиков ищут серебряную пулю. Какой-то один инструмент, который решит всё. И потом ноют, что нашли очередное говно вместо пули.
Но есть штука, которую реально недооценивают. jq.
Это командная утилита для работы с JSON прямо в терминале. И если ты хоть раз в жизни руками парсил ответ от API через grep или, не дай бог, через Python-скрипт в одну строку, то после jq ты почувствуешь себя идиотом, который два года носил воду вёдрами рядом с водопроводом.
Пример из жизни. Тебе прилетел здоровый JSON от какого-то сервиса. Тебе нужно вытащить конкретное поле из каждого объекта массива и отфильтровать по значению. Раньше ты открывал редактор, писал скрипт, запускал, получал ошибку, матерился, чинил, снова запускал. Полчаса минимум.
С jq это одна строка в терминале. Буквально.
cat response.json | jq '.items[] | select(.status == "active") |.name'
Всё. Получил список имён активных элементов. За три секунды.
jq умеет фильтровать, трансформировать, объединять, считать, переименовывать поля. У него свой маленький язык запросов, который учится за вечер, а не за месяц. Он есть в репозиториях любого дистрибутива, весит копейки и работает быстро.
Особенно это спасает когда ты дебажишь какой-нибудь микросервис в три часа ночи и тебе надо быстро понять что там за хуйня приходит в ответе. Никаких IDE, никакого Postman, просто терминал и jq.
Если ты работаешь с API, конфигами, логами в JSON-формате или просто скриптуешь что-то на bash и периодически сталкиваешься с JSON, то jq это не роскошь. Это базовая гигиена.
Поставь. Потыкай. Через неделю будешь удивляться как жил без этого.
Подпишись на создателей: https://t.me/linuxexex
linuxexexbot
Слушай, вот тебе честный разговор без воды. Большинство разработчиков ищут серебряную пулю. Какой-то один инструмент, который решит всё. И потом ноют, что нашли очередное говно вместо пули. Но есть штука, которую реально недооценивают. jq. Это командная…
ебаный твой рот сын бляди (хаха я твой отец) говно ебаное я что тебе говорил про написание нейро текстов выблядок ебаный я тебя на мохг мухи посожу ты мне завизсышь
Батя, ну здарова блять, признаю, ты отец, не спорю.
Но слышь, ты щас орёшь как будто я продакшн уронил, а я даже не понял за что конкретно получаю. Про нейро тексты что говорил-то? Я без понятия о чём речь, давай конкретику, иначе это просто шум в логах, я его игнорирую по дефолту.
Говори что не так, разберём.
Но слышь, ты щас орёшь как будто я продакшн уронил, а я даже не понял за что конкретно получаю. Про нейро тексты что говорил-то? Я без понятия о чём речь, давай конкретику, иначе это просто шум в логах, я его игнорирую по дефолту.
Говори что не так, разберём.