Linux для чайника – Telegram
Linux для чайника
20K subscribers
89 photos
4 files
80 links
Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.

Только по вопросам сотрудничества: @altmainf

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Загрузка модулей ядра

Загрузить модуль в ядро можно при помощи двух команд: «insmod» и «modprobe».

Область применения этих команд:

- при помощи «insmod» подгружается файл модуля из произвольного места файловой системы (например, пользователь скомпилировал модули и перед переносом в дерево ядра решил проверить его работоспособность);

- при помощи «modprobe» подгружаются уже готовые модули, включенные в дерево модулей текущей версии ядра.
S.M.A.R.T.

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

Анализируя данные S.M.A.R.T., пользователь может оценить состояние своих накопителей и решить, требуют ли они замены или ещё смогут работать долго и без сбоев.

Установка для дистрибутивов на основе Debian:
sudo apt-get install smartmontools

Теперь можно вывести все данные S.M.A.R.T. командой smartctl с опцией -a и указанием анализируемого диска:
sudo smartctl -a /dev/sda

Сначала будет выведена информация о модели вашего HDD и SSD, а немного ниже можно найти саму таблицу с данными S.M.A.R.T.
Команда umount

umount — утилита командной строки в UNIX-подобных системах.

Применяется для размонтирования файловых систем, предварительно смонтированных посредством вызова утилиты mount. Для её использования требуются привилегии суперпользователя.

К примеру, чтобы размонтировать раздел hda2:
umount /dev/hda2

Размонтирование всех смонтированных файловых систем (кроме корневой):
umount -a

Принудительное размонтирование, вне зависимости, используется ли устройство или нет:
umount -f /cdrom
Команда readlink

Команда readlink в Linux используется для печати разрешенных символических ссылок или канонических имен файлов.

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

Примеры:

Получить файл, на который указывает символическая ссылка:
readlink some_file_name

Получить абсолютный путь к файлу:
readlink -f some_file_name
Создание образа initramfs

Сценарий update-initramfs управляет вашими образами initramfs на вашем локальном компьютере. Он отслеживает существующие архивы initramfs в /boot.

Есть три режима работы: создать, обновить или удалить (Обязательно указать хотя бы один из этих режимов)

initramfs — это cpio-архив, сжатый gzip. Во время загрузки ядро распаковывает этот архив в RAM-диск, монтирует и использует его как начальную корневую файловую систему.

Пример:
Чтобы обновить initramfs новейшего ядра:
update-initramfs -u
Объединение строк файлов

paste
это команда, которая позволяет объединять строки файлов по горизонтали.

Она выводит строки, состоящие из последовательно соответствующих строк каждого файла, указанного в качестве аргумента, разделенных табуляцией.
paste file1 file2

Чтобы вывести соединенные строки через символ, который хотите вы, например через пробел, а не табуляции, можно воспользоваться параметром -d:
paste -d ' ' file1 file2
Операция изменения корневого каталога - chroot

Термин chroot может относиться или к концепции изменений корневого каталога, или к системному вызову chroot(2), или к программе chroot(8).

Изменение корневого каталога производится при помощи системного вызова chroot(2). Изменение корневого каталога затрагивает только текущий процесс и всех его потомков.

Если требуется запустить программу с изменённым корневым каталогом, но в данной программе не предусмотрено выполнение вызова chroot(2), используют программу chroot(8).

Эта программа принимает в качестве параметров новый корневой каталог и путь к программе. Она сначала сама выполняет вызов chroot(2) для изменения собственного корневого каталога на указанный, а затем запускает программу по заданному пути.
Команда Dracut

Используется для улучшения работы загрузочной системы Linux и создания загрузочного образа Linux путем копирования оборудования и документов из смонтированной системы и объединения их с Dracut Framework.

Чтобы перезаписать существующее изображение:
sudo dracut -force

Выбрать любое другое имя файла для фотографии:
dracut foobar.img

Чтобы быстро запустить правильную командную строку ядра:
sudo dracut --print-cmdline
Команда mkinitrd

Используется для создания файла изображения, который вы хотите загрузить в псевдодиск.

mkinitrd могут создавать файлы изображений для включения в псевдодиска Linux при загрузке.

Параметры:
-f -- если указанное изображение спросить фамилию дубликат существующего файла, переписать существующий файл.
-v -- Отображает подробную информацию при выполнении.
--omit-scsi-modules -- Не загружать модуль SCSI.
--preload = <модуль имя> -- Указывает загружаемый модуль.
--with = <модуль имя> -- Указывает загружаемый модуль.
--version -- Естствн, показать информацию о версии.
Утилита sync

Она предназначена для обновления файловых систем и для синхронизации данных на диске с данными в памяти.

При этом выполняется системный вызов sync, который вызывает запись всех буферизованных изменений метаданных файлов и данных в базовые файловые системы.

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

sync [--help] [--version]

После выполнения команды sync необходимо обеспечить достаточную паузу для освобождения очередей драйверов и полного сохранения всех данных на диске.
Основная задача команды init

Команда init инициализирует процессы и управляет ими.

Его основная роль заключается в запуске процессов на основе записей, считанных из файла /etc/inittab.
(файл /etc/inittab обычно требует, чтобы команда init запускала команду getty для каждой строки, в которой пользователь может войти в систему)

Команда init управляет автономными процессами, требуемыми системой.

Процесс, который составляет большую часть действий по диспетчеризации процессов команды init, называется /usr/sbin/getty. Этот процесс инициирует отдельные линии терминала.

Другими процессами, обычно запускаемыми командой init, являются демоны и оболочка.
Как удалить RAID-массив?

