Linux Ready | DevOps
9.64K subscribers
911 photos
62 videos
427 links
Авторский канал по разработке на Linux.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/linux_ready
Download Telegram
👩‍💻 Подключаемся к Wi-Fi из терминала — без графики, только nmcli

Иногда приходится работать в Linux без GUI — на сервере, в recovery-режиме или просто в консоли. В таких случаях nmcli позволяет управлять Wi-Fi прямо из терминала.

В этом посте:
Ищем доступные сети с помощью nmcli dev wifi.

Подключаемся к нужной точке с паролем.

Проверяем статус соединения и IP-адрес.

Учимся удалять и редактировать сохранённые профили.


Отличный пример, как консоль может всё — быстро, просто и без лишнего.

🚪 Linux Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22🤝144👍1
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ CommandLineFu — полезные команды для Linux и Unix!

Удобный каталог команд для Linux, Unix и macOS, где собраны готовые решения на Bash для самых разных задач: работа с файлами, сетью, процессами, логами, безопасностью и администрированием серверов. Каждая команда сопровождается пояснением.

📌 Оставляю ссылочку: commandlinefu.com

🚪 Linux Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍65
В Linux можно безопасно перезаписывать файл результатом команды, которая этот же файл читает!

Многие хотя бы раз пытались сделать что-то вроде:
$ sort users.txt > users.txt


И получали пустой файл.

Проблема в том, что shell открывает файл на запись ещё до запуска sort, поэтому содержимое уничтожается раньше, чем команда успевает его прочитать.

Для таких случаев существует sponge из пакета moreutils:
$ sort users.txt | sponge users.txt


Сначала sponge полностью считывает входной поток в память, а затем открывает файл и записывает результат.

Точно так же можно фильтровать логи или конфигурации без временных файлов:
$ grep -v debug app.log | sponge app.log


Или выполнять цепочки преобразований над одним и тем же файлом:
$ sed 's/localhost/db.local/' config.ini | sponge config.ini


🔥 Это позволяет безопасно изменять файл, не создавая временные копии и не рискуя случайно потерять данные.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍85
📂 Напоминалка по Bash-скриптам!

Например, set -euo pipefail помогает избежать многих ошибок в скриптах, а trap позволяет корректно обрабатывать сигналы и выполнять очистку перед завершением программы.

На картинке — основные конструкции Bash: переменные, условия, циклы, функции, массивы, работа с файлами, аргументы командной строки, перенаправление потоков, обработка сигналов и другое.

Сохрани, чтобы не потерять!

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥76
Работа с ss — замена netstat для диагностики сетевых подключений!

Во многих руководствах до сих пор встречается:
netstat


Но в большинстве современных Linux-дистрибутивов рекомендуется использовать:
ss


Утилита входит в пакет iproute2, работает быстрее и получает информацию через интерфейсы ядра Linux без необходимости парсинга большого объёма данных из /proc.

Посмотреть TCP-сокеты:
ss -t


Посмотреть все TCP-соединения в числовом виде:
ss -tan


Посмотреть прослушивающие TCP-сокеты и UDP-сокеты:
ss -tuln


Если нужно увидеть процессы, которым принадлежат сокеты:
ss -tulpn


Вывод покажет адреса прослушивания, порты, PID и имя процесса.

Частая задача — выяснить, кто занимает конкретный порт. Например, проверить порт 8080:
ss -ltnp '( sport = :8080 )'


Либо отфильтровать сокеты, прослушивающие порт 443:
ss -ltnp '( sport = :443 )'


При диагностике веб-серверов полезно смотреть количество установленных соединений. Например:
ss -tan


Состояния соединений отображаются в первом столбце, например:
LISTEN
ESTAB
TIME-WAIT
CLOSE-WAIT
SYN-RECV


Подсчитать количество активных соединений:
ss -Htan state established | wc -l


Это помогает быстро оценить текущую нагрузку на сервис.

Для анализа SSH-подключений:
ss -tn '( sport = :22 )'


Либо так:
ss -tn '( dport = :22 )'


В зависимости от того, анализируется сервер или клиент.

Посмотреть только сокеты в состоянии LISTEN:
ss -ltn


Так можно быстро проверить, действительно ли приложение слушает нужный порт.

Например, после запуска сервиса:
ss -ltnp | grep 3000


Для диагностики проблем с соединениями полезно смотреть сокеты в ожидании закрытия:
ss -tan state close-wait


Большое количество CLOSE-WAIT часто указывает на ошибки в приложении, которое некорректно закрывает соединения.

Показать общую статистику по протоколам:
ss -s


Например:
TCP: 523 established
UDP: 42
INET: 610


Конкретные значения будут зависеть от текущего состояния системы. Команда позволяет быстро оценить сетевую активность системы.

Практический пример диагностики недоступного веб-приложения. Сначала проверяем, слушает ли процесс порт:
ss -ltnp '( sport = :8080 )'


Затем смотрим активные подключения:
ss -tan '( sport = :8080 )'


Если подключений нет — проблема может быть в балансировщике, firewall или DNS.

Если подключения есть, но много соединений находится в состоянии:
SYN-RECV


Стоит проверить сетевую доступность, настройки фильтрации трафика и работу балансировщика.

Дополнительно полезно знать:
ss -i


Команда выводит расширенную информацию о TCP-соединениях: RTT, размер окна, retransmits и другие параметры, которые часто используются при анализе сетевых проблем.

🔥 ss — один из основных инструментов диагностики сети в современных Linux-системах и в большинстве случаев является предпочтительной заменой netstat благодаря более высокой скорости работы и расширенным возможностям фильтрации.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍7🔥5🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
😍 Linux Cheat — полезнейший репозиторий для изучения Linux!

