Работа с символическими и жёсткими ссылками!
Ссылки используются для повторного доступа к файлам и каталогам без дублирования данных. Применяются в пакетных менеджерах, конфигурациях, деплое и файловых структурах.
Создание жёсткой ссылки:
Жёсткая ссылка указывает на тот же inode, что и исходный файл. Удаление одного имени не удаляет данные, пока существует хотя бы одна ссылка.
Ограничения жёстких ссылок: они практически всегда применимы только к файлам; на каталоги, как правило, запрещены на уровне файловой системы.
Создание символической ссылки:
Симлинк — это отдельный файл, содержащий путь к целевому объекту (файлу или каталогу).
Просмотр ссылок и inode:
Одинаковый inode — жёсткие ссылки на один файл. Симлинк имеет собственный inode.
Проверка, куда указывает символическая ссылка:
Перезапись существующей символической ссылки:
Удаление ссылки:
Для жёсткой ссылки это удаление имени, а не данных.
🔥 Симлинки зависят от пути и могут «сломаться»; жёсткие ссылки устойчивы, но ограничены одной файловой системой и практически не применяются для каталогов
🚪 Linux Ready | #практика
Ссылки используются для повторного доступа к файлам и каталогам без дублирования данных. Применяются в пакетных менеджерах, конфигурациях, деплое и файловых структурах.
Создание жёсткой ссылки:
ln original.txt hardlink.txt
Жёсткая ссылка указывает на тот же inode, что и исходный файл. Удаление одного имени не удаляет данные, пока существует хотя бы одна ссылка.
Ограничения жёстких ссылок: они практически всегда применимы только к файлам; на каталоги, как правило, запрещены на уровне файловой системы.
Создание символической ссылки:
ln -s /path/to/original symlink
Симлинк — это отдельный файл, содержащий путь к целевому объекту (файлу или каталогу).
Просмотр ссылок и inode:
ls -li
Одинаковый inode — жёсткие ссылки на один файл. Симлинк имеет собственный inode.
Проверка, куда указывает символическая ссылка:
readlink symlink
readlink -f symlink
-f разворачивает цепочку ссылок до реального пути.Перезапись существующей символической ссылки:
ln -sfn /new/path symlink
-s — symbolic-f — удаляет существующий путь назначения перед созданием-n — не разыменовывать симлинк на каталогУдаление ссылки:
rm symlink
rm hardlink.txt
Для жёсткой ссылки это удаление имени, а не данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥10👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Этот сайт помогает анализировать структуры данных: деревья, графы, обходы и множество другого. Здесь нет решений задач или подготовкой к собеседованиям, упор именно на понимание того, как и почему всё устроено. Материал подается последовательно и концептуально, поэтому хорошо подходит даже новичкам.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍12🤝9
Со временем даже минималистичная Linux-система захламляется: остаются старые логи, кеши пакетов, временные файлы. Всё это съедает пространство и мешает обслуживанию.
В этом посте:
• Удаляем кеш APT и старые версии пакетов.
• Чистим временные файлы и мусор от приложений.
• Удаляем старые логи, освобождаем /var/log.
• Проверяем свободное место и очищаем остатки.
Такой подход помогает освободить несколько гигабайт и держать систему в порядке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥34👍10❤8🤝7
This media is not supported in your browser
VIEW IN TELEGRAM
Этот ресурс объясняет основы и важные концепции через примеры и живые объяснения. Тут ты найдёшь темы по синтаксису, функциям, структурам данных, алгоритмам и архитектуре. Полезно как новичкам, так и тем, кто хочет укрепить фундамент, понять внутренние механизмы и перестать путаться в деталях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤10🔥10
Параллельные команды в Bash!
Cразу получаешь PID процесса и FD для
Так отправляешь данные в stdin фоновой команды напрямую, без
Читаешь ответ синхронно, управляя порядком чтения и записи из Bash.
Ожидание завершения без busy-loop и sleep:
🔥
🚪 Linux Ready | #совет
coproc запускает команду асинхронно и создаёт для неё каналы ввода и вывода, доступные из Bash через файловые дескрипторы.Cразу получаешь PID процесса и FD для
stdin/stdout и можешь работать с ним как с обычным I/O:echo "ping" >&"${WORKER[1]}"Так отправляешь данные в stdin фоновой команды напрямую, без
cmd | cmd и без временных файлов:read -r result <&"${WORKER[0]}"Читаешь ответ синхронно, управляя порядком чтения и записи из Bash.
Ожидание завершения без busy-loop и sleep:
wait "$WORKER_PID"
coproc - встроенный механизм параллелизма Bash, который даёт управляемые фоновые процессы с явным I/O-контролем.Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤9🔥9
В этой статье:
• Показано, как превратить рутинные задачи в быстрые и удобные команды под себя;
• Разобраны реальные алиасы и скрипты для git, systemd, сети, дисков и мониторинга системы;
• На примерах видно, как со временем вырастает персональный набор инструментов, который реально экономит время работы.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍11❤9🤝3
В реальной системе пользователи постоянно появляются, меняются и исчезают. Важно уметь безопасно управлять доступом на всех этапах.
В этом посте:
• Создаём пользователя и задаём пароль;
• Разбираемся, чем su отличается от su -;
• Блокируем и разблокируем учётную запись;
• Управляем сроком действия пароля и группами;
• Корректно удаляем пользователя и его данные.
В итоге разбираем не отдельные команды, а связанный процесс управления учётной записью.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥14🤝11❤1
NAT позволяет устройствам из приватной сети выходить в интернет через один публичный IP, подменяя IP и порты на роутере.
На картинке — как меняется пакет до и после NAT, как работает NAT-таблица и почему несколько устройств могут использовать один public IP.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍12🔥9🤝2
Реализация swap-файла в Linux!
Swap — это механизм подстраховки по памяти, который помогает системе переживать пиковые нагрузки, снижать вероятность OOM и деградации сервисов.
Проверка текущего состояния — посмотреть активные swap-устройства:
Если swap не настроен, вывод будет пустым.
Для общего обзора памяти:
Создание swap-файла — создаётся обычным файлом нужного размера. Быстрый вариант:
Если fallocate недоступен или swapon отказывается работать с таким файлом, используется более универсальный способ:
На файловых системах с Copy-on-Write (например, btrfs) swap-файл требует отдельной настройки. (nocow, без compression и соблюдение требований FS), иначе swapon завершится ошибкой.
Права доступа:
Swap-файл должен быть доступен только root, иначе система откажется его использовать.
Инициализация и активация:
Swap начинает работать сразу, без перезагрузки. Проверка:
Автоподключение при загрузке — добавить в
Это стандартная и ожидаемая конфигурация.
Настройка swappiness — текущее значение:
На серверах значение часто уменьшают до 10–20, чтобы swap использовался как страховка, а не как активная память, конкретное значение зависит от профиля нагрузки.
Временное изменение — через sysctl, постоянное — через файл в
Отключение swap:
После этого файл можно удалить и убрать запись из
🔥 Swap-файл — простой и безопасный способ повысить устойчивость системы без переразметки дисков и с заметным снижением риска OOM.
🚪 Linux Ready | #практика
Swap — это механизм подстраховки по памяти, который помогает системе переживать пиковые нагрузки, снижать вероятность OOM и деградации сервисов.
Проверка текущего состояния — посмотреть активные swap-устройства:
swapon --show
Если swap не настроен, вывод будет пустым.
Для общего обзора памяти:
free -h
Создание swap-файла — создаётся обычным файлом нужного размера. Быстрый вариант:
sudo fallocate -l 4G /swapfile
Если fallocate недоступен или swapon отказывается работать с таким файлом, используется более универсальный способ:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
На файловых системах с Copy-on-Write (например, btrfs) swap-файл требует отдельной настройки. (nocow, без compression и соблюдение требований FS), иначе swapon завершится ошибкой.
Права доступа:
sudo chmod 600 /swapfile
Swap-файл должен быть доступен только root, иначе система откажется его использовать.
Инициализация и активация:
sudo mkswap /swapfile
sudo swapon /swapfile
Swap начинает работать сразу, без перезагрузки. Проверка:
swapon --show
Автоподключение при загрузке — добавить в
/etc/fstab:/swapfile none swap defaults 0 0
Это стандартная и ожидаемая конфигурация.
Настройка swappiness — текущее значение:
cat /proc/sys/vm/swappiness
На серверах значение часто уменьшают до 10–20, чтобы swap использовался как страховка, а не как активная память, конкретное значение зависит от профиля нагрузки.
Временное изменение — через sysctl, постоянное — через файл в
/etc/sysctl.d/.Отключение swap:
sudo swapoff /swapfile
После этого файл можно удалить и убрать запись из
/etc/fstab, если он больше не нужен.Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍16🔥9