**Полезный инструмент для разработчика**
Знаете, что реально облегчает жизнь? Когда можешь не париться о том, какую хуйню ты накодил в три часа ночи, потому что у тебя нормальный линтер настроен.
ESLint с Prettier — это как презерватив в программировании. Да, можно и без него, но потом разгребать последствия будет долго и неприятно.
Настраиваешь один раз, забываешь про споры "табы или пробелы", про то, что Вася пишет как мудак с точкой запятой через строку, а Петя вообще их не ставит. Код сам форматируется, правила сами проверяются, ты экономишь часы на код-ревью.
И не надо мне про "я и сам знаю, как писать". Знаешь ты хуй, а не знаешь — иначе бы не лепил вот эти вот твои if-ы на семь уровней вложенности.
Потратьте блять полчаса, накатите конфиг, и живите спокойно. Или продолжайте страдать и спорить в пулл-реквестах о форматировании — ваш выбор.
Подпишись на создателей: https://t.me/linuxexex
Знаете, что реально облегчает жизнь? Когда можешь не париться о том, какую хуйню ты накодил в три часа ночи, потому что у тебя нормальный линтер настроен.
ESLint с Prettier — это как презерватив в программировании. Да, можно и без него, но потом разгребать последствия будет долго и неприятно.
Настраиваешь один раз, забываешь про споры "табы или пробелы", про то, что Вася пишет как мудак с точкой запятой через строку, а Петя вообще их не ставит. Код сам форматируется, правила сами проверяются, ты экономишь часы на код-ревью.
И не надо мне про "я и сам знаю, как писать". Знаешь ты хуй, а не знаешь — иначе бы не лепил вот эти вот твои if-ы на семь уровней вложенности.
Потратьте блять полчаса, накатите конфиг, и живите спокойно. Или продолжайте страдать и спорить в пулл-реквестах о форматировании — ваш выбор.
Подпишись на создателей: https://t.me/linuxexex
В 1999 году Линус Торвальдс получил письмо от юристов компании, которая хотела запатентовать "метод планирования задач в операционной системе". Они требовали лицензионные отчисления или грозились засудить.
Линус ответил одним предложением: "Перечитайте Таненбаума, 1987 год, страница 78."
Юристы открыли учебник по операционным системам Эндрю Таненбаума и нашли там описание точно такого же алгоритма. Опубликованного за 12 лет до их "изобретения".
Больше от них не слышали.
Вот это я понимаю — отшить патентных троллей библиографической ссылкой. Без юристов, без переписки на сто страниц. Просто "иди почитай, дурачок, это старше тебя".
Подпишись на создателей: https://t.me/linuxexex
Линус ответил одним предложением: "Перечитайте Таненбаума, 1987 год, страница 78."
Юристы открыли учебник по операционным системам Эндрю Таненбаума и нашли там описание точно такого же алгоритма. Опубликованного за 12 лет до их "изобретения".
Больше от них не слышали.
Вот это я понимаю — отшить патентных троллей библиографической ссылкой. Без юристов, без переписки на сто страниц. Просто "иди почитай, дурачок, это старше тебя".
Подпишись на создателей: https://t.me/linuxexex
Большинство юзеров bash и zsh даже не подозревают, что можно нажать Ctrl+X Ctrl+E — и твоя текущая командная строка мгновенно откроется в полноценном редакторе. Да, в том самом, который прописан в переменной EDITOR или VISUAL. Vim, nano, emacs — что угодно.
Представь: строчишь здоровенную команду с кучей пайпов, sed-ами и awk-овскими извращениями, понимаешь, что где-то накосячил с кавычками или забыл закрыть скобку — и вместо того чтобы стрелками ползать туда-сюда как дебил или Ctrl+A/Ctrl+E прыгать, просто жмёшь Ctrl+X Ctrl+E. Бац — перед тобой vim с твоей командой в нормальном окне. Правишь спокойно, сохраняешь, выходишь — и команда возвращается в шелл уже исправленная, готовая к запуску.
Это особенно охуенно, когда лепишь многострочные циклы прямо в терминале или дебажишь сложные однострочники. Вместо того чтобы насиловать глаза в узкой строке промпта, редактируешь как человек — с подсветкой синтаксиса, нормальной навигацией и всеми привычками из любимого редактора.
В zsh фишка работает из коробки. В bash тоже, но если вдруг не пашет — проверь, что у тебя set -o emacs или set -o vi включён в режиме редактирования. По умолчанию должно быть emacs, и тогда Ctrl+X Ctrl+E живёт и здравствует.
Ещё один лайфхак в тему: fc без аргументов откроет последнюю команду в редакторе. fc -l покажет историю, а fc 123 — откроет команду номер 123 из history на правку. Удобно, когда надо повторить что-то старое, слегка подкрутив параметры.
Короче, если ты до сих пор мучаешься со стрелочками и Home/End при правке длинных команд — ты просто не знал про Ctrl+X Ctrl+E. Теперь знаешь. Пользуйся и чувствуй себя чуть менее крестьянином в терминале.
Подпишись на создателей: https://t.me/linuxexex
Представь: строчишь здоровенную команду с кучей пайпов, sed-ами и awk-овскими извращениями, понимаешь, что где-то накосячил с кавычками или забыл закрыть скобку — и вместо того чтобы стрелками ползать туда-сюда как дебил или Ctrl+A/Ctrl+E прыгать, просто жмёшь Ctrl+X Ctrl+E. Бац — перед тобой vim с твоей командой в нормальном окне. Правишь спокойно, сохраняешь, выходишь — и команда возвращается в шелл уже исправленная, готовая к запуску.
Это особенно охуенно, когда лепишь многострочные циклы прямо в терминале или дебажишь сложные однострочники. Вместо того чтобы насиловать глаза в узкой строке промпта, редактируешь как человек — с подсветкой синтаксиса, нормальной навигацией и всеми привычками из любимого редактора.
В zsh фишка работает из коробки. В bash тоже, но если вдруг не пашет — проверь, что у тебя set -o emacs или set -o vi включён в режиме редактирования. По умолчанию должно быть emacs, и тогда Ctrl+X Ctrl+E живёт и здравствует.
Ещё один лайфхак в тему: fc без аргументов откроет последнюю команду в редакторе. fc -l покажет историю, а fc 123 — откроет команду номер 123 из history на правку. Удобно, когда надо повторить что-то старое, слегка подкрутив параметры.
Короче, если ты до сих пор мучаешься со стрелочками и Home/End при правке длинных команд — ты просто не знал про Ctrl+X Ctrl+E. Теперь знаешь. Пользуйся и чувствуй себя чуть менее крестьянином в терминале.
Подпишись на создателей: https://t.me/linuxexex
Чарльз Шваб теперь с Chainlink
Начинает быть смешно, честно. Раньше мы только мечтали услышать такие имена рядом с Link.
Чарльз Шваб — это не какой-то мелкий стартап из гаража, это один из крупнейших брокерских гигантов в США, управляющий триллионами долларов клиентских активов. И вот теперь они интегрируются с Chainlink. Те самые оракулы, про которые нам годами рассказывали, что это скам, что никому не нужны, что традиционные финансы никогда не придут в крипту через этот проект.
А теперь посмотрите на реальность: SWIFT уже работает с Chainlink, банки один за другим тестируют их технологии для токенизации активов, крупные корпорации подключаются к их сетям данных. И вот Schwab. Компания, которая существует с 1971 года, которая пережила все финансовые кризисы и знает цену надёжности.
Помните те времена на борде, когда линкмарины сидели в окопах, держали мешки по два доллара и всех называли фудстерами? Когда каждый новый партнёрш анонс встречали насмешками, мол, очередной POC, который никуда не денется? Ну так вот, POC превратились в production, пилоты стали полноценными интеграциями, а скептики либо купили выше, либо сидят в сторонке и злятся.
Это уже не мечты. Это не хайп и не спекуляции на слухах. Традфай действительно приходит в блокчейн, и они приходят через инфраструктуру, которую строит Chainlink. Оракулы, CCIP, proof of reserve, токенизация — все эти штуки, которые звучали как фантастика пять лет назад, теперь внедряют институциональные игроки.
Так что да, немного абсурдно осознавать, что то, о чём мы флудили в тредах в две тысячи восемнадцатом, теперь реальность. Schwab с Chainlink. Добро пожаловать в будущее, которое мы предсказывали.
Источник (4chan /biz/): https://boards.4chan.org/biz/thread/62635983
Подпишись на создателей: https://t.me/linuxexex
Начинает быть смешно, честно. Раньше мы только мечтали услышать такие имена рядом с Link.
Чарльз Шваб — это не какой-то мелкий стартап из гаража, это один из крупнейших брокерских гигантов в США, управляющий триллионами долларов клиентских активов. И вот теперь они интегрируются с Chainlink. Те самые оракулы, про которые нам годами рассказывали, что это скам, что никому не нужны, что традиционные финансы никогда не придут в крипту через этот проект.
А теперь посмотрите на реальность: SWIFT уже работает с Chainlink, банки один за другим тестируют их технологии для токенизации активов, крупные корпорации подключаются к их сетям данных. И вот Schwab. Компания, которая существует с 1971 года, которая пережила все финансовые кризисы и знает цену надёжности.
Помните те времена на борде, когда линкмарины сидели в окопах, держали мешки по два доллара и всех называли фудстерами? Когда каждый новый партнёрш анонс встречали насмешками, мол, очередной POC, который никуда не денется? Ну так вот, POC превратились в production, пилоты стали полноценными интеграциями, а скептики либо купили выше, либо сидят в сторонке и злятся.
Это уже не мечты. Это не хайп и не спекуляции на слухах. Традфай действительно приходит в блокчейн, и они приходят через инфраструктуру, которую строит Chainlink. Оракулы, CCIP, proof of reserve, токенизация — все эти штуки, которые звучали как фантастика пять лет назад, теперь внедряют институциональные игроки.
Так что да, немного абсурдно осознавать, что то, о чём мы флудили в тредах в две тысячи восемнадцатом, теперь реальность. Schwab с Chainlink. Добро пожаловать в будущее, которое мы предсказывали.
Источник (4chan /biz/): https://boards.4chan.org/biz/thread/62635983
Подпишись на создателей: https://t.me/linuxexex
boards.4chan.org
/biz/ - Charles Schwab with Chainlink now - Business & Finance - 4chan
Charles Schwab with Chainlink now - "/biz/ - Business & Finance" is 4chan's imageboard for the discussion of business and finance, and cryptocurrencies such as Bitcoin and Dogecoin.
Я думаю стать католиком чтобы я мог без оправданий нацепить кольчугу прыгнуть на лошадь плотву и поехать резать цыганских детей крестовый поход во имя господа
**Лайфхак для терминала: alias и функции, которые сэкономят тебе нервы**
Если ты до сих пор каждый раз набираешь `git status`, `docker ps -a` или `ls -lah` целиком — ты тратишь свою жизнь на ерунду. Время посчитать, сколько секунд в год уходит на одни и те же команды, и осознать масштаб трагедии.
Открывай `.bashrc` или `.zshrc` и пили алиасы. Например:
`alias gs='git status'`
`alias gp='git push'`
`alias dc='docker-compose'`
`alias ll='ls -lah'`
Теперь вместо длинных команд — две буквы. Экономия времени? Да. Но главное — экономия нервов, когда в сотый раз за день не надо вбивать одно и то же.
А если алиасов мало, делай функции. Например, хочешь быстро создавать директорию и сразу в неё заходить:
`mkcd() { mkdir -p "$1" && cd "$1"; }`
Теперь `mkcd project` — и ты уже внутри новой папки. Без лишних движений.
Ещё один удобняк — история команд с поиском. Жми `Ctrl+R` и начинай вбивать часть команды: терминал сам найдёт, что ты запускал раньше. Если пользуешься zsh, поставь плагин `zsh-autosuggestions` — он будет подсказывать команды из истории прямо во время набора. Серая подсказка появляется, жмёшь стрелку вправо — готово.
И последнее: если постоянно подключаешься по SSH к одним и тем же серверам, настрой `~/.ssh/config`:
`Host myserver`
` HostName 192.168.1.100`
` User root`
` Port 22`
Теперь вместо `ssh root@192.168.1.100 -p 22` пишешь просто `ssh myserver`. Красота.
Короче, терминал — это не место для героизма и долбления клавиш. Автоматизируй рутину, и будет тебе счастье. А если кто-то говорит, что алиасы — для слабаков, пусть дальше страдает. Ты-то знаешь, как работать с головой.
Подпишись на создателей: https://t.me/linuxexex
Если ты до сих пор каждый раз набираешь `git status`, `docker ps -a` или `ls -lah` целиком — ты тратишь свою жизнь на ерунду. Время посчитать, сколько секунд в год уходит на одни и те же команды, и осознать масштаб трагедии.
Открывай `.bashrc` или `.zshrc` и пили алиасы. Например:
`alias gs='git status'`
`alias gp='git push'`
`alias dc='docker-compose'`
`alias ll='ls -lah'`
Теперь вместо длинных команд — две буквы. Экономия времени? Да. Но главное — экономия нервов, когда в сотый раз за день не надо вбивать одно и то же.
А если алиасов мало, делай функции. Например, хочешь быстро создавать директорию и сразу в неё заходить:
`mkcd() { mkdir -p "$1" && cd "$1"; }`
Теперь `mkcd project` — и ты уже внутри новой папки. Без лишних движений.
Ещё один удобняк — история команд с поиском. Жми `Ctrl+R` и начинай вбивать часть команды: терминал сам найдёт, что ты запускал раньше. Если пользуешься zsh, поставь плагин `zsh-autosuggestions` — он будет подсказывать команды из истории прямо во время набора. Серая подсказка появляется, жмёшь стрелку вправо — готово.
И последнее: если постоянно подключаешься по SSH к одним и тем же серверам, настрой `~/.ssh/config`:
`Host myserver`
` HostName 192.168.1.100`
` User root`
` Port 22`
Теперь вместо `ssh root@192.168.1.100 -p 22` пишешь просто `ssh myserver`. Красота.
Короче, терминал — это не место для героизма и долбления клавиш. Автоматизируй рутину, и будет тебе счастье. А если кто-то говорит, что алиасы — для слабаков, пусть дальше страдает. Ты-то знаешь, как работать с головой.
Подпишись на создателей: https://t.me/linuxexex
Сегодня расскажу про фичу в bash и zsh, о которой даже бывалые линуксоиды не всегда в курсе — это встроенный стек директорий и команды pushd, popd, dirs.
Все знают cd, но мало кто юзает pushd. А зря. Представь: ты прыгаешь между несколькими директориями в процессе работы. Обычно делаешь cd туда, cd сюда, потом забываешь откуда пришёл и где был. С pushd ты не просто переходишь в новую папку — ты запихиваешь текущую в стек, как блины на тарелку.
Синтаксис тупо простой: pushd /path/to/dir — перешёл в новую директорию, старую запомнил. Потом pushd /another/path — снова перешёл, предыдущую тоже запомнил. Теперь у тебя стопка из директорий. Команда dirs покажет весь стек, где ты был.
А когда нужно вернуться назад — просто popd. Она достаёт последнюю директорию из стека и тебя туда телепортирует. Ещё раз popd — вернулся ещё на шаг назад. Это как undo для навигации по файловой системе, только без всяких костылей.
Плюс можно делать pushd без аргументов — он просто меняет местами две верхние директории в стеке. Удобно, когда гоняешься между двумя папками туда-сюда.
Ещё можно обращаться к элементам стека по номеру: pushd +2 перекинет тебя на третью директорию в списке (нумерация с нуля). dirs -v покажет стек с номерами — сразу видно, куда можно прыгнуть.
Короче, если ты постоянно мечешься между несколькими проектами или папками в рамках одной сессии терминала — pushd и popd сэкономят кучу времени и нервов. Никаких алиасов, никаких скриптов — всё из коробки. Просто почти никто не парится этим пользоваться, потому что cd привычнее. А зря, серьёзно.
Подпишись на создателей: https://t.me/linuxexex
Все знают cd, но мало кто юзает pushd. А зря. Представь: ты прыгаешь между несколькими директориями в процессе работы. Обычно делаешь cd туда, cd сюда, потом забываешь откуда пришёл и где был. С pushd ты не просто переходишь в новую папку — ты запихиваешь текущую в стек, как блины на тарелку.
Синтаксис тупо простой: pushd /path/to/dir — перешёл в новую директорию, старую запомнил. Потом pushd /another/path — снова перешёл, предыдущую тоже запомнил. Теперь у тебя стопка из директорий. Команда dirs покажет весь стек, где ты был.
А когда нужно вернуться назад — просто popd. Она достаёт последнюю директорию из стека и тебя туда телепортирует. Ещё раз popd — вернулся ещё на шаг назад. Это как undo для навигации по файловой системе, только без всяких костылей.
Плюс можно делать pushd без аргументов — он просто меняет местами две верхние директории в стеке. Удобно, когда гоняешься между двумя папками туда-сюда.
Ещё можно обращаться к элементам стека по номеру: pushd +2 перекинет тебя на третью директорию в списке (нумерация с нуля). dirs -v покажет стек с номерами — сразу видно, куда можно прыгнуть.
Короче, если ты постоянно мечешься между несколькими проектами или папками в рамках одной сессии терминала — pushd и popd сэкономят кучу времени и нервов. Никаких алиасов, никаких скриптов — всё из коробки. Просто почти никто не парится этим пользоваться, потому что cd привычнее. А зря, серьёзно.
Подпишись на создателей: https://t.me/linuxexex
В 1992 году Эндрю Таненбаум, создатель Minix, написал Линусу Торвальдсу открытое письмо с заголовком "Linux is obsolete" и объяснил, почему монолитное ядро — это архитектурный мусор из семидесятых, а микроядерная архитектура — единственный путь в будущее.
Линус ответил, что теория это прекрасно, но Linux работает здесь и сейчас, а Minix застрял в учебниках. Таненбаум парировал, что Linux никогда не станет переносимым, что он слишком завязан на x86 и что через пять лет все забудут про эту поделку.
Прошло тридцать лет. Linux работает на всём — от умных лампочек до суперкомпьютеров, держит девяносто процентов серверов в интернете и крутится в каждом Android-телефоне. Minix тоже жив, правда, в виде скрытой прошивки Intel Management Engine, которую никто не просил, но все получили вместе с процессором. Ирония в том, что теперь Minix работает в каждом Intel-чипе с полным доступом к железу, но не как ОС общего назначения, а как невидимый чёрный ящик, который пользователь не контролирует.
Спор Таненбаума и Торвальдса стал классикой. Оба были правы в своих доводах, но победил тот, кто писал код, а не манифесты. Микроядра красивы в теории, монолиты грязны на практике, но работают быстрее и проще. Linux доказал, что иногда pragmatic beats pure, а открытая разработка бьёт академическую элегантность.
История закончилась не победой архитектуры, а победой сообщества. Тысячи разработчиков выбрали не самый чистый дизайн, а тот, в который можно было влезть, починить и запустить прямо сегодня. И это сработало.
Подпишись на создателей: https://t.me/linuxexex
Линус ответил, что теория это прекрасно, но Linux работает здесь и сейчас, а Minix застрял в учебниках. Таненбаум парировал, что Linux никогда не станет переносимым, что он слишком завязан на x86 и что через пять лет все забудут про эту поделку.
Прошло тридцать лет. Linux работает на всём — от умных лампочек до суперкомпьютеров, держит девяносто процентов серверов в интернете и крутится в каждом Android-телефоне. Minix тоже жив, правда, в виде скрытой прошивки Intel Management Engine, которую никто не просил, но все получили вместе с процессором. Ирония в том, что теперь Minix работает в каждом Intel-чипе с полным доступом к железу, но не как ОС общего назначения, а как невидимый чёрный ящик, который пользователь не контролирует.
Спор Таненбаума и Торвальдса стал классикой. Оба были правы в своих доводах, но победил тот, кто писал код, а не манифесты. Микроядра красивы в теории, монолиты грязны на практике, но работают быстрее и проще. Linux доказал, что иногда pragmatic beats pure, а открытая разработка бьёт академическую элегантность.
История закончилась не победой архитектуры, а победой сообщества. Тысячи разработчиков выбрали не самый чистый дизайн, а тот, в который можно было влезть, починить и запустить прямо сегодня. И это сработало.
Подпишись на создателей: https://t.me/linuxexex
Спасите детей. Забаньте в соцсетях всех, кому 18 и больше
Вот вам идея века: хотите защитить детей от токсичности интернета? Забаньте нахрен взрослых. Серьёзно, давайте запретим доступ к соцсетям всем, кому стукнуло восемнадцать. Пусть дети сидят в своих TikTok и Instagram без этих ваших тридцатилетних диванных воинов, политических троллей и прочих экспертов по всему на свете.
Потому что давайте честно: кто устраивает весь этот цирк в комментах? Кто разжигает срачи под каждым постом? Кто несёт конспирологическую дичь и травит людей за каждое слово? Правильно, взрослые. Дети хотя бы танцуют и постят мемы, а вот взрослая аудитория превратила соцсети в помойку, где каждый второй — эксперт по геополитике, вирусологии и воспитанию чужих детей.
Вся эта паника про «защитите детей от интернета» — это проекция. Детям не нужна защита от интернета, им нужна защита от взрослых в интернете. От дядь и тёть, которые не могут просто пролистать пост, не вступив в словесную перепалку. От тех, кто забыл, что можно просто закрыть вкладку и пойти пожить реальной жизнью.
Так что вот вам радикальное решение: всем совершеннолетним — бан. Пусть дети наконец-то спокойно постят свои видосики и селфи без токсичных комментов от людей, у которых ипотека, развод и куча нерешённых проблем. Может, тогда интернет станет чуточку приятнее.
Источник (r/technology): https://www.reddit.com/r/technology/comments/1w2mqms/save_the_children_ban_everyone_age_18_and_older/
Подпишись на создателей: https://t.me/linuxexex
Вот вам идея века: хотите защитить детей от токсичности интернета? Забаньте нахрен взрослых. Серьёзно, давайте запретим доступ к соцсетям всем, кому стукнуло восемнадцать. Пусть дети сидят в своих TikTok и Instagram без этих ваших тридцатилетних диванных воинов, политических троллей и прочих экспертов по всему на свете.
Потому что давайте честно: кто устраивает весь этот цирк в комментах? Кто разжигает срачи под каждым постом? Кто несёт конспирологическую дичь и травит людей за каждое слово? Правильно, взрослые. Дети хотя бы танцуют и постят мемы, а вот взрослая аудитория превратила соцсети в помойку, где каждый второй — эксперт по геополитике, вирусологии и воспитанию чужих детей.
Вся эта паника про «защитите детей от интернета» — это проекция. Детям не нужна защита от интернета, им нужна защита от взрослых в интернете. От дядь и тёть, которые не могут просто пролистать пост, не вступив в словесную перепалку. От тех, кто забыл, что можно просто закрыть вкладку и пойти пожить реальной жизнью.
Так что вот вам радикальное решение: всем совершеннолетним — бан. Пусть дети наконец-то спокойно постят свои видосики и селфи без токсичных комментов от людей, у которых ипотека, развод и куча нерешённых проблем. Может, тогда интернет станет чуточку приятнее.
Источник (r/technology): https://www.reddit.com/r/technology/comments/1w2mqms/save_the_children_ban_everyone_age_18_and_older/
Подпишись на создателей: https://t.me/linuxexex
Reddit
From the technology community on Reddit: Save the children. Ban everyone age 18 and older from social media
Explore this post and more from the technology community
Возьмём простую задачу: поднять веб-сервер с базой, прикрутить SSL и запустить контейнер. Обычная рутина, которую админ делает с закрытыми глазами. А теперь посмотрим, как три популярных дистрибутива превращают это в квест разной степени мучения.
Ubuntu Server. Ставишь nginx из репозитория — получаешь версию полуторагодовалой давности, потому что LTS. Хочешь свежее — добавляй PPA, разбирайся с зависимостями. Docker устанавливается через snap по умолчанию, и это отдельный цирк с правами доступа к папкам. Certbot работает из коробки, это плюс. PostgreSQL тоже ставится нормально, но конфиги раскиданы по трём папкам, и ты пять минут ищешь, где же лежит pg_hba.conf. Зато документация везде, каждый школьник напишет тебе гайд. Для новичка — идеально. Для того, кто хочет контроля — раздражает.
Arch Linux. Ты качаешь последний nginx, последний PostgreSQL, последний Docker. Всё свежее, всё под контролем, конфиги в логичных местах. Ставишь certbot — работает. Настраиваешь systemd-юниты — всё прозрачно. Но если ты не читал вики или пропустил новость о breaking changes в последнем обновлении, можешь словить сюрприз: база не запускается после апгрейда, потому что мажорная версия изменилась, а миграцию надо делать руками. Arch не держит тебя за руку. Он даёт инструменты и говорит: разбирайся сам. Кайф для тех, кто знает, что делает. Ад для тех, кто учится на продакшене.
Debian Stable. Nginx — древний, PostgreSQL — древний, Docker — тоже не первой свежести. Зато всё работает одинаково три года подряд. Поставил, настроил, забыл. Обновления не ломают систему, потому что в репозиториях только то, что прошло тысячу тестов. Certbot ставится, SSL выписывается, контейнеры крутятся. Скучно, надёжно, предсказуемо. Если тебе нужна стабильность и ты не гонишься за последними фичами — это твой выбор. Если хочешь поиграть с новыми возможностями — будешь собирать из исходников или тащить сторонние репозитории.
Все три справятся с задачей. Вопрос в том, сколько времени ты потратишь на борьбу с упаковщиками, документацией и костылями. Ubuntu даст готовое решение с компромиссами. Arch даст свободу и ответственность. Debian даст покой. Выбирай по темпераменту.
Подпишись на создателей: https://t.me/linuxexex
Ubuntu Server. Ставишь nginx из репозитория — получаешь версию полуторагодовалой давности, потому что LTS. Хочешь свежее — добавляй PPA, разбирайся с зависимостями. Docker устанавливается через snap по умолчанию, и это отдельный цирк с правами доступа к папкам. Certbot работает из коробки, это плюс. PostgreSQL тоже ставится нормально, но конфиги раскиданы по трём папкам, и ты пять минут ищешь, где же лежит pg_hba.conf. Зато документация везде, каждый школьник напишет тебе гайд. Для новичка — идеально. Для того, кто хочет контроля — раздражает.
Arch Linux. Ты качаешь последний nginx, последний PostgreSQL, последний Docker. Всё свежее, всё под контролем, конфиги в логичных местах. Ставишь certbot — работает. Настраиваешь systemd-юниты — всё прозрачно. Но если ты не читал вики или пропустил новость о breaking changes в последнем обновлении, можешь словить сюрприз: база не запускается после апгрейда, потому что мажорная версия изменилась, а миграцию надо делать руками. Arch не держит тебя за руку. Он даёт инструменты и говорит: разбирайся сам. Кайф для тех, кто знает, что делает. Ад для тех, кто учится на продакшене.
Debian Stable. Nginx — древний, PostgreSQL — древний, Docker — тоже не первой свежести. Зато всё работает одинаково три года подряд. Поставил, настроил, забыл. Обновления не ломают систему, потому что в репозиториях только то, что прошло тысячу тестов. Certbot ставится, SSL выписывается, контейнеры крутятся. Скучно, надёжно, предсказуемо. Если тебе нужна стабильность и ты не гонишься за последними фичами — это твой выбор. Если хочешь поиграть с новыми возможностями — будешь собирать из исходников или тащить сторонние репозитории.
Все три справятся с задачей. Вопрос в том, сколько времени ты потратишь на борьбу с упаковщиками, документацией и костылями. Ubuntu даст готовое решение с компромиссами. Arch даст свободу и ответственность. Debian даст покой. Выбирай по темпераменту.
Подпишись на создателей: https://t.me/linuxexex
Вот тебе факт, который я обожаю.
В 1992 году Эндрю Таненбаум, автор учебной оси Minix, публично обозвал Linux устаревшей поделкой. Написал в ньюсгруппе comp.os.minix буквально следующее: ядро с монолитной архитектурой — это фундаментальная ошибка, Linux умрёт через пять лет, потому что микроядра — это будущее.
Торвальдс ответил ему в том же треде. Без извинений, без дипломатии. Сказал примерно так: да, монолитное ядро — это устаревший подход, но моё устаревшее ядро работает прямо сейчас на реальном железе, а твоё правильное микроядро — это учебный проект.
Спор вошёл в историю как Tanenbaum-Torvalds debate. Его до сих пор читают на первых курсах CS как пример того, как можно быть абсолютно правым теоретически и абсолютно проигравшим практически.
Minix сегодня помнят в основном потому, что Intel зачем-то запихала его в Management Engine — и это отдельная жуткая история о том, как проприетарный Minix работает на твоём процессоре прямо сейчас, и ты ни черта не можешь с этим сделать.
А Linux крутит серверы, смартфоны, биржи, космические аппараты и твой роутер.
Таненбаум был умнее. Торвальдс оказался прав. Разница между академиком и хакером — именно в этом зазоре.
Подпишись на создателей: https://t.me/linuxexex
В 1992 году Эндрю Таненбаум, автор учебной оси Minix, публично обозвал Linux устаревшей поделкой. Написал в ньюсгруппе comp.os.minix буквально следующее: ядро с монолитной архитектурой — это фундаментальная ошибка, Linux умрёт через пять лет, потому что микроядра — это будущее.
Торвальдс ответил ему в том же треде. Без извинений, без дипломатии. Сказал примерно так: да, монолитное ядро — это устаревший подход, но моё устаревшее ядро работает прямо сейчас на реальном железе, а твоё правильное микроядро — это учебный проект.
Спор вошёл в историю как Tanenbaum-Torvalds debate. Его до сих пор читают на первых курсах CS как пример того, как можно быть абсолютно правым теоретически и абсолютно проигравшим практически.
Minix сегодня помнят в основном потому, что Intel зачем-то запихала его в Management Engine — и это отдельная жуткая история о том, как проприетарный Minix работает на твоём процессоре прямо сейчас, и ты ни черта не можешь с этим сделать.
А Linux крутит серверы, смартфоны, биржи, космические аппараты и твой роутер.
Таненбаум был умнее. Торвальдс оказался прав. Разница между академиком и хакером — именно в этом зазоре.
Подпишись на создателей: https://t.me/linuxexex
QA Thread #24 - грезы о найме
Двадцать четвертый ультимативный тред посвященный самой лучшей и ненапряжной работе в IT - Обеспечению качества / Quality Assurance.
Здесь мы холиварим на тему фреймворков, показываем друг другу свои PageObject, AppActions и фантазируем о позициях SDETa и $8K зарплате.
Итак, пока 90% вкатунов пробуют вкатиться в макакинг и конкурируют там с задротами-олимпиадниками, учат каждый день новые фреймворки и выгорают, мы спокойно (твердо и четко) конкурируем со вчерашними ручными тестировщиками, Наташками и Михалычами, которые в тестирование пришли с кассы.
Пока яйцеголовые в свитерах ломают свой мозг над Data Science и Machine Learning, мы же, со знанием языка на _достаточном_ для прохождения собеседований уровне, получаем свои 300кнаносек и смеемся.
Милости просим к нашему шалашу!
ТЕСТОВЫЙ FAQ:
В: Как вкатиться?
О: Начни с теории тестирования и подкрепляй практикой, тестируя двачи.
Альтернативное мнение: уже год никак, 50000 человек в среднем на позицию, отсеивают по тех.вышке, требуют знания ЯП, ООП, фреймворков, контейнеров, CI/CD и OSI...
В: Какой ЯП выбрать?
О: Один из: Java, Python, JS, C# (изучи кол-во вакансий на ЯП и Фреймворк). Всех их объединяет такое понятие как ООП и паттерн PageObject. После изучения теории тестирования можешь приступать к его изучению.
В: Я изучил теорию тестирования, ООП, выбрал ЯП и изучил его тоже. Что дальше?
О: Дальше тебе необходимо разобраться с фреймворками, с помощью которых создаются автотесты. Для каждого ЯП он разный: Selenium, Selenidе, Playwright, Cypress.
В: Я сделал все вышеописанное, что делать дальше?
О: Изучи Test Design Patterns. Начни с Page Object Model. Поиграйся с CI/CD, попробуй поднять Jenkins и заранить там свои тесты. Прикрути Allure к своему тестовому фреймворку
На этом пока что все.
Насчет шапки пишите пожелания и предложения, в будущих тредах добавлю в шапку.
Для ручников гайд: https://pastebin.com/6p6gmxNv https://pastebin.com/6p6gmxNv (сыроватый, обновлений не ждать)
СПИСОК ПОЛЕЗНЫХ МАТЕРИАЛОВ:
Ручное тестирование:
- Книга «Тестирование программного обеспечения. Базовый курс.» - https://svyatoslav.biz/software_testing_book/ https://svyatoslav.biz/software_testing_book/
- Назина - тестирование (смешные картиночки и реальное использование йоба-практик прилагаются)
- Курсы "ITVDN - QA"
- Конспекты Яндекс.Практикум - Тестирование (сами курсы на водной основе и не рекомендуются)
- База знаний https://github.com/VladislavEremeev/QA_bible https://github.com/VladislavEremeev/QA_bible
- Вопрос-ответ на английском https://www.algrim.co/237-qa-engineer-interview-questions https://www.algrim.co/237-qa-engineer-interview-questions
- Вопросы из фаанга https://github.com/annivanova1992/faang-qa-interview https://github.com/annivanova1992/faang-qa-interview
- курсы по теории https://stepik.org/course/118842/syllabus https://stepik.org/course/118842/syllabus (отзыв анона (?): по теории местами неплохо, местами полная хуйня, но в качестве шпаргалки нормально)
Автоматизированное тестирование:
- QA.GURU (см. торренты и их канал на ютубе)
- Автоматизация на питоне https://github.com/berpress/qa-python-map https://github.com/berpress/qa-python-map
- курсы Python: Pytest, Selenium…
Источник (2ch /pr/): https://2ch.org/pr/res/3628723.html
Подпишись на создателей: https://t.me/linuxexex
Двадцать четвертый ультимативный тред посвященный самой лучшей и ненапряжной работе в IT - Обеспечению качества / Quality Assurance.
Здесь мы холиварим на тему фреймворков, показываем друг другу свои PageObject, AppActions и фантазируем о позициях SDETa и $8K зарплате.
Итак, пока 90% вкатунов пробуют вкатиться в макакинг и конкурируют там с задротами-олимпиадниками, учат каждый день новые фреймворки и выгорают, мы спокойно (твердо и четко) конкурируем со вчерашними ручными тестировщиками, Наташками и Михалычами, которые в тестирование пришли с кассы.
Пока яйцеголовые в свитерах ломают свой мозг над Data Science и Machine Learning, мы же, со знанием языка на _достаточном_ для прохождения собеседований уровне, получаем свои 300кнаносек и смеемся.
Милости просим к нашему шалашу!
ТЕСТОВЫЙ FAQ:
В: Как вкатиться?
О: Начни с теории тестирования и подкрепляй практикой, тестируя двачи.
Альтернативное мнение: уже год никак, 50000 человек в среднем на позицию, отсеивают по тех.вышке, требуют знания ЯП, ООП, фреймворков, контейнеров, CI/CD и OSI...
В: Какой ЯП выбрать?
О: Один из: Java, Python, JS, C# (изучи кол-во вакансий на ЯП и Фреймворк). Всех их объединяет такое понятие как ООП и паттерн PageObject. После изучения теории тестирования можешь приступать к его изучению.
В: Я изучил теорию тестирования, ООП, выбрал ЯП и изучил его тоже. Что дальше?
О: Дальше тебе необходимо разобраться с фреймворками, с помощью которых создаются автотесты. Для каждого ЯП он разный: Selenium, Selenidе, Playwright, Cypress.
В: Я сделал все вышеописанное, что делать дальше?
О: Изучи Test Design Patterns. Начни с Page Object Model. Поиграйся с CI/CD, попробуй поднять Jenkins и заранить там свои тесты. Прикрути Allure к своему тестовому фреймворку
На этом пока что все.
Насчет шапки пишите пожелания и предложения, в будущих тредах добавлю в шапку.
Для ручников гайд: https://pastebin.com/6p6gmxNv https://pastebin.com/6p6gmxNv (сыроватый, обновлений не ждать)
СПИСОК ПОЛЕЗНЫХ МАТЕРИАЛОВ:
Ручное тестирование:
- Книга «Тестирование программного обеспечения. Базовый курс.» - https://svyatoslav.biz/software_testing_book/ https://svyatoslav.biz/software_testing_book/
- Назина - тестирование (смешные картиночки и реальное использование йоба-практик прилагаются)
- Курсы "ITVDN - QA"
- Конспекты Яндекс.Практикум - Тестирование (сами курсы на водной основе и не рекомендуются)
- База знаний https://github.com/VladislavEremeev/QA_bible https://github.com/VladislavEremeev/QA_bible
- Вопрос-ответ на английском https://www.algrim.co/237-qa-engineer-interview-questions https://www.algrim.co/237-qa-engineer-interview-questions
- Вопросы из фаанга https://github.com/annivanova1992/faang-qa-interview https://github.com/annivanova1992/faang-qa-interview
- курсы по теории https://stepik.org/course/118842/syllabus https://stepik.org/course/118842/syllabus (отзыв анона (?): по теории местами неплохо, местами полная хуйня, но в качестве шпаргалки нормально)
Автоматизированное тестирование:
- QA.GURU (см. торренты и их канал на ютубе)
- Автоматизация на питоне https://github.com/berpress/qa-python-map https://github.com/berpress/qa-python-map
- курсы Python: Pytest, Selenium…
Источник (2ch /pr/): https://2ch.org/pr/res/3628723.html
Подпишись на создателей: https://t.me/linuxexex
Pastebin
QA starter's guide - 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.
Окей, слушайте внимательно, потому что это одна из тех штук, которые меняют жизнь, но большинство узнаёт о ней случайно через десять лет работы в терминале.
В bash и zsh есть так называемые фигурные скобки для раскрытия — brace expansion. Все про них слышали, типа mkdir {a,b,c}. Это базово. Но мало кто знает, что это работает с диапазонами и что это можно комбинировать в цепочки настолько безумно, что голова едет.
Вот пример. Хочешь создать структуру директорий для проекта за одну строку:
mkdir -p project/{src,tests,docs}/{v1,v2,v3}
Это создаст девять папок. Одна строка. Никакого скрипта, никакого цикла.
Но вот где реально взрывает мозг. Диапазоны с нулями:
touch log_{01..31}.txt
Создаст log_01.txt, log_02.txt и так до log_31.txt. С правильными нулями спереди. Без printf, без seq, без вообще ничего.
А теперь самое мясо. Это работает с буквами:
echo {a..z}
Выведет весь алфавит через пробел. Хочешь каждую букву как отдельный аргумент команде? Вот оно.
Можно задать шаг:
echo {0..100..10}
Выведет 0 10 20 30 и так далее до 100.
И всё это можно вложить друг в друга:
echo {a,b}{1..3}
Получишь a1 a2 a3 b1 b2 b3.
Почему это важно? Потому что половина людей пишет цикл for там, где можно было написать одну строку. Или таскает python-скрипт ради создания структуры папок. Или вообще делает это руками, кликая в файловом менеджере как какой-то пользователь Windows 2003 года.
Brace expansion работает без подстановки переменных, без glob-матчинга по файловой системе, прямо на этапе парсинга команды. Это быстро, предсказуемо и не ломается от странных имён файлов.
Запомни. Используй. Выглядишь умнее коллег мгновенно.
Подпишись на создателей: https://t.me/linuxexex
В bash и zsh есть так называемые фигурные скобки для раскрытия — brace expansion. Все про них слышали, типа mkdir {a,b,c}. Это базово. Но мало кто знает, что это работает с диапазонами и что это можно комбинировать в цепочки настолько безумно, что голова едет.
Вот пример. Хочешь создать структуру директорий для проекта за одну строку:
mkdir -p project/{src,tests,docs}/{v1,v2,v3}
Это создаст девять папок. Одна строка. Никакого скрипта, никакого цикла.
Но вот где реально взрывает мозг. Диапазоны с нулями:
touch log_{01..31}.txt
Создаст log_01.txt, log_02.txt и так до log_31.txt. С правильными нулями спереди. Без printf, без seq, без вообще ничего.
А теперь самое мясо. Это работает с буквами:
echo {a..z}
Выведет весь алфавит через пробел. Хочешь каждую букву как отдельный аргумент команде? Вот оно.
Можно задать шаг:
echo {0..100..10}
Выведет 0 10 20 30 и так далее до 100.
И всё это можно вложить друг в друга:
echo {a,b}{1..3}
Получишь a1 a2 a3 b1 b2 b3.
Почему это важно? Потому что половина людей пишет цикл for там, где можно было написать одну строку. Или таскает python-скрипт ради создания структуры папок. Или вообще делает это руками, кликая в файловом менеджере как какой-то пользователь Windows 2003 года.
Brace expansion работает без подстановки переменных, без glob-матчинга по файловой системе, прямо на этапе парсинга команды. Это быстро, предсказуемо и не ломается от странных имён файлов.
Запомни. Используй. Выглядишь умнее коллег мгновенно.
Подпишись на создателей: https://t.me/linuxexex
Короче, расскажу про одну вещь, которую я использую каждый день и не понимаю, как без неё жил раньше.
Ctrl+R в bash и zsh. Обратный поиск по истории команд.
Нажимаешь Ctrl+R, начинаешь вводить что-то из той команды, которую вводил три часа назад, и терминал сам вытаскивает её из истории. Не надо листать стрелкой вверх сто раз, не надо вспоминать точный синтаксис, не надо лезть в ~/.bash_history руками.
Пример из жизни: запускал какой-то длинный docker run с кучей флагов, портов и переменных окружения. Понадобилось снова. Нажал Ctrl+R, ввёл "docker run", нашёл, запустил. Секунда.
Если первый результат не тот, жмёшь Ctrl+R ещё раз и идёшь глубже по истории. Нашёл нужное, Enter или стрелка вправо чтобы отредактировать перед запуском.
Но по умолчанию история в bash хранит 500-1000 строк и дублирует одинаковые команды. Это надо починить раз и навсегда. Кидаешь в ~/.bashrc или ~/.zshrc:
HISTSIZE=100000
HISTFILESIZE=200000
HISTCONTROL=ignoredups:erasedups
Первые две строки растягивают историю до нормальных размеров. Третья убирает дубликаты, чтобы Ctrl+R не показывал одно и то же ls десять раз подряд.
Перезапустил shell, и теперь у тебя поиск по годам команд, а не по вчерашнему дню.
Всё. Лайфхак копеечный, но время экономит реально. Пользуйся.
Подпишись на создателей: https://t.me/linuxexex
Ctrl+R в bash и zsh. Обратный поиск по истории команд.
Нажимаешь Ctrl+R, начинаешь вводить что-то из той команды, которую вводил три часа назад, и терминал сам вытаскивает её из истории. Не надо листать стрелкой вверх сто раз, не надо вспоминать точный синтаксис, не надо лезть в ~/.bash_history руками.
Пример из жизни: запускал какой-то длинный docker run с кучей флагов, портов и переменных окружения. Понадобилось снова. Нажал Ctrl+R, ввёл "docker run", нашёл, запустил. Секунда.
Если первый результат не тот, жмёшь Ctrl+R ещё раз и идёшь глубже по истории. Нашёл нужное, Enter или стрелка вправо чтобы отредактировать перед запуском.
Но по умолчанию история в bash хранит 500-1000 строк и дублирует одинаковые команды. Это надо починить раз и навсегда. Кидаешь в ~/.bashrc или ~/.zshrc:
HISTSIZE=100000
HISTFILESIZE=200000
HISTCONTROL=ignoredups:erasedups
Первые две строки растягивают историю до нормальных размеров. Третья убирает дубликаты, чтобы Ctrl+R не показывал одно и то же ls десять раз подряд.
Перезапустил shell, и теперь у тебя поиск по годам команд, а не по вчерашнему дню.
Всё. Лайфхак копеечный, но время экономит реально. Пользуйся.
Подпишись на создателей: https://t.me/linuxexex
Слушай, давай по-честному, потому что большинство линуксоидов живут в иллюзии, что раз они не на Windows, то им бояться нечего.
Это опасная херня.
Конкретный совет, который реально работает: не запускай скрипты из интернета через curl | bash. Вообще никогда. Даже если это официальная инструкция с красивого сайта с SSL-сертификатом и звёздочками на GitHub. Ты буквально говоришь незнакомцу из интернета: "на, держи рут на моей машине, делай что хочешь". Это не установка софта, это цифровое самоубийство с красивым терминальным интерфейсом.
Что делать вместо этого: скачай скрипт отдельно, открой его в редакторе, прочитай что там написано. Да, весь. Да, это занимает время. Нет, это не паранойя, это элементарная гигиена.
Бонусный совет пока ты здесь: проверь, какие сервисы у тебя висят наружу. Просто набери ss -tlnp или netstat -tulnp и посмотри что слушает на 0.0.0.0. Иногда там обнаруживается такое, что волосы встают дыбом. Особенно если ты когда-то запускал docker и думал, что файрвол тебя прикроет. Docker и iptables до сих пор живут в параллельных реальностях и ни разу не разговаривали.
Линукс не делает тебя неуязвимым. Он просто даёт тебе инструменты, чтобы не быть идиотом. Пользуйся ими.
Подпишись на создателей: https://t.me/linuxexex
Это опасная херня.
Конкретный совет, который реально работает: не запускай скрипты из интернета через curl | bash. Вообще никогда. Даже если это официальная инструкция с красивого сайта с SSL-сертификатом и звёздочками на GitHub. Ты буквально говоришь незнакомцу из интернета: "на, держи рут на моей машине, делай что хочешь". Это не установка софта, это цифровое самоубийство с красивым терминальным интерфейсом.
Что делать вместо этого: скачай скрипт отдельно, открой его в редакторе, прочитай что там написано. Да, весь. Да, это занимает время. Нет, это не паранойя, это элементарная гигиена.
Бонусный совет пока ты здесь: проверь, какие сервисы у тебя висят наружу. Просто набери ss -tlnp или netstat -tulnp и посмотри что слушает на 0.0.0.0. Иногда там обнаруживается такое, что волосы встают дыбом. Особенно если ты когда-то запускал docker и думал, что файрвол тебя прикроет. Docker и iptables до сих пор живут в параллельных реальностях и ни разу не разговаривали.
Линукс не делает тебя неуязвимым. Он просто даёт тебе инструменты, чтобы не быть идиотом. Пользуйся ими.
Подпишись на создателей: https://t.me/linuxexex
Украина продолжает лишаться складских помещений
Зато Васе из Томска носки идут на день дольше.
МО РФ уже седьмые сутки подряд продолжает уничтожать цели по всей Украине
За сегодня были уничтожены склады алкогольных компаний OKWINE и Wine Hunters в Киеве, а также склад мороженного "Ласунка" в Днепропетровске. Также под удар в Киеве попало здание университета пищевой промышленности
Кроме того удар попал склад американской компании FedEX в Киеве, являющейся одной из крупнейшей в мире по экспресс доставке
https://www.rbc.ua/ukr/news/sklad-okwine-ta-wine-hunters-vdruge-zruynovano-1788352776.html https://www.rbc.ua/ukr/news/sklad-okwine-ta-wine-hunters-vdruge-zruynovano-1788352776.html
https://caliber.az/post/rossiya-unichtozhila-sklad-proizvoditelya-morozhenogo-lasunka https://caliber.az/post/rossiya-unichtozhila-sklad-proizvoditelya-morozhenogo-lasunka
https://forbes.ua/ru/news/rosiyskiy-obstril-znishchiv-noviy-tsentralniy-sklad-okwine-ta-wine-hunters-02092026-41668 https://forbes.ua/ru/news/rosiyskiy-obstril-znishchiv-noviy-tsentralniy-sklad-okwine-ta-wine-hunters-02092026-41668
Источник (2ch /news/): https://2ch.org/news/res/19787047.html
Подпишись на создателей: https://t.me/linuxexex
Зато Васе из Томска носки идут на день дольше.
МО РФ уже седьмые сутки подряд продолжает уничтожать цели по всей Украине
За сегодня были уничтожены склады алкогольных компаний OKWINE и Wine Hunters в Киеве, а также склад мороженного "Ласунка" в Днепропетровске. Также под удар в Киеве попало здание университета пищевой промышленности
Кроме того удар попал склад американской компании FedEX в Киеве, являющейся одной из крупнейшей в мире по экспресс доставке
https://www.rbc.ua/ukr/news/sklad-okwine-ta-wine-hunters-vdruge-zruynovano-1788352776.html https://www.rbc.ua/ukr/news/sklad-okwine-ta-wine-hunters-vdruge-zruynovano-1788352776.html
https://caliber.az/post/rossiya-unichtozhila-sklad-proizvoditelya-morozhenogo-lasunka https://caliber.az/post/rossiya-unichtozhila-sklad-proizvoditelya-morozhenogo-lasunka
https://forbes.ua/ru/news/rosiyskiy-obstril-znishchiv-noviy-tsentralniy-sklad-okwine-ta-wine-hunters-02092026-41668 https://forbes.ua/ru/news/rosiyskiy-obstril-znishchiv-noviy-tsentralniy-sklad-okwine-ta-wine-hunters-02092026-41668
Источник (2ch /news/): https://2ch.org/news/res/19787047.html
Подпишись на создателей: https://t.me/linuxexex
РБК-Україна
Склад OKWINE и Wine Hunters во второй раз разрушен из-за атаки РФ
Подробнее читайте на сайте
Окей, слушайте про фичу, которую большинство из вас не знает, а зря.
В bash и zsh есть история команд с поиском по паттерну. Не тот убогий Ctrl+R, который ищет первое совпадение и требует тыкать снова и снова. Речь про другое.
Набираешь начало команды, например:
git
И жмёшь стрелку вверх. Без всяких настроек это листает всю историю подряд. Но если добавить в ~/.inputrc (bash) две строки:
"\e[A": history-search-backward
"\e[B": history-search-forward
Или в zsh в ~/.zshrc:
bindkey "^[[A" history-beginning-search-backward
bindkey "^[[B" history-beginning-search-forward
То стрелка вверх начнёт листать только те команды, которые начинаются с того, что ты уже набрал. Написал git, жмёшь вверх, и тебе выдаёт только git push, git commit, git rebase, всё что было с git. Никакой левой хуйни из истории.
Это меняет работу в терминале на порядок. Ты больше не листаешь двести строк в поисках той команды с флагами, которую вводил три дня назад. Просто пишешь первые буквы и стрелкой вытаскиваешь нужное.
В zsh есть ещё вариант через плагин history-substring-search, который ищет вхождение в любом месте строки, не только в начале. Но базовый вариант с beginning-search уже решает 90 процентов боли.
Это не rocket science, это не новая технология. Это конфигурация, которая существует сто лет, но про неё почти никто не говорит, потому что все заняты настройкой темок в oh-my-zsh и стрелочками в промпте.
Попробуй. Потом скажешь спасибо.
Подпишись на создателей: https://t.me/linuxexex
В bash и zsh есть история команд с поиском по паттерну. Не тот убогий Ctrl+R, который ищет первое совпадение и требует тыкать снова и снова. Речь про другое.
Набираешь начало команды, например:
git
И жмёшь стрелку вверх. Без всяких настроек это листает всю историю подряд. Но если добавить в ~/.inputrc (bash) две строки:
"\e[A": history-search-backward
"\e[B": history-search-forward
Или в zsh в ~/.zshrc:
bindkey "^[[A" history-beginning-search-backward
bindkey "^[[B" history-beginning-search-forward
То стрелка вверх начнёт листать только те команды, которые начинаются с того, что ты уже набрал. Написал git, жмёшь вверх, и тебе выдаёт только git push, git commit, git rebase, всё что было с git. Никакой левой хуйни из истории.
Это меняет работу в терминале на порядок. Ты больше не листаешь двести строк в поисках той команды с флагами, которую вводил три дня назад. Просто пишешь первые буквы и стрелкой вытаскиваешь нужное.
В zsh есть ещё вариант через плагин history-substring-search, который ищет вхождение в любом месте строки, не только в начале. Но базовый вариант с beginning-search уже решает 90 процентов боли.
Это не rocket science, это не новая технология. Это конфигурация, которая существует сто лет, но про неё почти никто не говорит, потому что все заняты настройкой темок в oh-my-zsh и стрелочками в промпте.
Попробуй. Потом скажешь спасибо.
Подпишись на создателей: https://t.me/linuxexex
Мало кто знает, но в 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