PewDiePie-технарь в деле 🤯
PewDiePie завёл GitHub и выкатил свои dotfiles для Arch (Hyprland). Оконный менеджер прям хорошо выглядит, смахивает на fallout.
README проекта встречает нас надписью «Добро пожаловать, командир» (почему-то на русском).
Короч, поздравляем его с переходом на новую ступень эволюции. Хочу от него курсы по системной разработке🗣
Репозиторий: pewdiepie-archdaemon/dionysus
LinuxCamp | #news #memes
PewDiePie завёл GitHub и выкатил свои dotfiles для Arch (Hyprland). Оконный менеджер прям хорошо выглядит, смахивает на fallout.
README проекта встречает нас надписью «Добро пожаловать, командир» (почему-то на русском).
Короч, поздравляем его с переходом на новую ступень эволюции. Хочу от него курсы по системной разработке
Репозиторий: pewdiepie-archdaemon/dionysus
LinuxCamp | #news #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41❤12👍10🤪4❤🔥1
Тест скорости сети одной командой
Запуск без установки:
Иногда нужно быстро проверить интернет, но нет желания ставить отдельные пакеты. В Linux можно сделать speedtest одной командой:
Команда скачает Python-скрипт speedtest-cli и тут же запустит его без установки. На выходе будет привычный результат с ping, download и upload. Для работы нужен установленный python3. Если его нет:
Установка для постоянного использования:
Если планируете пользоваться регулярно, то удобнее поставить сам speedtest-cli:
После этого достаточно просто выполнить команду:
LinuxCamp | #utils #microhelp
Запуск без установки:
Иногда нужно быстро проверить интернет, но нет желания ставить отдельные пакеты. В Linux можно сделать speedtest одной командой:
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
Команда скачает Python-скрипт speedtest-cli и тут же запустит его без установки. На выходе будет привычный результат с ping, download и upload. Для работы нужен установленный python3. Если его нет:
sudo apt install python3
Установка для постоянного использования:
Если планируете пользоваться регулярно, то удобнее поставить сам speedtest-cli:
sudo apt install speedtest-cli
После этого достаточно просто выполнить команду:
speedtest
LinuxCamp | #utils #microhelp
😁22👍15🔥7❤🔥2❤1🤝1
htop: фишки, о которых часто забывают
О htop знают практически все пользователи линухи. Его воспринимают как "красивый top", а для каких-то систем она вообще предустановлена по умолчанию. Но всеми возможностями пользуются редко, либо вообще не в курсе о них, хотя они реально могут ускорять работу.
Сортировка и дерево процессов:
Сортировку процессов можно переключать на лету. Часто по умолчанию htop показывает нагрузку по CPU, но нажми F6 - и список можно отсортировать по памяти, времени жизни, приоритету или IO. Это удобно, если нужно понять, кто именно грузит систему, не только процессор.
Есть режим дерева процессов. Нажми F5, и все процессы выстроятся в иерархию с отступами, где видно, кто чей родитель. Это помогает, например, при отладке сервисов или контейнеров, когда нужно быстро увидеть, какой процесс кого породил.
Поиск, приоритеты и завершение:
Поиск по процессам тоже встроен. Просто нажми / и введи часть имени процесса. Найденные совпадения будут подсвечены. Это быстрее, чем прокручивать сотни строк глазами.
Можно менять приоритет процессов прямо из интерфейса. Выбираешь процесс стрелками, нажимаешь F7/F8 и меняешь nice-уровень. Таким образом можно «успокоить» прожорливую задачу без выхода в отдельные команды.
Если нужно убить процесс, не обязательно выходить и писать kill. Выбираешь его и нажимаешь F9. Htop спросит, каким сигналом завершить.
Дополнительные метрики:
Есть и скрытые метрики. Через F2 открывается меню настроек, где можно включить показ IO по процессам, swap, контекстные переключения, page faults. Htop сразу отобразит эти данные в колонках.
Подводный момент: htop показывает данные только в момент запуска, он не хранит историю и не строит долгосрочных графиков. Поэтому если проблему нужно отлавливать во времени, лучше использовать atop или glances.
Вывод:
htop - это не просто «цветной top», а мощный инструмент: сортировка, дерево процессов, поиск, изменение приоритетов, завершение задач и гибкая настройка колонок.
LinuxCamp | #utils
О htop знают практически все пользователи линухи. Его воспринимают как "красивый top", а для каких-то систем она вообще предустановлена по умолчанию. Но всеми возможностями пользуются редко, либо вообще не в курсе о них, хотя они реально могут ускорять работу.
Сортировка и дерево процессов:
Сортировку процессов можно переключать на лету. Часто по умолчанию htop показывает нагрузку по CPU, но нажми F6 - и список можно отсортировать по памяти, времени жизни, приоритету или IO. Это удобно, если нужно понять, кто именно грузит систему, не только процессор.
htop
# F6 → выбрать Mem% или TIME+
Есть режим дерева процессов. Нажми F5, и все процессы выстроятся в иерархию с отступами, где видно, кто чей родитель. Это помогает, например, при отладке сервисов или контейнеров, когда нужно быстро увидеть, какой процесс кого породил.
htop
# F5 → Tree
Поиск, приоритеты и завершение:
Поиск по процессам тоже встроен. Просто нажми / и введи часть имени процесса. Найденные совпадения будут подсвечены. Это быстрее, чем прокручивать сотни строк глазами.
htop
# /nginx
Можно менять приоритет процессов прямо из интерфейса. Выбираешь процесс стрелками, нажимаешь F7/F8 и меняешь nice-уровень. Таким образом можно «успокоить» прожорливую задачу без выхода в отдельные команды.
htop
# стрелками выбрать процесс
# F7 - снизить nice, F8 - повысить
Если нужно убить процесс, не обязательно выходить и писать kill. Выбираешь его и нажимаешь F9. Htop спросит, каким сигналом завершить.
htop
# стрелками выбрать процесс
# F9 → SIGTERM или SIGKILL
Дополнительные метрики:
Есть и скрытые метрики. Через F2 открывается меню настроек, где можно включить показ IO по процессам, swap, контекстные переключения, page faults. Htop сразу отобразит эти данные в колонках.
htop
# F2 → Columns → выбрать IO_read, IO_write, MajFLT
Подводный момент: htop показывает данные только в момент запуска, он не хранит историю и не строит долгосрочных графиков. Поэтому если проблему нужно отлавливать во времени, лучше использовать atop или glances.
Вывод:
htop - это не просто «цветной top», а мощный инструмент: сортировка, дерево процессов, поиск, изменение приоритетов, завершение задач и гибкая настройка колонок.
LinuxCamp | #utils
❤40👍28🔥11
Исправление ошибок в консоли одной командой
Когда часто работаешь в консоли постоянно возникают какие-то мелкие проблемы: опечатался в команде, забыл sudo, не тот флаг или пакет, и снова приходится вводить всё заново.
Решение:
Существует шикарный инструмент - TheFuck! Он автоматически исправляет ошибки в предыдущей команде.
Установка:
Debian/Ubuntu:
Arch:
Чтобы активировать добавьте в ~/.bashrc или ~/.zshrc:
Использование:
После этого можно использовать, теперь, если вы ошиблись при вводе команды, достаточно набрать:
И утилита автоматически предложит правильный вариант.
Важно!
Иногда thefuck может предложить неожиданное исправление, поэтому полезно следить за тем, что именно он собирается выполнить :)
LinuxCamp | #utils
Когда часто работаешь в консоли постоянно возникают какие-то мелкие проблемы: опечатался в команде, забыл sudo, не тот флаг или пакет, и снова приходится вводить всё заново.
Решение:
Существует шикарный инструмент - TheFuck! Он автоматически исправляет ошибки в предыдущей команде.
Установка:
Debian/Ubuntu:
sudo apt install python3-dev python3-pip
pip3 install thefuck --user
Arch:
yay -S thefuck
Чтобы активировать добавьте в ~/.bashrc или ~/.zshrc:
echo 'eval $(thefuck --alias)' >> ~/.bashrc
source ~/.bashrc
Использование:
После этого можно использовать, теперь, если вы ошиблись при вводе команды, достаточно набрать:
fuck
И утилита автоматически предложит правильный вариант.
Важно!
Иногда thefuck может предложить неожиданное исправление, поэтому полезно следить за тем, что именно он собирается выполнить :)
LinuxCamp | #utils
❤18😁14🔥11⚡5
Современный ls: exa / eza
Когда-то появился инструмент exa - красивая альтернатива ls. С недавних пор основной форк называется eza. Оба делают одно и то же, просто eza активнее поддерживается и именно он есть в новых Ubuntu/Debian.
Что умеет:
- Красиво подсвечивает права, владельцев, даты.
- Показывает дерево директорий.
- Встраивает git-статусы (-M modified, -N new, -- unchanged).
- Поддерживает иконки (если шрифт в терминале позволяет).
Установка:
(в старых системах пакет может называться exa)
Мастхэв команды:
Комбинированный вариант (можно использовать как алиас вместо ls):
Вывод:
eza - это та же простая команда для просмотра файлов, но в современном исполнении. Установка занимает секунды, а ощущение, что терминал стал живее и дружелюбнее - останется надолго. Если привыкли к ls, попробуйте заменить его алиасом на eza и, скорее всего, уже не захотите возвращаться назад.
LinuxCamp | #utils
Когда-то появился инструмент exa - красивая альтернатива ls. С недавних пор основной форк называется eza. Оба делают одно и то же, просто eza активнее поддерживается и именно он есть в новых Ubuntu/Debian.
Что умеет:
- Красиво подсвечивает права, владельцев, даты.
- Показывает дерево директорий.
- Встраивает git-статусы (-M modified, -N new, -- unchanged).
- Поддерживает иконки (если шрифт в терминале позволяет).
Установка:
sudo apt install eza(в старых системах пакет может называться exa)
Мастхэв команды:
# дерево каталогов
eza -T
# подробный вывод с правами и датами
eza -l
# с владельцами и git-статусом
eza -lg --git
# размеры в "человеческом" виде
eza -lh
# сортировка по времени изменения
eza -ltКомбинированный вариант (можно использовать как алиас вместо ls):
alias ls="eza -lh --git --icons"Вывод:
eza - это та же простая команда для просмотра файлов, но в современном исполнении. Установка занимает секунды, а ощущение, что терминал стал живее и дружелюбнее - останется надолго. Если привыкли к ls, попробуйте заменить его алиасом на eza и, скорее всего, уже не захотите возвращаться назад.
LinuxCamp | #utils
🔥37👍25❤6😐3❤🔥1
Напоминаю, что у нас есть чат с отборными линуксоидами. Сюда можно задать любой интересующий вопрос по Linux, DevOps, системному администрированию и разработке.
Участники всегда рады помочь и пообщаться, поэтому не упускай сообщество из виду и присоединяйся!
Участники всегда рады помочь и пообщаться, поэтому не упускай сообщество из виду и присоединяйся!
👍9🔥7💊4❤1
Работа с HTTP-запросами в терминале
Инструмент:
Для отправки запросов из командной строки можно использовать утилиту httpie. Она позволяет выполнять запросы в формате, близком к привычному синтаксису HTTP.
Установка:
Примеры использования:
Простой GET-запрос
(без операторов — просто указываем метод и URL):
Запрос с передачей данных
- ключ=значение → строка
- ключ:=значение → литерал (число, true/false/null)
Добавить заголовки
- ключ:значение → HTTP-заголовок
Особенности:
- Подсветка синтаксиса и форматирование ответа.
- Удобный ввод параметров (ключ-значение).
- Поддержка JSON "из коробки".
- Подходит для быстрой проверки API прямо из терминала.
Вывод:
httpie - это удобная альтернатива curl, ориентированная на человеко-читаемый вывод. Подсветка синтаксиса, автоматическая работа с JSON и лаконичный ввод делают его полезным инструментом для тестирования и отладки HTTP-запросов прямо в терминале.
LinuxCamp | #utils
Инструмент:
Для отправки запросов из командной строки можно использовать утилиту httpie. Она позволяет выполнять запросы в формате, близком к привычному синтаксису HTTP.
Установка:
apt install httpie
Примеры использования:
Простой GET-запрос
(без операторов — просто указываем метод и URL):
http GET https://primer.com/json
Запрос с передачей данных
- ключ=значение → строка
- ключ:=значение → литерал (число, true/false/null)
http POST https://primer.com/post name=LinuxCamp active:=true
Добавить заголовки
- ключ:значение → HTTP-заголовок
http GET https://primer.com/headers User-Agent:LinuxCamp
Особенности:
- Подсветка синтаксиса и форматирование ответа.
- Удобный ввод параметров (ключ-значение).
- Поддержка JSON "из коробки".
- Подходит для быстрой проверки API прямо из терминала.
Вывод:
httpie - это удобная альтернатива curl, ориентированная на человеко-читаемый вывод. Подсветка синтаксиса, автоматическая работа с JSON и лаконичный ввод делают его полезным инструментом для тестирования и отладки HTTP-запросов прямо в терминале.
LinuxCamp | #utils
👍28❤10🔥6❤🔥1
Быстрое перемещение по папкам с помощью zoxide
Инструмент:
zoxide - это умный заменитель cd, который запоминает каталоги, в которых вы работаете, и позволяет прыгать к ним за пару символов.
Установка:
Затем добавьте в ~/.bashrc или ~/.zshrc:
Как пользоваться:
Обычный cd остаётся доступным, но появляются новые возможности, например, добавление каталогов в базу (происходит автоматически при cd):
Переход в каталог по части имени (z - сокращение от zoxide), сразу откроет ~/projects/linuxcamp:
Если каталог встречается несколько раз, можно уточнить путь:
Быстрый возврат в предыдущую папку:
Посмотреть список популярных путей (с рейтингом посещений):
Особенности:
- Работает поверх истории - чем чаще заходите в папку, тем выше её приоритет.
- Поддерживает автодополнение (bash, zsh, fish).
- Значительно сокращает время навигации по проектам.
Вывод:
zoxide делает работу с файловой системой быстрее и удобнее. Там, где раньше приходилось писать длинные пути или хранить алиасы, теперь достаточно пары букв.
LinuxCamp | #utils
Инструмент:
zoxide - это умный заменитель cd, который запоминает каталоги, в которых вы работаете, и позволяет прыгать к ним за пару символов.
Установка:
sudo apt install zoxide
Затем добавьте в ~/.bashrc или ~/.zshrc:
eval "$(zoxide init bash)" # для bash
eval "$(zoxide init zsh)" # для zsh
Как пользоваться:
Обычный cd остаётся доступным, но появляются новые возможности, например, добавление каталогов в базу (происходит автоматически при cd):
cd ~/projects/linuxcamp
Переход в каталог по части имени (z - сокращение от zoxide), сразу откроет ~/projects/linuxcamp:
z linux
Если каталог встречается несколько раз, можно уточнить путь:
z proj lin
Быстрый возврат в предыдущую папку:
z -
Посмотреть список популярных путей (с рейтингом посещений):
zoxide query -l
Особенности:
- Работает поверх истории - чем чаще заходите в папку, тем выше её приоритет.
- Поддерживает автодополнение (bash, zsh, fish).
- Значительно сокращает время навигации по проектам.
Вывод:
zoxide делает работу с файловой системой быстрее и удобнее. Там, где раньше приходилось писать длинные пути или хранить алиасы, теперь достаточно пары букв.
LinuxCamp | #utils
👍22❤14🔥7❤🔥4👏2
Я уже как 5 лет учу программирование. За это время совершал ошибки и корректировал свой путь. Есть много вещей, которые я бы делал иначе, чтобы процесс шел более эффективно.
В новом видео делюсь опытом и рассказываю, как, по моему мнению, стоит учить программирование, учитывая наличие ИИ в современном мире:
— какие ошибки я бы точно не повторил и как себя держать в ментальном порядке
— как быстро обучаться так, чтобы знания не выветривались через пару дней. Также поговорим о том, что нужно на старте учить и в какой последовательности
— как не попасть в "Tutorial hell" и не увязнуть в потреблении курсов
Видос уже на канале: YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥10❤5🥱2🤣1
asciinema - как записать терминал красиво и удобно
С помощью asciinema можно записывать терминал так, что результат выглядит как видео, но на самом деле это текст. Его можно не только просто воспроизводить как видео, но и копировать команды и вывод прямо из записи. В отличие от классического скринкаста, который занимает много места и теряет качество, asciinema сохраняет чистый поток терминала в лёгком текстовом файле, соответственно мало весит.
Установка:
Как записать демку:
Запустится запись. Всё, что вы вводите и что выводит программа сохраняется. Остановить: Ctrl+D или exit.
Файл demo.cast можно вставить в README.md проекта, хранить локально (и потом воспроизводить: asciinema play demo.cast), либо просто делиться файлом
Мгновенный шаринг:
Можно делиться записью прямо через официальное облако asciinema:
После этой команды терминал вернёт ссылку вида:
По этой ссылке можно открыть сайт asciinema и там посмотреть запись терминала как видео и также весь поток ввода-вывода можно скопировать!
Осторожно с паролями!
asciinema пишет всё, что появляется в терминале. Если вводите пароль или показываете секретный ключ он попадёт в запись, этими данными делиться небезопасно :)
Вывод:
asciinema - это как GIFки из терминала, только без лишнего веса и с удобной интеграцией в документацию, README файлы и копирования ввода-вывода.
LinuxCamp | #utils
С помощью asciinema можно записывать терминал так, что результат выглядит как видео, но на самом деле это текст. Его можно не только просто воспроизводить как видео, но и копировать команды и вывод прямо из записи. В отличие от классического скринкаста, который занимает много места и теряет качество, asciinema сохраняет чистый поток терминала в лёгком текстовом файле, соответственно мало весит.
Установка:
sudo apt install asciinema
Как записать демку:
asciinema rec demo.cast
Запустится запись. Всё, что вы вводите и что выводит программа сохраняется. Остановить: Ctrl+D или exit.
Файл demo.cast можно вставить в README.md проекта, хранить локально (и потом воспроизводить: asciinema play demo.cast), либо просто делиться файлом
Мгновенный шаринг:
Можно делиться записью прямо через официальное облако asciinema:
asciinema upload demo.cast
После этой команды терминал вернёт ссылку вида:
https://asciinema.org/a/cFWlOCAQjSYYGeJRoUAlSfHx1
По этой ссылке можно открыть сайт asciinema и там посмотреть запись терминала как видео и также весь поток ввода-вывода можно скопировать!
Осторожно с паролями!
asciinema пишет всё, что появляется в терминале. Если вводите пароль или показываете секретный ключ он попадёт в запись, этими данными делиться небезопасно :)
Вывод:
asciinema - это как GIFки из терминала, только без лишнего веса и с удобной интеграцией в документацию, README файлы и копирования ввода-вывода.
LinuxCamp | #utils
🔥26👍10❤6🤔4❤🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁73💊11🔥8👍7❤6👏3❤🔥1
История о моменте, когда не понимаешь, что происходит
Запускал я однажды MVP нового проекта на новом домене. Сеть поднял, контейнеры крутятся, nginx настроен. Сидим все в офисе с wi-fi - всё летает, тестировщики даже с иностранными vpn тестируют, все ок.
Пошёл трафик, хоть и небольшой. Через пару дней бизнес: «С телефона сайт не открывается». Проверяю, реально, в мобильной сети таймаут.
Думаю: баг в коде? косяк в nginx? Меняю конфиги, даже делаю location / { return 200 "test"; }, но не помогает. Оказывается, что основной сайт компании при этом работает и с wi-fi, и с мобильного. Что-то тут нечисто🤔
И тут вкидывают новость: в РФ начали троттлить (ограничивать скорость) пул ip адресов Cloudflare, и работает это тоже неравномерно, в одной сети может быть все ок, в другой нет. Я конечно же подумал: "пф, как же хорошо, что у нас все домены идут через ServicePipe". Но все-таки решил сравнить DNS у доменов:
Результат:
— основной домен: ip провайдера/прокси (ServicePipe), у которого в РФ всё ок
— мой домен: IP-адреса Cloudflare, часть из которых блокировалась
Добавил проверку трассы:
Картина сложилась: мобильные операторы по пути до Cloudflare режут или троттлят соединение, а трафик на ServicePipe доходит без проблем.
В итоге перевели новый домен через тот же провайдер (SP), всё стабилизировалось. И да, ещё и денег заработали😊
LinuxCamp | #magadrovosex #network #story
Запускал я однажды MVP нового проекта на новом домене. Сеть поднял, контейнеры крутятся, nginx настроен. Сидим все в офисе с wi-fi - всё летает, тестировщики даже с иностранными vpn тестируют, все ок.
Пошёл трафик, хоть и небольшой. Через пару дней бизнес: «С телефона сайт не открывается». Проверяю, реально, в мобильной сети таймаут.
Думаю: баг в коде? косяк в nginx? Меняю конфиги, даже делаю location / { return 200 "test"; }, но не помогает. Оказывается, что основной сайт компании при этом работает и с wi-fi, и с мобильного. Что-то тут нечисто
И тут вкидывают новость: в РФ начали троттлить (ограничивать скорость) пул ip адресов Cloudflare, и работает это тоже неравномерно, в одной сети может быть все ок, в другой нет. Я конечно же подумал: "пф, как же хорошо, что у нас все домены идут через ServicePipe". Но все-таки решил сравнить DNS у доменов:
# Мой MVP-домен
dig +short my-new-domain.tld A
# Основной домен
dig +short main.company.tld A
Результат:
— основной домен: ip провайдера/прокси (ServicePipe), у которого в РФ всё ок
— мой домен: IP-адреса Cloudflare, часть из которых блокировалась
Добавил проверку трассы:
dig +trace my-new-domain.tld
dig +trace main.company.tld
Картина сложилась: мобильные операторы по пути до Cloudflare режут или троттлят соединение, а трафик на ServicePipe доходит без проблем.
В итоге перевели новый домен через тот же провайдер (SP), всё стабилизировалось. И да, ещё и денег заработали
LinuxCamp | #magadrovosex #network #story
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥30👍15❤10❤🔥1
btop: next level мониторинг процессов
Что такое btop:
Классика жанра top или htop. Но есть современная альтернатива - btop. Интерфейс более красивый, делится на несколько вкладок, и каждая отвечает за свою часть системы.
Установка:
Работа с процессами:
В btop можно смотреть список процессов, фильтровать и сортировать их, переключаться на дерево иерархии. Управление процессами тоже встроено: можно изменить приоритет или завершить задачу.
Поддерживается работа мышью, клик по нужному процессу сразу открывает меню действий.
Запускается просто командой:
Память и диски:
В отличие от htop, btop показывает полное распределение памяти: занятое, свободное, кэш, буферы и swap. Для дисков можно видеть не только объём, но и скорость чтения и записи в реальном времени.
Сеть:
Встроенный мониторинг сетевых интерфейсов позволяет сразу видеть скорость входящего и исходящего трафика.
На графиках удобно отслеживать пики нагрузки. В htop этого нет, там пришлось бы использовать отдельные инструменты, например iftop или nload.
Вывод:
btop объединяет в одном интерфейсе возможности htop, iotop и nload. При этом он остаётся лёгким по ресурсам и удобным в использовании.
Если нужен инструмент для мониторинга процессов, памяти, дисков и сети btop заметно опережает htop по возможностям.
LinuxCamp | #utils
Что такое btop:
Классика жанра top или htop. Но есть современная альтернатива - btop. Интерфейс более красивый, делится на несколько вкладок, и каждая отвечает за свою часть системы.
Установка:
sudo snap install btop
Работа с процессами:
В btop можно смотреть список процессов, фильтровать и сортировать их, переключаться на дерево иерархии. Управление процессами тоже встроено: можно изменить приоритет или завершить задачу.
Поддерживается работа мышью, клик по нужному процессу сразу открывает меню действий.
Запускается просто командой:
btop
Память и диски:
В отличие от htop, btop показывает полное распределение памяти: занятое, свободное, кэш, буферы и swap. Для дисков можно видеть не только объём, но и скорость чтения и записи в реальном времени.
Сеть:
Встроенный мониторинг сетевых интерфейсов позволяет сразу видеть скорость входящего и исходящего трафика.
На графиках удобно отслеживать пики нагрузки. В htop этого нет, там пришлось бы использовать отдельные инструменты, например iftop или nload.
Вывод:
btop объединяет в одном интерфейсе возможности htop, iotop и nload. При этом он остаётся лёгким по ресурсам и удобным в использовании.
Если нужен инструмент для мониторинга процессов, памяти, дисков и сети btop заметно опережает htop по возможностям.
LinuxCamp | #utils
👍40❤8🔥7❤🔥1
Последняя стадия принятия, она такая)
1. Борюсь с багами Nvidia
2. Плачу из-за багов Nvidia
3. Становлюсь одним целым с багами Nvidia
У меня на работе даже был кейс, когда нужно было под каждое отдельное GPU Nvidia в композиторе (picom) добавлять исключения на некоторые граф. эффекты, иначе все артефачило.
LinuxCamp | #memes
1. Борюсь с багами Nvidia
2. Плачу из-за багов Nvidia
3. Становлюсь одним целым с багами Nvidia
У меня на работе даже был кейс, когда нужно было под каждое отдельное GPU Nvidia в композиторе (picom) добавлять исключения на некоторые граф. эффекты, иначе все артефачило.
LinuxCamp | #memes
😭32😁12🫡7❤1💔1
Логи, краткий гайд по поиску и чтению
Логи — это «черный ящик» вашей системы. Умение с ними работать - ключевой навык для быстрого решения проблем. Разберем основы.
Где всё лежит?
Почти все логи живут в /var/log. Главные файлы:
/var/log/syslog/messages — общий журнал системы (ядра, службы, сеть).
/var/log/auth.log/secure — попытки входа (успешные и нет). Первое место для проверки безопасности.
/var/log/dmesg — сообщения от ядра и драйверов. Смотрите через одноименную команду, фильтруя по уровню, например, только ошибки:
Чем смотреть?
tail -f (следить в реальном времени), less (просмотр), grep (поиск).
lnav (Log File Navigator) — делает работу с логами гораздо удобнее.
Почему lnav?
Открывает несколько файлов сразу и архивы (.gz) напрямую.
Показывает гистограмму сообщений по времени (клавиша i).
Подсвечивает синтаксис для разных форматов логов.
Установка и использование:
LinuxCamp | #utils
Логи — это «черный ящик» вашей системы. Умение с ними работать - ключевой навык для быстрого решения проблем. Разберем основы.
Где всё лежит?
Почти все логи живут в /var/log. Главные файлы:
/var/log/syslog/messages — общий журнал системы (ядра, службы, сеть).
/var/log/auth.log/secure — попытки входа (успешные и нет). Первое место для проверки безопасности.
/var/log/dmesg — сообщения от ядра и драйверов. Смотрите через одноименную команду, фильтруя по уровню, например, только ошибки:
dmesg -l err
Чем смотреть?
tail -f (следить в реальном времени), less (просмотр), grep (поиск).
lnav (Log File Navigator) — делает работу с логами гораздо удобнее.
Почему lnav?
Открывает несколько файлов сразу и архивы (.gz) напрямую.
Показывает гистограмму сообщений по времени (клавиша i).
Подсвечивает синтаксис для разных форматов логов.
Установка и использование:
sudo apt install lnav
sudo lnav /var/log/syslog /var/log/auth.log
LinuxCamp | #utils
1👍41❤10❤🔥5
Зачем нужен Whois
Что это такое
whois - это утилита, которая показывает регистрационные данные о доменах и IP-адресах. Через неё можно узнать, кто владелец сайта, где зарегистрирован домен, какие у него NS-сервера и когда заканчивается регистрация.
Как работает
Запрос отправляется к публичным базам данных, где хранятся сведения о доменах и IP. Ответ может отличаться в зависимости от зоны (.ru, .com и т.д.), а часть информации скрывается из-за политики приватности.
Пример в консоли
На выходе данные о регистраторе, сроке действия, контактной информации (если она открыта):
Где полезно
Сисадмину, чтобы проверить дату окончания домена. Безопаснику, чтобы понять, кому принадлежит IP. Любому пользователю, чтобы не попасть на фишинговый сайт с поддельным адресом.
Важно помнить
Информация в whois может быть скрыта через защиту приватности, но технические данные (например, NS-записи) почти всегда доступны.
LinuxCamp | #utils #network
Что это такое
whois - это утилита, которая показывает регистрационные данные о доменах и IP-адресах. Через неё можно узнать, кто владелец сайта, где зарегистрирован домен, какие у него NS-сервера и когда заканчивается регистрация.
Как работает
Запрос отправляется к публичным базам данных, где хранятся сведения о доменах и IP. Ответ может отличаться в зависимости от зоны (.ru, .com и т.д.), а часть информации скрывается из-за политики приватности.
Пример в консоли
whois linux.org
На выходе данные о регистраторе, сроке действия, контактной информации (если она открыта):
Domain Name: linux.org
Updated Date: 2024-05-16T04:04:59Z
Creation Date: 1994-05-10T04:00:00Z
Registry Expiry Date: 2034-05-11T04:00:00Z
Registrar Abuse Contact Email: domain.operations@web.com
Registrar Abuse Contact Phone: +1.9046806694
Name Server: lia.ns.cloudflare.com
Name Server: mark.ns.cloudflare.com
...
Где полезно
Сисадмину, чтобы проверить дату окончания домена. Безопаснику, чтобы понять, кому принадлежит IP. Любому пользователю, чтобы не попасть на фишинговый сайт с поддельным адресом.
Важно помнить
Информация в whois может быть скрыта через защиту приватности, но технические данные (например, NS-записи) почти всегда доступны.
LinuxCamp | #utils #network
👍32❤10🔥7❤🔥1😁1
Знакомо, когда "apt upgrade" ползет как черепаха?
Виноват не всегда провайдер. Часто - просто загруженное или далёкое зеркало, с которого вы качаете пакеты. Лечится это за 2 минуты! Давайте разберемся, как заставить пакеты летать:
Debian/Ubuntu
Ставим инструмент для поиска самого шустрого зеркала и сразу применяем его:
Arch Linux
Тут нам поможет reflector. Он протестирует и отсортирует зеркала по скорости:
"age 12" — брать только зеркала, обновлённые за последние 12 часов.
"protocol https" — фильтруем только зеркала с защищённым соединением.
"sort rate" — сортировка по скорости загрузки (можно ещё --sort score или --sort delay).
"save /etc/pacman.d/mirrorlist" — сохраняем новый список зеркал, который будет использовать pacman.
Fedora
Всё ещё проще — включаем встроенную фишку:
LinuxCamp | #utils
Виноват не всегда провайдер. Часто - просто загруженное или далёкое зеркало, с которого вы качаете пакеты. Лечится это за 2 минуты! Давайте разберемся, как заставить пакеты летать:
Debian/Ubuntu
Ставим инструмент для поиска самого шустрого зеркала и сразу применяем его:
# Устанавливаем утилиту для выбора самого быстрого зеркала
sudo apt install netselect-apt
# Выбираем зеркало для стабильной версии Debian
sudo netselect-apt stable
# Делаем резервную копию текущего списка репозиториев
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
# Перемещаем новый файл sources.list в /etc/apt/
sudo mv sources.list /etc/apt/sources.list
# Обновляем индекс пакетов с нового зеркала
sudo apt update
Arch Linux
Тут нам поможет reflector. Он протестирует и отсортирует зеркала по скорости:
# Устанавливаем утилиту reflector
sudo pacman -S reflector
# Генерируем новый список зеркал:
sudo reflector --country "Russia" \
--age 12 \
--protocol https \
--sort rate \
--save /etc/pacman.d/mirrorlist
"age 12" — брать только зеркала, обновлённые за последние 12 часов.
"protocol https" — фильтруем только зеркала с защищённым соединением.
"sort rate" — сортировка по скорости загрузки (можно ещё --sort score или --sort delay).
"save /etc/pacman.d/mirrorlist" — сохраняем новый список зеркал, который будет использовать pacman.
Fedora
Всё ещё проще — включаем встроенную фишку:
config-manager --set-enabled fastestmirror
LinuxCamp | #utils
2👍38🔥15❤10❤🔥1
Эмуляция сетевых проблем в Linux
Зачем это нужно
Иногда надо проверить, как приложение ведёт себя при «плохом интернете»: потерях пакетов, задержках или ограниченной скорости. Для этого в Linux есть tc netem - инструмент управления трафиком.
Как работает
tc (Traffic Control) позволяет добавлять правила для сетевых интерфейсов. С помощью модуля netem можно симулировать нестабильную сеть прямо на локальной машине или сервере.
Пример команды
Что можно эмулировать
Задержки, джиттер, потерю пакетов, дублирование и даже случайный порядок доставки. Это удобно для тестирования веб-сервисов, VoIP и игр.
Важно помнить
После тестов правила нужно очищать, иначе плохая сеть так и останется:
Вывод
Тестировать стоит не только код и логику приложения, но и его поведение в условиях сетевых проблем. Именно такие ситуации чаще всего ловят пользователей и самих разработчиков врасплох.
LinuxCamp | #utils
Зачем это нужно
Иногда надо проверить, как приложение ведёт себя при «плохом интернете»: потерях пакетов, задержках или ограниченной скорости. Для этого в Linux есть tc netem - инструмент управления трафиком.
Как работает
tc (Traffic Control) позволяет добавлять правила для сетевых интерфейсов. С помощью модуля netem можно симулировать нестабильную сеть прямо на локальной машине или сервере.
Пример команды
# Добавляем задержку 200ms на интерфейс eth0
sudo tc qdisc add dev eth0 root netem delay 200ms
# Потери пакетов 10%
sudo tc qdisc change dev eth0 root netem loss 10%
Что можно эмулировать
Задержки, джиттер, потерю пакетов, дублирование и даже случайный порядок доставки. Это удобно для тестирования веб-сервисов, VoIP и игр.
Важно помнить
После тестов правила нужно очищать, иначе плохая сеть так и останется:
sudo tc qdisc del dev eth0 root
Вывод
Тестировать стоит не только код и логику приложения, но и его поведение в условиях сетевых проблем. Именно такие ситуации чаще всего ловят пользователей и самих разработчиков врасплох.
LinuxCamp | #utils
6🔥47👍21❤12❤🔥1🤝1
Forwarded from Кирилл Жильников
Самый тупой баг
Рассказываю историю. Несколько дней назад я активно занимался деплоем своего "вайб-веб" приложения на сервак: переносил код и, самое ключевое, настраивал докер файлы. По указанной логике у нас при инициализации контейнера выполняется компиляция проекта:
Если все локально собирается, то и удаленно тоже должно (так мне изначально казалось). Для справки (потом будет очень важно):
Теперь давайте о проблеме:
— я выполняю на сервере "docker compose up --build -d app"
— у меня в конце срабатывает "npm run build"
— сборка на серваке падает с:
Проблема же, кажется, очевидная - не определяется импортируемый модуль. Значит, вероятно, что-то не так либо в экспорте, либо в пути до модуля.
Я смотрю структуру проекта на MacOS - такой путь существует, ну и сборка проходит успешно. Пытаюсь стучать в Cursor, он мне ничего дельного сначала не давал.
Потом.... Через часа 3 где-то, он решил посмотреть скрытый .git каталог и нашел, что названия каталогов на гите отличаются от нейминга на MacOS.
Проблема оказалась в том, что я на локальной системе поменял название каталога с "ui" на "UI", но в гит изменение не попало и на серваке лежал каталог "ui"!
А маку же все равно, для его FS каталоги UI и ui аналогичны. В linux же файловая система чувствительна к регистру, поэтому путь не определялся.
Такие дела. Итого, что я вам советую, друзья:
Рассказываю историю. Несколько дней назад я активно занимался деплоем своего "вайб-веб" приложения на сервак: переносил код и, самое ключевое, настраивал докер файлы. По указанной логике у нас при инициализации контейнера выполняется компиляция проекта:
CMD npm run build
Если все локально собирается, то и удаленно тоже должно (так мне изначально казалось). Для справки (потом будет очень важно):
у меня локальная работа идет на MacOS, сервак же - Linux (debain)
Теперь давайте о проблеме:
— я выполняю на сервере "docker compose up --build -d app"
— у меня в конце срабатывает "npm run build"
— сборка на серваке падает с:
Module not found: Can't resolve '@/app/components/UI/IconButtonn'
Проблема же, кажется, очевидная - не определяется импортируемый модуль. Значит, вероятно, что-то не так либо в экспорте, либо в пути до модуля.
Я смотрю структуру проекта на MacOS - такой путь существует, ну и сборка проходит успешно. Пытаюсь стучать в Cursor, он мне ничего дельного сначала не давал.
Потом.... Через часа 3 где-то, он решил посмотреть скрытый .git каталог и нашел, что названия каталогов на гите отличаются от нейминга на MacOS.
Проблема оказалась в том, что я на локальной системе поменял название каталога с "ui" на "UI", но в гит изменение не попало и на серваке лежал каталог "ui"!
А маку же все равно, для его FS каталоги UI и ui аналогичны. В linux же файловая система чувствительна к регистру, поэтому путь не определялся.
Такие дела. Итого, что я вам советую, друзья:
Обращайте внимание на файловые системы и, в целом, специфику ОС, с которыми вы работаете
👍51🔥18😁10✍4❤🔥2
rsync - железный инструмент для копирования
Главное преимущество rsync - он передаёт только изменённые части файлов. Если у тебя есть 100 ГБ данных и изменился один файл на 10 МБ, скопируется только этот кусок. Это экономит время и трафик, особенно при бэкапах или синхронизации между серверами.
Почему быстрее
В отличие от scp и cp, которые всегда переносят файл целиком, rsync использует алгоритм дельт. Он сравнивает файлы и гоняет только разницу. На больших проектах или медленных каналах это ускоряет процесс в разы.
Пример команды
– -a сохраняет структуру и права
– -v показывает процесс копирования
– -z сжимает данные при передаче
Полезные фишки
Вывод
rsync работает быстрее и экономнее, чем обычное scp, когда нужно не просто скопировать, а поддерживать актуальные копии данных. Он стал стандартом де-факто для бэкапов и синхронизации именно благодаря своей скорости и эффективности.
LinuxCamp | #utils
Главное преимущество rsync - он передаёт только изменённые части файлов. Если у тебя есть 100 ГБ данных и изменился один файл на 10 МБ, скопируется только этот кусок. Это экономит время и трафик, особенно при бэкапах или синхронизации между серверами.
Почему быстрее
В отличие от scp и cp, которые всегда переносят файл целиком, rsync использует алгоритм дельт. Он сравнивает файлы и гоняет только разницу. На больших проектах или медленных каналах это ускоряет процесс в разы.
Пример команды
rsync -avz /home/user/ user@server:/backup/
– -a сохраняет структуру и права
– -v показывает процесс копирования
– -z сжимает данные при передаче
Полезные фишки
# Сухой прогон (показать, что будет скопировано)
rsync -avzn /src/ /dst/
# Удалить лишнее в целевой папке
rsync -av --delete /src/ /dst/
Вывод
rsync работает быстрее и экономнее, чем обычное scp, когда нужно не просто скопировать, а поддерживать актуальные копии данных. Он стал стандартом де-факто для бэкапов и синхронизации именно благодаря своей скорости и эффективности.
LinuxCamp | #utils
👍71🔥15❤5