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

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

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Создание файловой системы (ФС)

Чтобы создать файловую систему, можно воспользоваться утилитой mkfs.

Файловую систему можно создать двумя способами:
mkfs -t [тип ФС] [диск или раздел]

или

mkfs.[тип ФС] [диск или раздел]

Типы файловой системы могут быть: ext2, ext3, ext4, fat, ntfs, xfc.
Очищаем дисковый кеш в Linux

В некоторых случаях может оказаться полезным записать содержимое кеша на диск.

В Linux это можно сделать, записав 1, 2 или 3 в /proc/sys/vm/drop_caches. Запись этих значений заставит ядро освободить память, используемую для кеширования, записав ее содержимое на диск.

!Перед выполнением этой операции лучше запустить sync, иначе занятые элементы останутся в памяти!

Для очистки pagecache:
echo 1 > /proc/sys/vm/drop_caches

Для очистки dentries и inodes:
echo 2 > /proc/sys/vm/drop_caches

Для очистки pagecache, dentries и inodes:
echo 3 > /proc/sys/vm/drop_caches
Три способа, чтобы проверить является Linux 32-битным или 64-битным?

Способ 1:
getconf LONG_BIT

В результате на экране появится либо 32, либо 64, что обозначает разрядность.

Способ 2:
uname -i

В результате для 64-битных вы получите x86_64 и i386 для 32-битных процессоров Intel.

Способ 3:
Определить разрядность в GUI
Откройте дистрибутив Linux, окно «Настройки системы» и выберите « Детали»
Если у вас только одна файловая система (/), ее повреждение может привести к нарушению работы всей системы Linux. Повреждение раздела поменьше легче исправить, и это позволяет компьютеру оставаться в рабочем состоянии, пока выполняется исправление.

Обычные пользователи редко видят необходимость в большом количестве разделов, но те, кто занимается крупными системами, в том числе их восстановлением, находят множество плюсов в том, что система разделена. Разделы уменьшают последствия преднамеренного повреждения (например, атаки типа DoS), проблемы из-за действий пользователей и случайного повреждения файловой системы. 

Каталоги, для которых можно создать отдельные разделы файловой системы:
/boot
/home
/tmp
/usr
/var
Файловый формат .LIST

В операционных системах GNU/Linux стиля Debian файловое расширение .list встречается применительно к спискам файлов/каталогов пакетов. Файл .list представляет собой текстовый иерархический список всех файлов и директорий, создаваемых или копируемых при установке пакета ПО с помощью системы управления пакетами Debian (APT через dpkg).

Списки .list, а также другие служебные файлы dpkg для всех установленных пакетов находятся в директории "/var/lib/dpkg/info/". У некоторых пакетов файлы .list пустые.

Кроме того, файл "sources.list" в каталоге "/etc/apt/" управляет локальными источниками программного обеспечения, предоставляя список активных репозиториев двоичного и исходного кода, из которых устанавливаются или обновляются все программы в Debian-системе.
Команда dir

Да, это действительно копия команды ls, но она предназначена для тех из вас, кто может случайно набрать dir вместо ls, потому что вы работали с командной строкой Microsoft Windows и не можете избавиться от привычки.

C помощью этой команды можно посмотреть скрытые файлы:
dir -a

Вы можете отобразить людей, которые создали файлы командой dir вот так:
dir -l --author

Чтобы скрыть резервные копии, выполните следующую команду:
dir -B
Вывод списка разделов и жестких дисков с помощью команды lsblk 

lsblk — list block devices — «список блочных устройств». Дать определение термину блочные устройства, используя привычные пользователю понятия, довольно сложно, поэтому полезнее их рассматривать как запоминающие устройства большой емкости и как разделы на этих устройствах.

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

Чтобы вывести метки файловых систем и идентификаторы UUID выбранного устройства, введите:
lsblk -f /dev/sdc

А чтобы увидеть только SCSI-устройства и их типы:
lsblk -S
Команда ac

