This media is not supported in your browser
VIEW IN TELEGRAM
Этот репозиторий включает лучшие практики и команды для Linux/macOS терминала. Здесь собраны приемы, комбинации CLI-утилит, практики, которые помогают работать быстрее, искать ошибки, обрабатывать данные и автоматизировать рутинные задачи. Отличный ресурс, чтобы повысить эффективность работы.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤9🔥7
Как быстро поднять HTTP-шаринг директории одной командой!
В Linux можно за секунду превратить любую папку в HTTP-файлообменник, встроенным модулем Python. Помогает, когда нужно быстро передать файлы в сети или проверить статику фронта.
Нужен список файлов в браузере с автоматической навигацией? Он уже там:
Если хотите, чтобы сервер слушал только
Нужно запустить и получить
Хотите скачать всю директорию одной командой на другой машине?
🔥 Рекурсивно, без выхода за пределы папки и без лишних путей.
🚪 Linux Ready | #совет
В Linux можно за секунду превратить любую папку в HTTP-файлообменник, встроенным модулем Python. Помогает, когда нужно быстро передать файлы в сети или проверить статику фронта.
Нужен список файлов в браузере с автоматической навигацией? Он уже там:
cd /path/to/share
python3 -m http.server 8080
Если хотите, чтобы сервер слушал только
localhost (без риска открыть доступ в сеть):python3 -m http.server 8080 --bind 127.0.0.1
Нужно запустить и получить
PID одной строкой?python3 -m http.server 8080 & echo $!
Хотите скачать всю директорию одной командой на другой машине?
wget -r -np -nH --cut-dirs=1 http://HOST:8080/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥12❤7
Например,
BIOS/UEFI запускает проверку железа (POST) и ищет устройства, GRUB загружает ядро, а systemd поднимает сервисы и готовит систему к логину.На картинке — 8 этапов boot-процесса, которые стоит держать под рукой, чтобы быстро понимать, где искать проблему при отладке или настройке сервера.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤10🔥8
Генерация SSH-ключей в Linux!
SSH-ключи применяются для аутентификации на серверах, в Git, CI/CD и автоматизации.
Создание Ed25519 (предпочтительный алгоритм):
Создание RSA 4096 (для совместимости со средами без поддержки Ed25519):
Просмотр файлов и проверка отпечатка публичного ключа:
Отпечаток публичного ключа можно использовать для сверки при добавлении ключа в удалённые системы.
Копирование публичного ключа на сервер (рекомендуемый способ):
Ручное добавление ключа на сервере (если
Важно:
Проверка входа по ключу:
Запуск SSH-агента в текущей сессии и добавление приватного ключа:
Агент, запущенный через
Корректные права доступа:
🔥 Рабочие ключи следует создавать с
🚪 Linux Ready | #практика
SSH-ключи применяются для аутентификации на серверах, в Git, CI/CD и автоматизации.
Создание Ed25519 (предпочтительный алгоритм):
ssh-keygen -t ed25519 -a 64 -C "dev@host" -f ~/.ssh/id_ed25519
Создание RSA 4096 (для совместимости со средами без поддержки Ed25519):
ssh-keygen -t rsa -b 4096 -C "dev@host" -f ~/.ssh/id_rsa
Просмотр файлов и проверка отпечатка публичного ключа:
ls -l ~/.ssh/
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
Отпечаток публичного ключа можно использовать для сверки при добавлении ключа в удалённые системы.
Копирование публичного ключа на сервер (рекомендуемый способ):
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
Ручное добавление ключа на сервере (если
ssh-copy-id недоступен):install -m 700 -d ~user/.ssh
printf '%s\n' "ВАШ_PUBLIC_KEY" >> ~user/.ssh/authorized_keys
chmod 600 ~user/.ssh/authorized_keys
chown -R user:user ~user/.ssh
Важно:
authorized_keys должен находиться в ~user/.ssh/ на сервере, содержать один ключ на строку, а также иметь корректные права и владельца.Проверка входа по ключу:
ssh -i ~/.ssh/id_ed25519 user@server
Запуск SSH-агента в текущей сессии и добавление приватного ключа:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Агент, запущенный через
eval, действует временно для текущего шелла.Корректные права доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
passphrase (приватный ключ хранится на диске в зашифрованном виде) и загружать в SSH-агент или системный keyring, чтобы не вводить passphrase при каждом подключении.Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍11🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь найдете примеры команд, работу с файлами и процессами, ввод/вывод, перенаправления и многое другое, что реально используется в повседневной работе. Материал написан простым языком и подходит как для новичков, так и для тех, кто хочет перейти от теории к осознанному владению терминалом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥8🤝7
Запись и воспроизведение терминальной сессии!
Иногда нужно показать, как ты что-то делал в терминале: отладку, деплой, последовательность команд.
Linux умеет записывать терминал как сессию, включая тайминги:
После этого делаем все что нужно.
Завершаем запись обычным выходом:
Теперь можно проиграть сессию с теми же паузами:
🔥 Помогает, когда нужно зафиксировать ручной деплой, приложить воспроизводимую сессию к баг-репорту или восстановить ход действий.
🚪 Linux Ready | #совет
Иногда нужно показать, как ты что-то делал в терминале: отладку, деплой, последовательность команд.
Linux умеет записывать терминал как сессию, включая тайминги:
script -t 2> timing.log session.log
После этого делаем все что нужно.
Завершаем запись обычным выходом:
exit
Теперь можно проиграть сессию с теми же паузами:
scriptreplay timing.log session.log
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🤝8❤7
В этой статье:
• Изучите отличия между Linux для PC и Linux для встраиваемых систем;
• Настроите окружение и соберёте собственное минимальное ядро Linux без Buildroot и Yocto;
• Научитесь кросс-компилировать ядро и собирать образ SD-карты для Raspberry Pi 3 и 4;
• Поймёте, как создаётся полноценная система;🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥9❤7
Как быстро передавать файлы между серверами через tar-поток по SSH!
Перенос каталогов без создания архива на диске. Поток идёт напрямую, распаковка выполняется сразу на целевой стороне.
Push каталога на удалённый сервер:
Метод потоковый — файлы не копятся в RAM целиком, запись сразу в указанную директорию.
Сжатие в момент передачи:
Сжатие экономит трафик и может ускорить перенос, но на слабом или загруженном CPU иногда замедляет.
Мониторинг прогресса (не меняет поток):
Удобно для забора бэкапов, артефактов сборки и выгрузки данных со служебных серверов.
Флаги для миграций, где важны права, владельцы,
Владельцы и расширенные атрибуты применятся только при достаточных правах у пользователя.
🔥 Нет промежуточных архивов на диске; Для инкрементальных копий лучше
🚪 Linux Ready | #практика
Перенос каталогов без создания архива на диске. Поток идёт напрямую, распаковка выполняется сразу на целевой стороне.
Push каталога на удалённый сервер:
tar -cf - ./my-folder | ssh user@server "tar -C /home/user -xf -"
Метод потоковый — файлы не копятся в RAM целиком, запись сразу в указанную директорию.
Сжатие в момент передачи:
tar -czf - ./my-folder | ssh user@server "tar -C /home/user -xzf -"
Сжатие экономит трафик и может ускорить перенос, но на слабом или загруженном CPU иногда замедляет.
Мониторинг прогресса (не меняет поток):
tar -cf - ./big-data | pv | ssh user@server "tar -C /data -xf -"
pv просто показывает скорость, объём и ETA. Без него всё работает так же, но без визуального прогресса.Pull каталога к себе:ssh user@server "tar -C /data -cf - ./remote-folder" | tar -C ./target -xf -
Удобно для забора бэкапов, артефактов сборки и выгрузки данных со служебных серверов.
Флаги для миграций, где важны права, владельцы,
ACL и xattrs (обычно под root):-p --same-owner --numeric-owner --acls --xattrs
Владельцы и расширенные атрибуты применятся только при достаточных правах у пользователя.
rsync; Для изоляции раздела можно добавить --one-file-systemPlease open Telegram to view this post
VIEW IN TELEGRAM
❤12👍9🤝6🔥3
Например,
ssh -D 1080 user@server поднимает локальный SOCKS-прокси и позволяет пускать трафик приложений через SSH-сервер.На картинке — наглядно показано, как работает SSH Dynamic Port Forwarding: локальный порт, SSH-туннель и проброс трафика к конечным адресам.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝12👍9❤8🔥5
Нужно быстро понять, есть ли в директории файлы, содержащие определённый текст?
Для этого подходит рекурсивный
Опции означают:
Если важны только сами файлы, а не строки:
Чтобы не ловить мусор из бинарных файлов:
🔥 Для быстрых проверок
Но если поиск становится сложнее (фильтрация по имени, размеру, дате, типу), комбинируйте
🚪 Linux Ready | #совет
Для этого подходит рекурсивный
grep:grep -Pri "Search_Term" /path/to/dir
Опции означают:
-P — поддержка PCRE (удобно для сложных шаблонов);-r — рекурсивный обход директорий;-i — поиск без учёта регистра.Если важны только сами файлы, а не строки:
grep -Pril "Search_Term" /path/to/dir
-l выводит только имена файлов с совпадениями, идеально для быстрой проверки.Чтобы не ловить мусор из бинарных файлов:
grep -Pri --binary-files=without-match "Search_Term" /path/to/dir
grep -r — самый прямой путь.Но если поиск становится сложнее (фильтрация по имени, размеру, дате, типу), комбинируйте
find и grep: это даёт полный контроль над поиском и масштабируется лучше.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤9🔥7
Работа с архивами tar в Linux!
tar — инструмент для упаковки и распаковки данных. Часто используется для бэкапов, доставки артефактов, упаковки проектов и обмена данными между серверами.
Создание архива с gzip-сжатием:
Создание архива с zstd-сжатием (нужен GNU tar с поддержкой
Основные ключи:
Просмотр содержимого без извлечения:
Проверка целостности (проверяется поток сжатия, не структура tar):
Извлечение архива:
Инкрементальный архив (GNU tar):
Потоковая передача по SSH (без промежуточного файла):
🔥
🚪 Linux Ready | #практика
tar — инструмент для упаковки и распаковки данных. Часто используется для бэкапов, доставки артефактов, упаковки проектов и обмена данными между серверами.
Создание архива с gzip-сжатием:
tar -czvf archive.tar.gz /path/to/data
Создание архива с zstd-сжатием (нужен GNU tar с поддержкой
--zstd и установленный zstd):tar --zstd -cvf archive.tar.zst /path/to/data
Основные ключи:
c — create
x — extract
t — list
z — gzip
v — verbose
f — файл/поток
-C — директория
--zstd — zstd
Просмотр содержимого без извлечения:
tar -tzvf archive.tar.gz
tar --zstd -tvf archive.tar.zst
Проверка целостности (проверяется поток сжатия, не структура tar):
gzip -t archive.tar.gz
zstd -t archive.tar.zst
Извлечение архива:
tar -xzvf archive.tar.gz -C /tmp/extract/
tar -xzvf archive.tar.gz path/inside/archive/file.conf
Инкрементальный архив (GNU tar):
tar -czvf backup.tar.gz -g snapshot.file /path/to/data
snapshot.file нужно переиспользовать между запусками.Потоковая передача по SSH (без промежуточного файла):
tar -czf - /data | ssh user@server "tar -xzf - -C /srv/data"
tar по умолчанию сохраняет права доступа, владельца/группу, mtime и симлинки; ACL и xattrs требуют явных опций (--acls, --xattrs).Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍12🤝7
This media is not supported in your browser
VIEW IN TELEGRAM
Это огромная база знаний про то, как работает Linux: загрузка системы, systemd, сеть, файловые системы, драйверы, безопасность и оптимизация. Статьи написаны точно и понятно, каждый раздел объясняет почему и как всё устроено. Даже если ты не используешь Arch, сайт объясняет общие принципы Linux, которые применимы в большинстве дистрибутивов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥9🤝8👎1
Как за одну команду узнать, что висит на занятом порту?
Иногда порт «занят», сервис не запускается, а система молчит. Эта техника позволяет моментально определить процесс, который держит сокет открытым, без перебора утилит и лишних шагов.
Самый быстрый способ вычислить, какой процесс слушает
Хороший вариант, если
🔥 Также можешь добавить алиас, чтобы проверять любой порт одной командой:
🚪 Linux Ready | #совет
Иногда порт «занят», сервис не запускается, а система молчит. Эта техника позволяет моментально определить процесс, который держит сокет открытым, без перебора утилит и лишних шагов.
lsof показывает PID и бинарь, использующий указанный порт:sudo lsof -i :8080
Самый быстрый способ вычислить, какой процесс слушает
TCP/UDP на нужном порту.ss даёт тот же результат, но компактнее:ss -tulpn | grep 8080
Хороший вариант, если
lsof не установлен.fuser выводит только PID, что удобно для последующего kill:sudo fuser 8080/tcp
alias port=‘sudo lsof -i :$1’Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥7❤6
Шпаргалка по управлению изолированными сетевыми стеками через iproute2: создание, удаление, перенос интерфейсов и мониторинг именованных network namespace. Позволяет тестировать и отлаживать сеть в полной изоляции, управляя адресами, маршрутами, veth-парами и loopback прямо из терминала.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍9❤5🤝2😁1