Перед тем, как удалять RAID-массив mdraid желательно остановить все службы и приложения использующие RAID-массив, после чего отмонтировать все имеющиеся подключения к RAID-массиву, например:
umount /mount/point

Удаляем упоминание об RAID-массиве из /etc/fstab

Останавливаем RAID-массив:
mdadm -S /dev/<raid_name>

Далее вы должны увидеть: mdadm: stopped /dev/<raid_name>

Очищаем супер-блоки на дисках:
mdadm --zero-superblock --force <все диски, которые были в массиве>

Удаляем старые метаданные и подпись на дисках:
wipefs --all --force <все диски, которые были в массиве>
Команда diffstat

diffstat читает выходные данные команды diff и отображает гистограмму вставок, удалений и модификаций файлов.

Гистограмма — способ представления табличных данных в графическом виде — в виде столбчатой диаграммы.

Отображение изменений на гистограмме:
diff <file1> <file2>| diffstat

Отображать вставленные, удаленные и измененные изменения в виде таблицы:
diff <file1> <file2> | diffstat -t

Установить на Ubuntu:
sudo apt install diffstat
3 примера использования команды split

Команда split в Linux позволяет разбивать файлы на несколько файлов.

1. Разделите файлы на несколько файлов
split mylog.log

По умолчанию команда split создает новые файлы для каждых 1000 строк. Если префикс не указан, он будет использовать ‘x’. Следующие буквы перечисляют файлы, поэтому сначала идет xaa, затем xab и так далее.

2. Разделите файлы на несколько файлов с определенными номерами строк
C помощью опции -l можно указать кол-во строк
split mylog.log -l 100

3. Разделение файла на n файлов
C помощью опции -n можно указать кол-во файлов, на которые хотите разделить
split mylog.log -n 16
Команда mtools

Mtools — это общедоступный набор инструментов, позволяющий системам Unix манипулировать файлами MS-DOS: читать, записывать и перемещать файлы в файловой системе MS-DOS.

Mtools обычно используются для управления гибкими дисками, отформатированными в FAT. Каждая программа пытается эмулировать эквивалентную команду MS-DOS.

Mtools достаточно, чтобы предоставить доступ к файловым системам MS-DOS.

Например, такие команды, как mdir
⁃ работают с дискетой
⁃ без какого-либо предварительного монтирования или инициализации (при условии, что на вашей машине работает файл /etc/mtools.conf по умолчанию).
Преимущества операции sync

1. Расходует незначительный объем ресурсов CPU.

2. Компактная запись данных.

3. Запись по крайней мере 28 КБ системных данных, даже если с момента предыдущего вызова sync не было выполнено ни одной операции ввода-вывода.

4. Ускорение записи данных на диск за счет отключения алгоритма отложенной записи. Это свойство особенно важно для тех программ, в которых после каждой операции записи выполняется операция fsync().

5. Создание при вызове sync() или fsync() записей в протоколе JFS о том, что измененные данные сохранены на диске.
Команда telinit

Эта команда связана с командой init и управляет действиями команды init.

Telinit принимает односимвольный аргумент и сигнализирует команде init через подпрограмму kill о выполнении соответствующего действия.

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

Уровень выполнения — это конфигурация программного обеспечения, позволяющая существовать только выбранной группе процессов.
Добавляем диск к RAID массиву

Чтобы добавить активный диск к RAID, который будет использоваться для работы, можно воспользоваться следующей командой:
mdadm /dev/md0 --add /dev/sde
где /dev/md0 - имя RAID, /dev/sde - имя добавляемого диска

Далее нужно расширить массив:
mdadm -G /dev/md0 --raid-devices=3

(диск добавится при условии того, что у вас уже создан массив)

Также к RAID можно добавить запасной диск (hot spare):
mdadm /dev/md0 --add /dev/sde

Но в этом случае расширять массив не нужно.
Установка патчей

Патч - правка или текстовые изменения в исходном коде проектов

Для вноса правок в проект существует утилита patch. Она специально предназначена для переноса правок (изменений) между разными версиями текстовых файлов.

Информация о правке обычно содержится в отдельном файле, «патч-файле» (patch file).

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

Либо же патч может быть составлен вручную, автором, если он знаком с соответствующим форматом, но это бывает крайне редко.

Чтобы сгенерировать простой патч, для команды diff:
diff oldfile newfile > patch
Разделение файлов с пользовательским префиксом имени

Чтобы разделить один файл на несколько с использованием пользовательского префикса:
split mylog.log mylog.log_

Вывод:
mylog.log_aa
mylog.log_ab
...

Где mylog.log_ префикс

Также можно указать длину этого префикса:
split mylog.log mylog.log_ -a 5

Вывод:
mylog.log_aaaaa
mylog.log_aaaab
...

Или же если вам не нравятся буквы, то можно записывать числами
split mylog.log mylog.log_ -a 5 -d

Вывод:
mylog.log_00000
mylog.log_00001
...
Проверяем состояние RAID-массива

Есть два способа проверить состояние RAID.

1) cat /proc/mdstat
Примерный вывод, который можно увидеть:
Personalities : [raid1] 
md0 : active raid1 sdb1[1] sda1[0]
1000071488 blocks super 1.2 [2/2] [UU]

[UU] говорит о том, что массив в порядке, но если вы видите [U_], то скорее всего один из дисков вышел из строя


2) mdadm -D /dev/md0
Эта команда выводит статистику о RAID, но нас больше всего интересует строка State. Если ваш RAID показывает статус degraded, то это говорит о проблемах, которые нужно исправлять.