В этом репозитории подробно разбирается внутреннее устройство Linux: процессы, память, системные вызовы, ELF и работа системы на низком уровне. Материал построен на практических примерах за счёт чего сложные темы намного проще понять. Хорошо подойдёт разработчикам, DevOps и тем, кто хочет лучше понимать, как Linux работает под капотом.

Оставляю ссылочку: GitHub 📱


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍7🤝5👎1😁1
Знали, что Bash умеет генерировать десятки путей и аргументов ещё до запуска команды?

Большинство используют циклы или копируют похожие команды несколько раз, хотя Bash умеет делать это самостоятельно.

Например, нужно быстро создать структуру нового проекта:
$ mkdir -p project/{src,tests,docs}


Shell автоматически развернёт команду в несколько аргументов ещё до запуска mkdir.

Точно так же удобно создавать резервные копии:
$ cp app.{conf,conf.bak}


Фактически Bash выполнит:
$ cp app.conf app.conf.bak


Можно работать сразу с несколькими каталогами:
$ echo /var/log/{nginx,apache2,redis}/*.log


Команда мгновенно превратится в набор путей для всех указанных директорий.

Поддерживаются и диапазоны:
$ touch file{1..10}.txt


В результате будут созданы файлы от file1.txt до file10.txt без единого цикла.

🔥 Brace expansion выполняется внутри Bash ещё до запуска программы, поэтому работает быстрее и чище, чем дополнительные shell-конструкции.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥9🤝62
This media is not supported in your browser
VIEW IN TELEGRAM
❤️ Шпаргалка по Linux-командам — быстрый справочник для работы в терминале!

Удобная шпаргалка, в которой собраны команды для повседневной работы. Здесь можно быстро найти команды для навигации по файловой системе, управления файлами и каталогами, работы с процессами, пользователями, сетью и правами доступа. Материал отлично подойдёт как новичкам, которые только знакомятся с Linux, так и разработчикам, которым нужен быстрый справочник.

📌 Оставляю ссылочку: unlix.ru

🚪 Linux Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍7🔥6👎1
Большинство задач на удалённом сервере можно выполнять без входа по SSH!

Многие подключаются к серверу, выполняют одну команду, выходят, затем подключаются снова.

На самом деле SSH умеет запускать команды напрямую:
$ ssh user@server 'journalctl -n 1000'


Результат сразу приходит в локальный терминал без интерактивной сессии.

Можно передавать данные через обычные каналы Linux:
$ ssh user@server 'mysqldump db' > dump.sql


Дамп базы окажется на локальной машине, при этом временный файл на сервере не создаётся.

Можно копировать целые каталоги потоково:
$ ssh user@server 'tar czf - /var/log' | tar xzf -


Архив никогда не записывается на диск сервера и сразу распаковывается локально.

🔥 Такой подход удобно использовать в скриптах, автоматизации, резервном копировании и диагностике. Часто оказывается, что для выполнения задачи полноценная SSH-сессия вообще не нужна.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥76
📂 Напоминалка по Pipes в Linux!

Pipes позволяют процессам обмениваться данными напрямую: вывод одной программы становится входом для другой. Именно благодаря этому работают привычные конвейеры команд через символ |.

На картинке показаны анонимные и именованные каналы (FIFO), схема их работы, примеры создания и основные команды для использования.

Сохрани, чтобы не потерять!

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥75🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ Шпаргалка по Linux-командам — полезный справочник для работы с Linux!

На сайте собрана удобная шпаргалка по основным Linux-командам, которая помогает быстро находить нужные команды для повседневной работы. Здесь есть всё необходимое: навигация по файловой системе, управление файлами и каталогами, работа с процессами, сетью, пользователями и правами доступа.

📌 Оставляю ссылочку: wiki.planetahost.ru

🚪 Linux Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍10🤝3
Сидеть и работать в корпорации — страшно, жизнь-то мимо проходит. Уходить строить бизнес — страшно, а вдруг прогорит. Один из вариантов — разрабатывать свой пет-проект по вечерам. Многие успешные компании, например, Twitter, создавались именно так. Это не значит, что ваш проект обязательно заработает миллиарды, но заработать больше, чем в найме, и получить ценный опыт — вполне реально.

Перед началом разработки появляется множество вопросов, например:

• Как выбрать идею для пет-проекта?
• Что нужно знать про маркетинг
• Как запуститься и довести до первых продаж не имея бюджета на рекламу?

В телеграм-канале «Твой пет проект», Михаил Табунов делится своим опытом с разработчиками и менеджерами.

Он рассказывает, где искать идею для нового проекта, что нужно знать о маркетинге, как запустить стартап и привлечь первых 10 клиентов, а также о многих других важных вещах.

Подписывайтесь на «Твой пет проект», получайте пользу от практиков рынка!
https://t.me/+8Frwa03ciVlhNTky
1
В Linux можно продолжать читать файл даже после его удаления!

В Linux процесс работает не с именем файла, а с открытым файловым дескриптором. Пока дескриптор остаётся открытым, удаление имени файла никак не влияет на возможность чтения данных.

Откройте файл через отдельный файловый дескриптор:
$ exec 3< huge.log


Теперь удалите файл обычной командой:
$ rm huge.log


Файл исчезнет из каталога и больше не будет доступен по имени.

Но дескриптор останется открытым:
$ cat <&3


Содержимое файла продолжит читаться, хотя самого файла в файловой системе уже нет.

Поэтому иногда после удаления большого журнала свободное место на диске не появляется. Процесс продолжает удерживать открытый дескриптор, а ядро освобождает место только после его закрытия.

🔥 Понимание того, как работают файловые дескрипторы, помогает быстрее находить причины пропавшего места на диске и разбираться с поведением сервисов.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍129🔥6🤝1