Команда учета пользователей, ac, предоставляет системному администратору статистику времени подключения для всех пользователей системы, считанную из файла /var/log/wtmp. 

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

Опции: 
-d отображает "суточные итоги" времени соединения.  
-p предоставляет статистику подключений для каждого пользователя. 
Вы можете использовать параметры по отдельности или в сочетании, чтобы дать более подробный анализ.
ac -dp
Считаем контрольные суммы файлов

Подсчитать контрольные суммы файлов можно с помощью нескольких команд: cksum, md5sum, sha1sum и sha256sum.

Контрольная сумма - последовательность цифр и букв, используемых для проверки целостности данных на наличие ошибок.

Синтаксис команд прост, как никогда:

cksum <filename>

md5sum <filename>

sha1sum <filename>

sha256sum <filename>
Файлы устройств

Тип файлов в UNIX-подобной ОС, содержат данные, необходимые операционной системе для взаимодействия с физическими устройствами, такими как диски и дисководы, принтеры и факсы и т. п.

Каждый из таких файлов идентифицируется с помощью двух идентификаторов: основного идентификатора (major number) и вспомогательного идентификатора (minor number).

Файлы устройств размещаются в каталоге /dev или в его подкаталогах. Примеры основных файлов:
/dev/sd[буква] — жёсткий диск
/dev/sd[буква][номер] — раздел диска
/dev/eth[номер] — сетевые интерфейсы Ethernet

Узнать информацию о файле устройства можно с помощью команд file и ls.
Просмотр физических томов

Физический том (physical volume) — устройство, представляющееся системе как один диск (жёсткий диск или его раздел, RAID-массив).

Для просмотра информации о физических томах LVM используются команды pvs, pvdisplay и pvscan.

pvs позволяет настроить формат вывода, показывая по одному тому в каждой строке.

pvdisplay формирует подробный отчет для каждого физического тома, включая информацию о размере, экстентах, группе томов и пр. Формат вывода фиксирован.

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

mtr
объединяет функциональность traceroute и ping в один инструмент.

После запуска mtr проверяет сетевое соединение между локальной системой и указанным удаленным хостом. Сначала mtr устанавливает адрес каждого сетевого перехода между хостами, затем он пингует каждому из них, чтобы определить качество отклика на каждой машине.

Простейшим примером использования mtr является предоставление имени домена или IP-адреса удаленной машины в качестве аргумента, к примеру:
mtr google.com
Интерпретатор ash

Является облегченной версией интерпретатора Berkeley UNIX sh.

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

Интерпретатор ash хорошо подходит для применения во встраиваемых системах с ограниченными системными ресурсами. В операционной системе FedoraCore 4 интерпретатор ash на порядок меньше интерпретатора bash.
Process ID (PID)

В Linux каждый процесс идентифицируется уникальным номером, который называется Process ID (PID). PID позволяет системе отслеживать и управлять процессами.

В Linux процессы организованы в древовидной структуре.
Каждый процесс имеет родительский процесс (parent process), который инициировал его создание. Родительский процесс идентифицируется с помощью PPID (Parent Process ID).
Корневым процессом в этом дереве является init (или systemd в современных системах), который имеет PID 1.


Для просмотра PID процессов:
1. Команда ps отображает информацию о процессах: ps -e
Вывод этой команды включает столбец PID, который показывает идентификаторы процессов.

2. Команда top предоставляет динамический просмотр процессов и их PID: top
В выводе top PID отображается в первом столбце.

3. Команда pgrep используется для поиска процессов по имени и вывода их PID: pgrep <process_name>
cgroups для ограничения ресурсов процессов в Linux

Control Groups (cgroups) — функциональность ядра Linux, которая позволяет ограничивать и управлять ресурсами (такими как процессорное время, память, дисковое I/O и т.д.) для групп процессов.


Установка и настройка cgroups:

