Linux для чайника
Linux - Разбор утилит / инструментов - Новости / факты - Опросы для проверки знаний, навыков и многое другое. Только по вопросам сотрудничества: @altmainf Регистрация в перечне РКН https://clck.ru/3EpL9L
نمایش بیشتر📈 تحلیل کانال تلگرام Linux для чайника
کانال Linux для чайника (@os_linux_ru) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 19 722 مشترک است و جایگاه 6 656 را در دسته فناوری و برنامهها و رتبه 33 880 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 19 722 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 17 ژوئیه, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -28 و در ۲۴ ساعت گذشته برابر 1 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 17.28% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 6.94% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 3 407 بازدید دریافت میکند. در اولین روز معمولاً 1 369 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 0 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند linux, скрипт, bash, grep, мониторинг تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.
Только по вопросам сотрудничества: @altmainf
Регистрация в перечне РКН https://clck.ru/3EpL9L”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 18 ژوئیه, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
در حال بارگیری داده...
| تاریخ | رشد مشترکین | اشارات | کانالها | |
| 18 ژوئیه | +1 | |||
| 17 ژوئیه | +3 | |||
| 16 ژوئیه | +2 | |||
| 15 ژوئیه | +1 | |||
| 14 ژوئیه | +1 | |||
| 13 ژوئیه | 0 | |||
| 12 ژوئیه | +4 | |||
| 11 ژوئیه | +7 | |||
| 10 ژوئیه | +2 | |||
| 09 ژوئیه | +5 | |||
| 08 ژوئیه | +2 | |||
| 07 ژوئیه | 0 | |||
| 06 ژوئیه | +2 | |||
| 05 ژوئیه | +3 | |||
| 04 ژوئیه | +3 | |||
| 03 ژوئیه | +6 | |||
| 02 ژوئیه | 0 | |||
| 01 ژوئیه | +3 |
df -h
показывает
Filesystem Use% /dev/sda2 100%Однако
du -sh /*
дает всего около 40 ГБ.
Куда исчезло место?
Решение:
Такое происходит, когда удалили большой файл, но процесс продолжает его использовать.
Проверяем: lsof | grep deleted
Например:
java logfile deleted 30GПроцесс продолжает держать файл открытым. Освободить место Можно через:
systemctl restart java или kill PID
После завершения процесса место сразу освободится.| 2 | Задача: Сервер перестал загружаться после обновления ядра
Условие: На сервере Ubuntu 24.04 после выполнения:
apt update
apt upgrade
reboot
сервер больше не загружается.
На экране:
Kernel panic - not syncing:
VFS: Unable to mount root fs on unknown-block(0,0)
Требуется:
• определить причину;
• восстановить загрузку;
• сохранить данные;
• сделать так, чтобы проблема не повторилась.
Что должен сделать администратор
1. Загрузиться со старого ядра
В меню GRUB выбрать: Advanced options
и загрузить предыдущую версию ядра.
2. Проверить наличие initramfs
ls /boot
Например:
vmlinuz-6.8.0
initrd.img-6.8.0
Если initramfs отсутствует: update-initramfs -u
3. Проверить UUID
blkid
cat /etc/fstab
Если UUID изменился — исправить.
4. Проверить драйверы
Например RAID-контроллер требует модуль megaraid_sas
Проверяем: lsinitramfs /boot/initrd.img | grep megaraid
Если нет
echo megaraid_sas >> /etc/initramfs-tools/modules
update-initramfs -u
5. Переустановить GRUB
grub-install /dev/sda
update-grub
Итог: Сервер успешно загружается. | 2 943 |
| 3 | Авария: Во время работы отказал диск /dev/sdb.
После замены диска сервер необходимо полностью восстановить.
Исходные условия:
• Имеется сервер Ubuntu Server 24.04.
Конфигурация:
• два SSD по 1 ТБ (/dev/sda, /dev/sdb)
• программный RAID1 (mdadm)
• LVM поверх RAID
• файловая система XFS
• сервер предоставляет NFS
• на сервере работает PostgreSQL
• загрузчик GRUB установлен на оба диска
Шаг 1. Проверяем состояние RAID: cat /proc/mdstat
Получаем:
md0 : active raid1 sda1[0]
976630336 blocks [2/1] [U_]
U = диск исправен _ = диск отсутствует
Также
mdadm --detail /dev/md0
Вывод
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
RAID работает в деградированном режиме.
Шаг 2. Определяем неисправный диск: smartctl -a /dev/sdb
Типичный вывод:
SMART overall-health self-assessment test result: FAILED или I/O error
Шаг 3. Исключаем диск из RAID
Если он еще виден системой:
mdadm /dev/md0 --fail /dev/sdb1
После этого
mdadm /dev/md0 --remove /dev/sdb1
Теперь RAID использует только один диск.
Шаг 4. Замена физического диска
После замены сервер обнаружил новый диск.
lsblk
Получаем:
sda
sdb
Но новый диск пустой.
Шаг 5. Копируем таблицу разделов
sgdisk -R=/dev/sdb /dev/sda
Проверяем: fdisk -l
Шаг 6. Меняем GUID разделов
Если GPT: sgdisk -G /dev/sdb
Иначе возникнет конфликт одинаковых UUID GPT.
Шаг 7. Добавляем диск обратно в RAID
mdadm /dev/md0 --add /dev/sdb1
Проверяем: cat /proc/mdstat
Будет
md0 : active raid1 sdb1[2] sda1[0]
recovery
Шаг 8. Следим за синхронизацией
watch cat /proc/mdstat
Ждем 100%
После окончания: [UU]
Шаг 9. Проверяем состояние RAID
mdadm --detail /dev/md0
Получаем:
State : clean
Active Devices : 2
Шаг 10. Проверяем LVM
pvdisplay
vgdisplay
lvdisplay
Все тома должны быть доступны.
Шаг 11. Проверяем файловую систему
Для XFS: xfs_repair -n /dev/vg_data/lv_pg
Параметр: -n означает только проверку без изменений.
Если ext4: fsck -f
Шаг 12. Проверяем точки монтирования
mount или df -h
Получаем:
/dev/mapper/vg_data-lv_root
/dev/mapper/vg_data-lv_pg
/dev/mapper/vg_data-lv_nfs
Шаг 13. Проверяем PostgreSQL
systemctl status postgresql или pg_isready
Должно быть: accepting connections
Проверяем базы: sudo -u postgres psql
SELECT now();
Шаг 14. Проверяем NFS
systemctl status nfs-server
showmount -e localhost
Экспорт должен отображаться.
Шаг 15. Восстанавливаем GRUB
После замены диска загрузчик отсутствует.
Устанавливаем: grub-install /dev/sdb
Потом: update-grub Проверяем: efibootmgr -v
(для UEFI)
или
grub-install /dev/sda
grub-install /dev/sdb
для BIOS.
Шаг 16. Проверяем mdadm.conf
cat /etc/mdadm/mdadm.conf
Если UUID изменился
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Затем update-initramfs -u
Шаг 17. Контрольная проверка
cat /proc/mdstat
[UU]
lsblk
mdadm --detail /dev/md0
systemctl status postgresql
systemctl status nfs-server
reboot
После перезагрузки: cat /proc/mdstat
Должно быть: [UU] | 3 481 |
| 4 | Кроме bash в Linux существуют и другие оболочки: sh, csh, ksh, zsh, tcsh и пр. Все командные оболочки, установленные в системе, прописаны в файле /etc/shells.
Иногда в файле /etc/shells можно найти /bin/false и /bin/true, которые не являются оболочками. Это «заглушки», которые можно использовать, если вы хотите отключить ту или иную учетную запись пользователя.
Как известно, при входе пользователя в систему запускается установленная для него оболочка. Так вот, если для какого-либо пользователя задать оболочку /bin/false (или /bin/true), он не сможет войти в систему. Точнее, в систему-то он войдет, но и сразу выйдет из нее, поскольку сессия пользователя длится до завершения работы его оболочки, а обе заглушки ничего не делают, кроме того, что просто возвращают значение 0 (для false) или 1 (для true). | 3 673 |
| 5 | 👻 Заставь Linux зарабатывать деньги
Многие учат Linux, чтобы попасть в IT, стать сисадмином, DevOps-инженером, работать с серверами или просто лучше понимать, как всё устроено под капотом
Но Linux можно использовать не только как навык для работы
На его базе можно поднимать свои сервисы, автоматизации, CRM, ботов и небольшие приложения, которые решают реальные задачи бизнеса
И сейчас для этого уже не обязательно быть senior-разработчиком или годами пилить стартап
ИИ сильно упростил путь:
ты задаёшь направление, описываешь задачу, собираешь архитектуру — и нейронка помогает быстрее написать код, собрать MVP и довести идею до рабочего продукта
Для этого мы открыли доступ к видео «Архитектор кода»
Внутри — видео-урок о том, как начать делать свои SaaS-приложения и зарабатывать на них, даже если ты пока не считаешь себя сильным программистом
В видео ты увидишь реальные примеры:
— как ребята заработали 150 000 ₽ на своём приложении в App Store
— как сделали 300 000 ₽ на продаже простой CRM под конкретную нишу
— как можно собирать такие решения с помощью ИИ, серверов, кода и правильной постановки задачи
Главная мысль простая:
Linux, код и нейронки — это не только про работу «на кого-то»
Это база, с помощью которой можно собирать свои инструменты, тестировать идеи и постепенно создавать дополнительный источник дохода
ПОЛУЧИТЬ ВИДЕО
Доступ к видео открыт на 24 часа
Кликай по тексту выше и посмотри, как начать делать свои приложения и сервисы | 3 292 |
| 6 | Смотрим общую информацию о жёстком диске
Для регулировки и просмотра параметров жёстких дисков с интерфейсом ATA существует утилита hdparm.
Утилита может установить такие параметры как объём кеш-памяти накопителя, спящий режим, управление питанием, управление акустикой и настройки DMA.
hdparm имеет очень серьёзный недостаток: утилита может привести к сбою компьютера и сделать данные на жёстком диске недоступными, после применения сочетания некоторых параметров.
Для просмотра общей информации о жёстком диске используется команда: hdparm -i /dev/sd<буква> | 3 765 |
| 7 | Для проверки скорости записи/чтения можно использовать утилиту dd
Измеряем скорость записи:
dd if=/dev/zero of=testfile bs=1M count=1000 conv=fdatasync
Команда создаст файл testfile размером 1000 МБ, заполненный нулями, и измерит скорость записи данных в этот файл.
Измеряем скорость чтения:
dd if=testfile of=/dev/null bs=1M
Команда прочитает содержимое файла testfile и измерит скорость чтения данных из него. | 5 738 |
| 8 | Изменение прав доступа командой chmod с помощью чисел.
Чтобы изменить права доступа к файлу, можно воспользоваться командой chmod. В таком случае каждому праву доступа (чтение, запись и выполнение) присваивается номер — r=4, w=2 и x=1 соответственно, то есть для задания прав доступа используются наборы чисел.
Например, чтобы установить полные права доступа для себя как владельца, необходимо определить первое число — 7 (4 + 2 + 1), а затем дать группе и другим пользователям право только на чтение, указав второе и третье числа — 4 (4 + 0 + 0), чтобы в итоге получилось число 744. Любая комбинация прав доступа включает числа от 0 (нет прав доступа) до 7 (полные права доступа).
Примеры того, как изменить права доступа к файлу (с именем some_file) и как это будет выглядеть:
Установим права доступа rwxrwxrwx:
chmod 777 some_file
Установим права доступа rwxr-xr-x:
chmod 755 some_file
Установим права доступа rw-r--r--:
chmod 644 some_file
Установим права доступа ---------:
chmod 000 some_file | 6 973 |
| 9 | Автоматическая очистка временных файлов
Cкрипт будет удалять файлы из директории /tmp, которые не изменялись более 7 дней.
#!/bin/bash
find /tmp -type f -mtime +7 -exec rm {} \;
find /tmp — ищет файлы в директории /tmp.
-type f — ищет только файлы (не каталоги).
-mtime +7 — находит файлы, которые не изменялись более 7 дней.
-exec rm {} \; — удаляет найденные файлы. | 6 592 |
| 10 | Как работает cron
Его основная задача выполнять нужные процессы в нужное время.
Существует конфигурационный файл /etc/crontab, из которых он берет информацию о том что и когда нужно выполнять. Часто, в современных дистрибутивах там прописан запуск утилиты run-parts, которая запускает нужные скрипты из следующих папок:
/etc/cron.minutely - каждую минуту
/etc/cron.hourly - каждый час
/etc/cron.daily - каждый день
/etc/cron.weekly - каждую неделю
/etc/cron.monthly - каждый месяц
В этих папках должны находиться скрипты, которые нужно выполнять с указанным интервалом. Скрипты должны иметь права на выполнение и их имя не должно содержать точки. | 6 480 |
| 11 | Команда pstree
Похожа на ps, но вместо перечисления запущенных процессов, она показывает их в виде дерева.
В простейшей форме, когда pstree вызывается без какой-либо опции или аргументов, она отображает иерархическую древовидную структуру всех запущенных процессов.
Чтобы отключить объединение идентичных веток, примените:
pstree -c
Если в качестве аргумента указано имя пользователя, pstree отображает только процессы, принадлежащие этому пользователю:
pstree username
pstree также позволяет выделить процессы для лучшего визуального представления. Аргумент -h выделит текущий процесс и все его предки:
pstree -h | 5 048 |
| 12 | ⚠️ Хватит плодить хрупкие скрипты и оставлять дыры для троянов. Пора писать пуленепробиваемый инфраструктурный код.
🎥 Приглашаем на вебинар - Продвинутый Bash
На вебинаре вы узнаете:
- Связка set -euo pipefail навсегда исключит тихое проглатывание ошибок и потерю данных в конвейерах.
- Нативные подстановки Bash заменят тысячи ресурсоемких вызовов sed и сэкономят CPU.
- Регулярный мониторинг системных профилей защитит продакшен от перехвата команд троянами.
- Грамотный перехват сигналов через trap обеспечит безопасное сворачивание процессов при сбоях.
В результате вебинара вы:
- Замените многоуровневые костыли лаконичной логикой на базе ассоциативных массивов.
- Исключите утечки глобальных переменных через жесткую изоляцию областей видимости в функциях.
- Внедрите нативную построчную трассировку скриптов вместо примитивного дебага echo-принтами.
- Начнете напрямую пробрасывать переменные окружения в SystemD-юниты для надежного старта сервисов.
🧠 Открытый урок проходит в преддверии старта курса «Администратор Linux. Продвинутый уровень»
👉 Для участи зарегистрируйтесь: https://otus.pw/fiOO/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru | 3 912 |
| 13 | Создаем пользовательский отчет
Скрипт создает отчет о текущих пользователях в системе и сохраняет его в файл user_report.txt. (Отчет содержит имя пользователя, его UID и время последнего входа).
#!/bin/bash
output_file="user_report.txt"
echo "User Report" > "$output_file"
echo "===================" >> "$output_file"
cut -d: -f1,3,6 /etc/passwd | while IFS=: read user uid home; do
last_login=$(last -n 1 "$user" | head -n 1 | awk '{print \$4, \$5, \$6, \$7}')
echo "$user (UID: $uid) - Last login: $last_login" >> "$output_file"
done
cut -d: -f1,3,6 /etc/passwd — извлекает имя пользователя, UID и домашнюю директорию из файла /etc/passwd.
last -n 1 "$user" — получает информацию о последнем входе пользователя. | 4 386 |
| 14 | Traffic Control. Команда tc
Это набор инструментов для управления сетевым трафиком внутри Linux.
То, что вы можете сделать с помощью tc, одновременно впечатляет и вызывает отвращение. Это не для слабонервных, и настройка различных манипуляций с трафиком отнюдь не проста, но научитесь понимать это, и вы сможете использовать всю мощь управления трафиком в Linux.
Распространенным примером использования tc является применение некоторой задержки пакетов к сетевому соединению.
Чтобы создать задержку 100мс с помощью tc:
sudo tc qdisc add dev eth0 root netem delay 100ms
Теперь вы можете это проверить, пиганув например на 8.8.8.8
Чтобы убрать задержку, которую вы только что установили, выполните:
sudo tc qdisc del dev eth0 root | 5 785 |
| 15 | Довольно интересен с практической точки зрения каталог /sys/power.
В файле state находится состояние питание. Изменив должным образом содержимое этого файла, можно изменить состояние питания.
Например, вот как можно перевести систему в состояние "Suspend to RAM", когда питание процессора отключается, но питание на память подается, благодаря чему ее содержимое не уничтожается:
sudo echo -n mem > /sys/power/state
При желании можно отправить систему в состояние "Suspend to Disk", когда содержимое памяти будет записано на жесткий диск, после чего питание будет отключено:
sudo echo -n disk > /sys/power/state | 6 046 |
| 16 | Начиная с Bash 4.0, поддерживаются хеш-таблицы (словари). Это позволяет хранить данные в формате ключ-значение прямо в памяти скрипта.
Зачем: Избавляет от необходимости парсить CSV/JSON внешними утилитами для простых задач.
Пример:
declare -A users
users[ivan]="1001"
users[maria]="1002"
# Доступ по ключу
echo "UID Ивана: ${users[ivan]}"
# Перебор всех ключей
for key in "${!users[@]}"; do
echo "User: $key, UID: ${users[$key]}"
done | 6 854 |
| 17 | Модификаторы переменных
Bash умеет манипулировать строками внутри переменных без вызова внешних утилит вроде sed, awk или cut. Это работает быстрее, так как не создает новых процессов.
Удалить расширение файла:
FILE="archive.tar.gz"
echo "${FILE%.*}" # Выведет: archive.tar (удаляет кратчайшее совпадение с конца)
echo "${FILE%%.*}" # Выведет: archive (удаляет longest совпадение с конца)
Заменить подстроку:
URL="http://example.com"
echo "${URL/http/https}" # Выведет: https://example.com
Значение по умолчанию:
echo "${VAR:-default_value}" # Если VAR пуст или не установлена, вернет "default_value" | 5 722 |
| 18 | Вам не нужен Docker, чтобы ограничить процесс по CPU или памяти. В современных Linux (с cgroup v2) это делается через systemd-run или прямую запись в cgroupfs.
Запустить команду с ограничением в 50% одного ядра и 512МБ памяти:
systemd-run --scope -p CPUQuota=50% -p MemoryMax=512M ./heavy_script.sh
Или ограничить уже работающий процесс (зная его PID):
# Найти slice процесса
systemctl status <pid>
# Изменить лимиты динамически
systemctl set-property system.slice CPUQuota=20%
Позволяет изолировать «прожорливый» скрипт или процесс так, чтобы он не положил весь сервер, без настройки контейнеров. | 5 756 |
| 19 | Атомарные снимки файловой системы
Большинство админов делают бэкапы баз данных, останавливая сервис или используя сложные скрипты. Но в Linux есть системный вызов fsfreeze, который ставит файловую систему на паузу для записи (все новые записи блокируются, чтения работают).
# Заморозить ФС (например, перед созданием LVM-снапшота)
fsfreeze -f /mnt/data
# Создать снапшот (мгновенно, так как запись остановлена)
lvcreate -s -n snap_data /dev/vg/data
# Разморозить
fsfreeze -u /mnt/data
Это гарантирует консистентность данных на уровне блоков без остановки приложений. Поддерживается ext4, XFS, Btrfs. Используется внутри Docker и облачных провайдеров для создания снимков дисков «на лету». | 5 358 |
| 20 | Для быстрого просмотра потока данных или фрагмента файла, используйте команды head и tail.
Например, команда: head /etc/passwd отобразит первые десять строк файла с паролем, а команда: tail /etc/passwd покажет заключительные десять строк.
Количество отображаемых строк можно изменить, применив параметр -n, в котором число n равно количеству строк, которые необходимо увидеть.Например: head -5 /etc/passwd
Чтобы вывести строки, начиная со строки под номером n, используйте команду: tail +n | 4 990 |
