Linux для чайника
Linux - Разбор утилит / инструментов - Новости / факты - Опросы для проверки знаний, навыков и многое другое. Только по вопросам сотрудничества: @altmainf Регистрация в перечне РКН https://clck.ru/3EpL9L
نمایش بیشتر📈 تحلیل کانال تلگرام Linux для чайника
کانال Linux для чайника (@os_linux_ru) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 19 747 مشترک است و جایگاه 6 798 را در دسته فناوری و برنامهها و رتبه 34 117 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 19 747 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 21 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -36 و در ۲۴ ساعت گذشته برابر 6 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 21.97% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 7.84% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 4 340 بازدید دریافت میکند. در اولین روز معمولاً 1 548 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 0 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند linux, скрипт, bash, grep, мониторинг تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.
Только по вопросам сотрудничества: @altmainf
Регистрация в перечне РКН https://clck.ru/3EpL9L”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 22 ژوئن, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
chown.
Чтобы предоставить пользователю с именем name возможность распоряжаться файлом file.txt:
chown name file.txt
Помимо изменения владельца файла, может изменяться группа его владельцев или его владелец и группа его владельцев одновременно.
В результате команды:
chown name:group file.txt
владельцем file.txt станет пользователь с именем name, а группой его владельцев — group.lshw
Если запустить команду без параметров, то на выходе получим огромный список в несколько сотен строк, включающий версию прошивки, установленные драйверы, поддерживаемые возможности, серийные номера, номера версий и информацию о шине.
Поэтому следует немного отфильтровать поток, запустив: sudo lshw -short или sudo lshw -businfo, чтобы увидеть список классов устройств, которые дальше можно передать утилите.
Пример вывода информации с конкретными классами:
sudo lshw -short -class bus -class cpu
Вывод можно преобразовать в форматы HTML, XML или JSON, к примеру:
sudo lshw -html -class storage > log.html
Чтобы убрать из вывода информацию, такую как IP адреса и серийные номера, можно добавить параметр -sanitizepsacct или acct.
Они предоставляют отличный способ отслеживать, что делают пользователи, какие команды они запускают, сколько ресурсов они потребляют, как долго пользователи активны в системе. Еще одна замечательная особенность в том, что она дает общие ресурсы, потребляемые такими службами, как Apache, MySQL, FTP, SSH и т.д.
Команды для мониторинга действий процесса:
⁃ ac — выводит статистику пользовательских входов/выходов (время подключения) в часах.
⁃ lastcomm — печатает информацию о ранее выполненных командах пользователя.
⁃ accton — используются для включения/выключения процесса учета.
⁃ sa — суммирует информацию о ранее выполненных командах.
⁃ last и lastb — показывают список последних зарегистрированных пользователей.
Пакет psacct доступен только для дистрибутивов на основе rpm (RHEL, CentOS и Fedora), а acct — для Ubuntu, Debian и Linux Mint.IP - - [date] "METHOD URL HTTP/1.1" STATUS SIZE
Пример:
192.168.1.10 - - [01/Feb/2026:10:12:34] "GET /api/users HTTP/1.1" 200 1234
Задача:
Вывести топ-5 IP, которые сделали больше всего запросов с кодом 500.
Решение:
awk '$9 == 500 {print $1}' access.log \
| sort \
| uniq -c \
| sort -nr \
| head -5
• awk '$9 == 500 {print $1}'
• • $9 — HTTP-код
• • $1 — IP-адрес
• sort — обязательная подготовка для uniq
• uniq -c — считаем количество повторений
• sort -nr — числовая сортировка по убыванию
• head -5 — топ-5find, а затем искать определенное содержимое в этих файлах с помощью grep.
Найти определенный текстовый шаблон в файлах в каталоге и его подкаталогах:
find /path/to/search -type f -exec grep -H "pattern" {} +
Найдите файлы, измененные в пределах временного диапазона, а затем выполните поиск внутри них:
find /path/to/search -type f -mtime -7 -exec grep -H "pattern" {} +
Найти файлы с расширением .txt и затем найти в них шаблон:
find /path/to/search -type f -name "*.txt" -exec grep -H "pattern" {} +some_long_command; echo $'\a'
• ; - отделяет команды друг от друга.
• echo $'\a' - подаст звуковой сигнал.file.txt и суффикс .txt
basename file.txt .txt
Получаем: file
Но можно обойтись внутренними преобразованиями в bash
filename=file.txt; echo ${filename%.*}
Получаем: file
Или наоборот, отрезать имя файла и оставить только расширение:
filename=file.txt; echo ${filename##*.}
Получаем: txtCHMOD и CHOWN
Говоря простыми словами, chown определяет, кому принадлежит файл, а chmod определяет, кто что может делать этим файлом.
chmod и chown работают вместе: chmod может контролировать, что разрешено владельцу и группе владельцев для данного файла или каталога, в то время как chown быстро меняет, кто в системе получает доступ к файлу.bat — это утилита командной строки, предназначенная для замены стандартной команды cat - чтение данных из файла или стандартного ввода.
Основное отличие bat от cat заключается в добавлении подсветки синтаксиса, интеграции с Git, а также в возможности отображения номеров строк и вывода в формате "paging".
Примеры использования:
1. Просмотр файла с подсветкой синтаксиса и номерами строк:
bat file.txt
2. Сравнение файла с его версией в Git:
bat --diff file.txt
3. Сочетание с другими командами через pipe:
Чтобы найти определенный текст в файле и вывести результат с подсветкой синтаксиса, вы можете использовать grep совместно с bat:
grep -n 'search_term' file.txt | bat
Установка bat зависит от дистрибутива. Пример для Debian:
sudo apt install bat
В некоторых дистрибутивах команда может быть доступна как batcat из-за конфликта имен..so), бинарники и зависимости в кэш страниц памяти.
При следующем запуске система берёт всё из RAM, а не читает с диска.
После установки ( sudo apt install preload ) автоматически стартует как systemd-сервис.
Настройка (по желанию):
Конфиг в /etc/preload.conf. Основные параметры:
# Количество процессов для отслеживания (по умолчанию 150–200)
model.cachesize = 200
# Какие директории сканировать (добавьте свои)
map.minimum = /usr/bin:/usr/local/bin:/usr/games:/bin:/sbin:/usr/sbin
# Исключить ненужное (например, редко используемые)
exclude = /usr/bin/rare_app /usr/lib/firefox/firefox-bin
# Частота обновления модели (в секундах)
cycle = 3600
После правки:
sudo systemctl restart preload
Проверяем, что работает:
# статус службы
sudo systemctl status preload
# лог предзагрузок
cat /var/log/preload.log
# вручную обновить модель
sudo preload-predictПривет, мир» вы видите «ÐŸÑ€Ð¸Ð²ÐµÑ‚, мир» или полные кракозябры.
Проблема кодировки. И лучший инструмент для её решения в Linux — утилита iconv.
iconv — часть GNU libc, конвертирует текст из одной кодировки в другую. Поддерживает сотни encoding’ов: UTF-8, CP1251, KOI8-R, ISO-8859-1, CP866 и т.д.
Установка (если вдруг нет):
sudo apt install iconv
# на Debian/Ubuntu уже есть в libc6
# или просто проверьте: iconv --version
Основные опции:
• -f — from (исходная кодировка)
• -t — to (целевая кодировка)
• -o — файл вывода
• --list — показать все поддерживаемые кодировки (их > 1000!)
Примеры:
1. Конвертация файла на месте
Файл text.txt в CP1251, нужно в UTF-8:
iconv -f CP1251 -t UTF-8 text.txt -o text_utf8.txt
Потом можно перезаписать оригинал:
iconv -f CP1251 -t UTF-8 text.txt > text.txt.tmp && mv text.txt.tmp text.txt
2. Через stdin/stdout (в пайплайне)
cat old_file.txt | iconv -f KOI8-R -t UTF-8
Или с curl:
curl -s http://old-site.ru/page | iconv -f CP1251 -t UTF-8
3. Автоопределение кодировки + конвертация
iconv не угадывает сам, но комбинируем с file или uchardet:
# Сначала узнаём кодировку
file -i old_file.txt
# или
uchardet old_file.txt
# Потом конвертируем
iconv -f $(uchardet old_file.txt) -t UTF-8 old_file.txt -o new_file.txt
4. Массовое конвертирование всех файлов в директории
for file in *.txt; do
iconv -f CP1251 -t UTF-8 "$$ file" -o " $${file%.txt}_utf8.txt"
done
____________________
если iconv ругается «illegal input sequence» — добавьте //IGNORE или //TRANSLIT:
iconv -f CP1251 -t UTF-8//TRANSLIT//IGNORE bad_file.txt
TRANSLIT — заменит неизвестные символы на похожие, IGNORE — просто пропустит.configure из файла configure.ac (или configure.in).
configure — это shell-скрипт, который при запуске проверяет систему:
• есть ли нужные заголовки, библиотеки, функции
• какой компилятор, какие флаги
• где лежат зависимости (например, pkg-config)
На выходе — настроенный Makefile и config.h.
Automake
Из файла Makefile.am генерирует Makefile.in - шаблон Makefile, который потом подставляется в Autoconf.
Позволяет писать простые декларативные правила вместо огромных ручных Makefile.
Libtool
Упрощает сборку и использование shared-библиотек на разных платформах (особенно где .so, .dylib, .dll отличаются).
M4
Макро-процессор, на котором построены Autoconf и Automake. В configure.ac вы пишете макросы M4.
Дополнительно: gettext (для интернационализации), aclocal и т.д.
Как это работает на практике:
Разработчик проекта:
1. Пишет configure.ac и Makefile.am.
2. Запускает autoreconf -i (или старый autotools набор команд: aclocal → autoconf → automake).
3. Коммитит только эти файлы + вспомогательные (NEWS, README, AUTHORS).
Пользователь (или дистрибутив):
./configure # проверяет систему, генерирует Makefile
make # сборка
sudo make install # установка
Пример простого configure.ac:
mAC_INIT([myprog], [1.0], [bug@example.com])
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUTsudo sync
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
Цифры:
• 1 — только данные файлов
• 2 — метаданные
• 3 — всё
Проверка:
free -h | grep Mem
buff/cache резко упадёт → больше free.
Альтернатива:
sudo sysctl -w vm.drop_caches=3
Готовый one-liner для теста диска:
sudo sync; echo 3 > /proc/sys/vm/drop_caches; dd if=/bigfile of=/dev/null bs=1M status=progress
Мини-скрипт:
#!/bin/bash
free -h | grep Mem
sudo sync; echo 3 > /proc/sys/vm/drop_caches
free -h | grep Mem
echo "Кэш сброшен"
Не ставь в cron — хуже будет. Linux сам управляет кэшем лучше нас.htop (если нет — sudo apt install htop или dnf install htop).
Что смотреть:
• CPU: если все ядра на 100% — ищем процесс вверху списка (сортировка по %CPU — нажми F6 → %CPU).
• RAM/Swap: если Swap активно используется (жёлтая полоска) — нехватка памяти, процесс убивает OOM-killer.
• Load Average (вверху): три числа — 1/5/15 мин. Если на 4-ядерной машине >8-12 — перегрузка.
Альтернатива без htop: top (Shift+P — сортировка по CPU, Shift+M — по MEM).
Шаг 2: Память — free и vmstat
free -h # сколько реально свободно
vmstat -w 1 10 # каждую секунду 10 раз
Ключевые колонки в vmstat:
• r — процессы в очереди на CPU (если > числа ядер — CPU bottleneck)
• b — процессы в uninterruptible sleep (обычно I/O wait)
• si/so — swap in/out (если не нули — памяти не хватает)
• wa — % CPU в I/O wait (высокий — диски тормозят)
Шаг 3: Диски — iostat и iotop
iostat -xz 1 10 # расширенная стат-а каждую сек.
iotop # как htop, но для I/O (нужен root)
В iostat смотрим:
• %util близко к 100% — диск загружен полностью
• await > 20-30 ms — медленный отклик (SSD должно быть <1 ms)
• svctm устарело, но если высокое — проблемы
Если NVMe/SSD, а util 100% — часто виноваты большие логи или бэкапы.
Шаг 4: CPU детально — mpstat и pidstat
mpstat -P ALL 1 10 # нагрузка по каждому ядру
pidstat -u 1 10 # CPU по процессам со временем
Поможет понять: один поток жрёт одно ядро или нагрузка равномерная.
Шаг 5: Исторические данные — sar (sysstat)
Если проблема не постоянная:
sar -u 10 5 # CPU сейчас
sar -r # память за день
sar -d # диски за день
sar -n DEV # сеть
Sysstat по умолчанию собирает данные каждые 10 мин — золотой источник для ночных тормозов.
Шаг 6: Конкретный процесс — strace и perf
Если виновник известен (например, mysqld или java):
strace -p PID -c
# системные вызовы и сколько времени на них
perf top -p PID
# что именно в CPU жрёт (нужен kernel-headers)
perf record -p PID -g sleep 10; perf report
# профилирование
Шаг 7: Ядро и аппаратные проблемы
dmesg -T --follow
# последние сообщения ядра с читаемыми датами
cat /proc/interrupts
# если один IRQ очень высокий — драйвер/устройство
Частые виновники: ошибки диска, перегрев, сетевые драйверы.
Шаг 8: Сеть — если тормозит только удалённо
iftop # кто сколько трафика жрёт
nethogs # по процессам
ping -c 4 google.com
mtr google.com # трассировка + пинг-P для параллели.
Пример: убить процессы по grep
ps aux | grep "myapp" | awk '{print $2}' | xargs -P 4 kill
Пояснение: grep находит, awk берёт PID ($2), xargs kill'ит параллельно 4 штуки (-P4).
Практика: с find — find . -name "*.tmp" | xargs rm (без -exec). Экономит время на серверах.cron0 23 * * * shutdown -h now
Или с предупреждением за 10 минут:
cron50 22 * * * wall "Компьютер выключится через 10 минут!"
0 23 * * * shutdown -h now
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