Проверка наличия cgroups:
Убедитесь, что ваш дистрибутив Linux поддерживает cgroups:
ls /sys/fs/cgroup/
Если каталог существует и содержит подкаталоги, такие как cpu, memory, blkio, значит, cgroups поддерживаются.

Установка необходимых пакетов:
В большинстве современных дистрибутивов Linux необходимые пакеты уже установлены. Однако, если требуется, установите их: sudo apt install cgroup-tools
NEOFETCH — кроссплатформенная утилита, позволяющая отображать информацию о системе в терминале.
В качестве картинки в терминале, можно использовать логотип дистрибутива.

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

Установить в Ubuntu: sudo apt install neofetch
Запустить: neofetch
Команда umount

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

Например у вас есть какой-то USB-диск sbd1. Чтобы размонтировать его, можно следует выполнить команду:
sudo umount /dev/sdb1

Чтобы размонтировать все устройства, можно воспользоваться опцией -а, но запускать ее нужно с осторожностью, ведь будут размонтированы важные разделы:
sudo umount -a

Чтобы размонтировать путь:
sudo umount /dir/to/some/forder

Для рекурсивного размонтирования определенной директории, следует добавить опцию -R:
sudo umount -R /dir/to/some/forder
Ограничение процессорного времени с помощью cgroups

Control Groups (cgroups) позволяют ограничивать процессорное время для группы процессов. Это полезно для предотвращения от чрезмерного использования CPU одного процесса, что может повлиять на производительность других процессов.

Для начала создайте группу:
sudo cgcreate -g cpu:/mygroup


Далее настраивается ограничение на использование процессора для группы mygroup. Например, чтобы ограничить использование до 50% процессорного времени:
echo 50000 | sudo tee /sys/fs/cgroup/cpu/mygroup/cpu.cfs_quota_us

echo 100000 | sudo tee /sys/fs/cgroup/cpu/mygroup/cpu.cfs_period_us


Добавьте процесс в группу cgroups, указав его PID:
sudo cgclassify -g cpu:/mygroup <PID>


Либо запустите процесс непосредственно в группе cgroups:
sudo cgexec -g cpu:/mygroup <command>


Теперь процесс будет ограничен в использовании процессорного времени, что обеспечит более равномерное распределение ресурсов.
Ограничение памяти с помощью cgroups

Control Groups (cgroups) позволяют ограничивать объем памяти, доступной для группы процессов.

Для начала необходимо создать группу для ограничения памяти:
sudo cgcreate -g memory:/mygroup


Далее настраиваются ограничение на использование памяти для группы mygroup. Например, ограничение на 512 MB:
echo 512M | sudo tee /sys/fs/cgroup/memory/mygroup/memory.limit_in_bytes



Добавьте процесс в группу cgroups, указав его PID:
sudo cgclassify -g memory:/mygroup <PID>


Либо запустите процесс непосредственно в группе cgroups:
sudo cgexec -g memory:/mygroup <command>


Теперь процесс будет ограничен в использовании памяти, что поможет избежать ситуаций, когда один процесс использует всю доступную память.
Ограничение дискового I/O с помощью cgroups

Control Groups (cgroups) в Linux позволяют ограничивать дисковое I/O для группы процессов.

Для начала необходимо создать группу для ограничения:
sudo cgcreate -g blkio:/mygroup


Далее настраивается ограничение на использование дискового I/O для группы mygroup. Например, ограничение на 1 MB/s:
echo "8:0 1048576" | sudo tee /sys/fs/cgroup/blkio/mygroup/blkio.throttle.read_bps_device

echo "8:0 1048576" | sudo tee /sys/fs/cgroup/blkio/mygroup/blkio.throttle.write_bps_device


Добавьте процесс в группу cgroups, указав его PID:
sudo cgclassify -g blkio:/mygroup <PID>


Либо запустите процесс непосредственно в группе cgroups:
sudo cgexec -g blkio:/mygroup <command>


Теперь процесс будет ограничен в использовании дискового ввода-вывода, что обеспечит более равномерное распределение ресурсов между процессами.