Инструменты пользователя

Инструменты сайта


lpic1_101

Содержание

LPIC 101.1 Работа с железом в Linux.

Определение настроек

  • /sys, /proc, /dev ;
  • HAL, dbus, udev ;
  • lsmod, lsusb, lspci ;
  • определение адресов устройств ;
  • носители информации ;

Изменение настроек

  • установка id устройства ;
  • модули ядра ;
  • добавление или удаление драйверов устройств ;

HAL - уровень абстрогирования, сейчас не используется с 2011 г., на смену пришел udev
dbus - шина по которой интерфейс ОС общался раньше с HAL
udev - Линуксовый менеджер устройств, создает устройства в понятном для нас формате, похож на PlugAndPlay, возможность динамически удалят и добавлять устройства.

Директория /sys содержит информацию об устройствах и драйверах, в неё монтируется виртуальная файловая система sysfs

  • devices/ - все у-ва ядра;
  • bus/ - перечень шин;
  • drivers/ - каталоги драйверов;
  • block/ - каталоги блочных у-в;
  • class/ - группировка у-в по классам;


/proc - папка в которую монтируется виртульная файловая система, которая показывает все запущенные процессы.
cat /proc/mounts показывает все смонтированные файловые системы.

/proc/sys - все о текущих настройках системы

Пр. cat /proc/sys/fs/file-max показывает максимальное количество одновременно открытых фалов

Интерфейсы работы с драйверами ядра.

  • /dev/sd буква - жесткий диск (в системах на ядре Linux);
  • /dev/sd буква номер - раздел диска (в системах на ядре Linux);
  • /dev/sr номер (scd номер) - CD-ROM;
  • /dev/eth номер - сетевые интерфейсы Ethernet;
  • /dev/wlan номер - сетевые интерфейсы Wireless;
  • /dev/lp номер - принтеры;
  • /dev/video номер - устройства изображений, камеры, фотоаппараты и т.д.;
  • /dev/bus/usb/000/номер - устройство номер на шине USB первого контроллера (000);
  • /dev/dsp - звуковой вывод.

Команды вывода перечня устройств.

  • lsmod - информация о модулях ядра;
  • lspci - информация об устройствах PCI;
  • lspcmcia - информация об устройствах PCMCIA;
  • lsusb - информация о шине USB;
  • lshal - база устройств HAL;
  • lshw - детальная информация о комплектующих;

Утилиты управления модулями ядра.

  • lsmod - информация о модулях ядра.
  • modinfo - информация о конкретном модуле.
  • rmmod - удаление модуля ядра.
  • lnsmod - установка модуля ядра.
  • modprobe - деликатное удаление или добавление модулей.

Взаимодействие с CPU
Основные понятия

  • IRQ - механизм прерываний ( interrupt сообщает процессору о наступлении какого-либо события на которое проц. должен отреагировать);
  • IO (input output) адреса - обмен информацией между устройствами и CPU;
  • DMA - обращение к ОЗУ минуя CPU;


Посмотреть IRQ номера cat /proc/interrupts
Посмотреть IO по портам cat /proc/ioports
Посмотреть IO как она выглядит в памяти cat /proc/iomem
Посмотреть кто использует DMA cat /proc/dma

Устройства хранения Основные интерфейсы

  • PATA - параллельный интерфейс;
  • SATA - последовательный интерфейс;
  • SCSI - стандарт передачи данных;
  • SAS - замена SCSI.


blkid - показывает какие у-ва куда смонтированы.

LPIC 101.2 Процесс загрузки Linux

Затрагиваемые темы:

  • ввод основных команд для загрузчика и опций ядра во время загрузки;
  • знание последовательности загрузки в BIOS;
  • понимание SysVinit и systemd
  • знакомство с Upstart;
  • просмотр журнала событий загрузчика.

Процесс загрузки компьютера: BIOS/UEFI(Запуск системы) - MBR/GPT (Master Boot Record / Guide Partition Table небольшая часть машинного кода, которая запускает загрузчик) (Первая стадия загрузки) - LILO/GRUB (Загрузчик знает, где лежит ядро ОС загружает его)(Вторая стадия загрузки) - Linux kernel (Запуск ядра) - init (Пользовательская среда)

Пример настроек grub в Debian:

load_video
      insmod gzio
      insmod part_msdos
      insmod ext2
      set root='(hd0,msdos1)'
      search --no-floppy --fs-uuid --set=root da7259c9-2d91-4265-89ef-4486a901b229 # монтирует корень в раздел жесткого диска по ID
      echo    'Загружается Linux 3.2.0-4-486 ...'
      linux   /boot/vmlinuz-3.2.0-4-486 root=UUID=da7259c9-2d91-4265-89ef-4486a901b229 ro  quiet # указывает, что ядро находится в корневом разделе, и путь до папки и будет загружатся с соответствующими параметрами ro - "ридонли", quiet - не показывает лишнего есть еще и другие.
      echo    'Загружается начальный ramdisk ...'
      initrd  /boot/initrd.img-3.2.0-4-486


dmessage вывод сообщений ядра, показывает все события, в отличии от лога /var/log/message , он содержит только информацию о загрузке.

Система инициализации ОС

  • Init в стиле SysV - родительский процесс (Init) инициализации системы на одном из заданных уровней запуска (runlevel);
  • Init в стиле systemd - родительский процесс (Init) инициализации системы в ускоренном режиме, за счет параллельного запуска задач;
  • Init в стиле Upstart - родительский процесс (Init) инициализации системы на основе отслеживания событий;


В папке /boot лежит папка загрузчика /grub, линуксовые ядра пр. vmlinuz-3.2.0-4-486, Initial RAM диски - диск в оперативной памяти для начальной инициализации (Временная файловая система, используемая ядром Linux при начальной загрузке. Initrd обычно используется для начальной инициализации перед монтированием «настоящих» файловых систем.)

LPIC 101.3-1 Инициализация системы в стиле SysV

Затрагиваемые темы:

  • Установка runlevel;
  • Переключение между runlevel;
  • Выключение и перезагрузка системы;
  • Оповещение пользователей;
  • Работа со службами.

Runlevel. Уровни по умолчанию.

  • 0 - выключение
  • 1 - однопользовательский режим
  • 2 - Debian\Ubuntu по умолчанию
  • 3 - RedHat\Suse по умолчанию текстовый режим
  • 4 - WildCard (программируемый режим, можем поставить сюда то, что захотим)
  • 5 - RedHat/Suse - GUI
  • 6 - перезагрузка

Основные команды:

  • init - управление инициализацией, можно переключатся между уровнями загрузки пр. init 1
  • telinit - управление процессом init, так же можно переключаться между уровнями загрузки.
  • wall - вывод сообщения пользователям системы
  • halt - выключение компьютера, после чего питание нужно выключить самостоятельно
  • reboot - перезагрузка компьютера
  • shutdown - запланированное выключение(shutdown -r перезагрузка, shutdown -h now выключение)
  • service service_name start|stop|reload|restart|status
  • либо в папке со скриптами init start|stop|reload|restart|status Пр. root@mtc:/etc/init.d# ./cron stop
  • runlevel показывает уровень загрузки

cat /etc/inittab можно посмотреть уровни загрузки, какой идет по умолчанию и др.

/etc/init.d директория где находятся скрипты инициализации, которые запускают определенные службы.

Все файлы в директории /etc/rc.* запускают или останавливают что-то на определенном уровне, буква перед названием K(kill) или S(start) убивает или запускает процесс, цифра - последовательность выполнения этого скрипта.

LPIC 101.3-2 Инициализация системы в стиле systemd

Затрагиваемые темы:

  • Управление systemd при помощи systemctl;
  • Понятие и расположение units(модулей);
  • Понятие target и управление ими;
  • Система журналирования journald;
  • Работа со службами;
  • Управление питанием;

Unit - модули, которыми оперирует systemd:

  • .service - службы;
  • .mount - точки монтирования;
  • .device - устройства;
  • .socket - сокеты
  • /usr/lib/systemd - директория с юнитами по умолчанию.
  • /system - все необходимые юниты для системы.
  • /user - все необходимые юниты для пользователей.
  • /etc/systemd - директория с управляемыми юнитами, конфигурационные файлы в данной папке отвечают за настройку systemd, они пришли на замену /etc/inittab

systemctl reboot|poweroff|suspend|hibernate|hybrid-sleep

systemctl list-units показывает все используемые Unit
systemctl –failed все юниты, которые не запустились
systemctl –type=service покажет только сервисы
systemctl status crond посмотреть статус сервиса

systemctl start|stop|reload|restart|status unit

target - цели, последовательность вызовов юнитов.

boottarget - аналог runlevel, обратно совместим с ним.

Runlevel Target Описание
0 poweroff.target Выключение
1 rescue.target Однопользовательский режим
2,4 multi-user.target Настраиваемые режимы
3 multi-user.target Многопользовательский режим
5 graphical.target Графика
6 reboot.target Перезагрузка

systemctl isolate name.target - переключение между boot таргетами
systemctl set-default -f name.target - установить таргет по умолчанию

systemctl –type=target все запущенные таргеты

Journald - служба журналирования;

  • journalctl -f показывает события по мере их возникновения
  • journalctl -n 10 последние 10 событий
  • journalctl _UID=0 события по id пользователя
  • systemctl poweroff выключаем компьютер

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

http://lexpr.ru/node/498

LPIC 101.3-3 Инициализация системы в стиле upstart

Для Ubuntu. Контролирует процесс запуска и остановки демонов системы. Отличие от классической SysV - задачи и службы останавливаются по событиям.

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

Служба может быть пере запущена, если была аварийно завершена, а задача - нет.

  • services(сервисы) и tasks(задачи) - то, чем оперирует upstart
  • /etc/init - каталог файлов-заданий (jobs) все задания срабатывают по условиям
  • Initctl - утилита управления upstart
  • переключение между уравнями telinit
  • уровень выполнения по умолчанию в файле /etc/init
  • start|stop|reload|restart|status имя службы - для работы со службами.
  • initctl show-config - основные задачи и в каком случае они выполняются.

LPIC 102.1 Работа с жесткими дисками в Linux


Темы:

 * Расположение файловых систем и раздела подкачки на жестких дисках;
 * Создание разбиения жесткого диска для установки Linux;
 * Проверка загрузочного раздела;
 * Монтирование разделов в файловую систему;
 * Работа с LVM;


Следующие папки могут быть смонтированы как отдельные разделы жесткого диска:

  • / - корневая файловая система, самый большой раздел;
  • /boot - загрузочный раздел;
  • /home - домашние папки;
  • /root - домашняя папка супер пользователя;
  • /etc - конфигурация нашей системы и её компонентов;
  • /opt - папка для ПО от третьих поставщиков;
  • /var - часто меняющиеся данные;
  • /usr - все установленые пакеты програм, документация, исходный код ядра;
  • /tmp - временные файлы;
  • swap - никуда не монтируется


fdisk - утилита разбиения жесткого диска
mkfs - утилита создания файловой системы

Вариант разбиения:
	sda - жесткий диск:
		sda1 - основной 
		sda2 - расширеный:
			sda5 - логический
			sda6 - логический
		sda3 - основной	

fdisk -l смотрим диски

/dev/mapper/uba–vg-root - раздел корневая ФС
/dev/mapper/uba–vg-swap_1 - раздел подкачки

fdisk /dev/sdb разбиение диска.

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 2048 499711 248832 83 Linux
/dev/sda2 501758 16775167 8136705 5 Расширенный
/dev/sda5 501760 16775167 8136704 8e Linux LVM

Id - метка раздела, как её менять:

  • fdisk /dev/sdb - t - № - Шестнадцатиричный код - w


Форматирование разделов.

mkfs.[файловая система] /dev/sdb1
Пр. mkfs.bfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.fat mkfs.minix mkfs.msdos mkfs.ntfs mkfs.vfat

Раздел подкачки.

swapon и swapoff - команды работы с разделом подкачки;
/etc/fstab - конфигурационный файл, отвечающий за монтирование систем;

mkswap - утилита создания раздела или файла подкачки.

swapon -s посмотреть разделы файла подкачки. blkid - узнать ID раздела.

Монтирование.

mount /dev/sdb5(раздел) /mounted(директория монтирования)
umount размонтируем
/etc/fstab - прописать примонтированые разделы, чтоб при включении они подмонтировались автоматом.

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

sda1     sda2     sdb     sdc       <-- PV
|        |        |       |
|        |        |       |
+--------+- VG00 -+-------+         <-- VG
			|
+-------+-------+---------+
|       |       |         |
root    usr     home      var       <-- LV
|       |       |         | 
ext3 reiserfs reiserfs    xfs       <-- Файловые системы

Обозначения и понятия:

  • PV, Physical volume, физический том. Обычно это раздел на диске или весь диск. В том числе, устройства программного и аппаратного RAID (которые уже могут включать в себя несколько физических дисков). Физические тома входят в состав группы томов.
  • VG, Volume group, группа томов. Это самый верхний уровень абстрактной модели, используемой системой LVM. С одной стороны группа томов состоит из физических томов, с другой – из логических и представляет собой единую административную единицу.
  • LV, Logical volume, логический том. Раздел группы томов, эквивалентен разделу диска в не-LVM системе. Представляет собой блочное устройство и, как следствие, может содержать файловую систему.
  • PE, Physical extent, физический экстент. Каждый физический том делится на порции данных, называющиеся физическими экстентами. Их размеры те же, что и у логических экстентов.
  • LE, Logical extent, логический экстент. Каждый логический том делится на порции данных, называющиеся логическими экстентами. Размер логических экстентов не меняется в пределах группы томов.


pvdisplay - показывает Physical volume (физические тома) vgdisplay - показывает Volume group (группы томов) lvdisplay - показывает Logical volume (логические тома) pvcreate - создание физического раздела который будет виден в LVM.

	pvcreate /dev/sdb1 (Id раздела должен быть 8e  Linux LVM)
	далее
	vgcreate - создаем групу томов
	vgcreate vg_titov /dev/sdb1 /dev/sdb2
	далее
	lvcreate - создаем логические тома
	lvcreate -n lv1 -L 500M vg_titov
	lvcreate -n lv2 -L 400M vg_titov
	а потом отформатируем
	mkfs.ext4 /dev/vg_titov/lv1
	mkfs.ext4 /dev/vg_titov/lv2
	ресайзнем lv
	lvresize -L 550M vg_titov/lv1

в LVM можно делать снепшоты.
О LVM подробнее http://help.ubuntu.ru/wiki/lvm и http://xgu.ru/wiki/LVM

LPIC 102.2 Загрузчик Linux

MBR - Master Boot Record

Современные машины не используют BIOS, а используют UEFI

GPT - Guaid Pertitional Table

Резервная копия MBR
dd if=/dev/sda of=/root/backup.mbr bs=512 count=1

Установка и настройка LILO

  • apt-get install lilo
  • liloconfig
  • изменяем /etc/lilo.conf в строчку вписываем id диска boot = /dev/disk/by-id/[id]
  • lilo применяем изменения и перезагружаемся.

Установка и настройка GRUB2

  • По умолчанию уже стоит в системе, поэтому grub-install /dev/sda
  • Скрипты grub /etc/grub.d
  • Настройки /etc/default/grub
  • update-grub применение настроек

LPIC 102.3 Управление библиотеками в Linux


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

  • Статические - всегда находятся в теле программы
  • Динамические - подгружаются из файла


/lib - библиотеки используемые программами из /bin
/usr/lib - библиотеки используемые программами за /usr/bin
Все пути до библиотек находятся в файле /etc/ld.so.conf
ldconfig - заново подгружает все библиотеки в кэш
ldd /bin/ls - узнать какие библиотеки использует программа

LPIC 102.4 Управление пакетами в Debian-подобных операционных системах

dpkg - утилита управления пакетами в Debian системах

  • -l перечень пакетов в системе;
  • -L перечень файлов в пакетах;
  • -s информация о статусе пакета;
  • -S поиск пакета, содержащего данный файл;
  • -i установка пакета;
  • -r простое удаление пакета;
  • -P удаление пакета вместе с конфигурационными файлами.


dpkg-reconfigure - переконфигурация пакета. Пр. dpkg-reconfigure tzdata

apt - программа работы с пакетами в Debian-системах:

  • apt-get: для скачивания и установки пакетов;
  • apt-cache: для поиска пакетов;
  • aptitude: полное управление пакетами с опцией псевдографики.


/etc/apt/sources.list - перечень репозитариев

  • apt-get update - обновляет список источников.
  • apt-get upgrade - обновляет пакеты.
  • apt-get install [пакет] - устанавливает необходимый пакет из репозитария.
  • apt-get remove [пакет] - удаляет пакет без удаления зависимостей.
  • apt-get autoremove - автоматически удаляет все лишнее.


  • apt-cache search [key] - ищет пакеты в которых встречается ключевое слово.
  • apt-cache show [пакет] - показывает инфу о пакете.
  • apt-cache depends [пакет] - показывает от чего зависит пакет.
  • apt-cache rdepends [пакет] - показывает обратную зависимость какие пакеты зависят от данного пакета.

LPIC 102.5 Управление пакетами в RedHat-подобных операционных системах


rpm - утилита управления пакетами в Red Hat системах. (RedHat Packet Manager)
Rpm2cpio - разбор пакета на двоичные файлы.
yum - программа работы с пакетами програм в Red Hat - системах.
yumdownloader - скачивание пакетов (входит в пакет yum-utils).
/etc/yum.repos.d./ - перечень пакетов.

rpm -iv (-i install -v отображает ссобщения о установке) [пакет rpm] устанавливает пакет.
rpm -e [пакет] удаляет пакет.
rpm -K [пакет rpm] - проверяет ключи пакета.
rpm -Vv [пакет] - проверяет пакет и зависимости.
rpm -qi [пакет] - показывает инфу о пакете.
rpm -di [пакет] - показывает расположение документации пакета.

rpm2cpio [пакет rpm] > имя.cpio конвертирует пакет rpm в двоичный cpio

yum install mc - установка программы
yum remove mc - удаляет программу с зависимостями
yum upgrade - обновляет все пакеты
yum serch mc - ищет пакет

каждый репозиторий лежит как отдельный файл в /etc/yum.repos.d./

yumdownloader mc - закачивает rpm пакет без установки.

LPIC 103.1 Работа в командной строке Linux


Затрагиваемые темы:

  • Выполнение основных задач в командной оболочке;
  • Изменение среды оболочки ( в т.ч. переменных среды)
  • История выполненных команд;
  • Работа с файлами по полному и относительному пути.

Оболочки:

  • The Bourne shell /bin/sh
  • The Bourne again shell /bin/bash
  • и др.

Осовные команды:

  • cat - вывод содержимого файла в консоль;
  • cd - переход в каталог;
  • ls - вывод содержимого каталога;
  • echo - перевод текста в консоль;
  • touch - обновление времени редактирования файла;
  • file - справка по файлу;
  • whatis - справка по названию;
  • history - вывод истории команд;
  • env - вывод переменных среды;
  • pwd - текущий каталог;
  • export - задание переменной;
  • unset - отключение переменной;

Оболочка пользователя меняется в /etc/passwd

Глобальные настройки оболочки хранятся в /etc/profile PS1 показывает как выглядит начало каждой строки.
Локальные настройки для каждого пользователя хранятся в папке пользователя в файле .profile
Настройки внешнего вида оболочки и алиасы команд для конкретного пользователя хранятся в его домашней папке в файле .bashrc

Переменные среды - показывают настройку текущей среды, смотрятся через env;
Файлы . и .. в папке указывают текущую папку и папка на уровне выше соответственно;

Добавление переменной среды:

	ABC=123
	export ABC
	env либо echo $ABC
	видим новую перемененную		

Отмена переменной: unset ABC

	echo $ABC либо env
	переменной не видно		

Изменение переменной: PATH=$PATH:.

	добавили к переменной среды текущую папку.
	env видим - переменная изменилась	

Спец символы подстановки:

		*- заменяет любое количество знаков.
		?- заменяет один знак.
		[1-9] - диапазон.
		{12,3} - символы из списка.	

uname -a - показывает информацию о системе.

Менять оболочки в процессе работ - просто вызвать её по имени bash или zsh или что ещё;

LPIC 103.2 Работа c текстовым выводом в Linux

  • cat - для объеденения файлов и вывод файла на экран ( cat file1 fale2 > file3 )
  • cut - удаляет секции из строчек файла, но не из него самого, а из его вывода(-c символы из указаных позиции)
  • expand - превращает символы табуляции в пробелы
  • fmt - форматирует текст разными способами
  • head - показывает верхнюю часть файлов
  • join - объединяет два файла по единому полю
  • less - позволяет постранично читать файл
  • nl - нумерует строки
  • od - конвертер символов в тексте
  • paste - построчно объединяет файлы
  • pr - конвертирует файл для печати
  • sed - всякие штуки с текстом
  • sort - сортирует строки
  • split - разрезает файл на куски
  • tail - показывает файл снизу
  • tr - переводит или удаляет символы (заглавные в прописные, удалить букву и т.д.)
  • unexpand - превращает пробелы в табы
  • uniq - показывает только уникальные строчки, или дублирующиеся или количество дублей
  • wc - считает количество символов

LPIC 103.3 Основные операции с файлами и папками

Чему научимся:

  • копировать и переносить и удалять файлы и папки;
  • копировать несколько файлов и папок, в т.ч. рекурсивно;
  • удалять файлы и папки, в т.ч. рекурсивно;
  • научится пользоваться групповыми символами (whilcard);
  • научится отбирать файлы по типу, размеру, датам и т.д.;
  • освоить tar, cpio и dd.
  • touch - позволяет создавать пустые файлы и время создания существующего файла.
  • mkdir - создает папки.
  • ls (-l -a -1) - показывает содержимое папки.
  • cp - копирует файлы и папки (для папок ключ -R копирует рекурсивно, со всем содержимым).
  • mv - позволяет переносить, если папка назначения не меняется - будет переименование.
  • rm - удаляет файлы и папки (rm -r для папок со всем содержимым)
  • rmdir - удаляет пустые папки.
  • file - определяет тип файла.
  • find - поиск папок в директории:
    1. name по имени
    2. iname без регистра
    3. mtime дата последней модификации
    4. type b (блочное устройство), c (символьное устройство), d (директория), p (именованный канал), f (обычный файл), l (символическая ссылка), и s (сокет)
    5. iregex регулярные выражения
    6. mtime по дате
    7. size по размеру ( -size +5M - больше 5Mb)
    8. atime - время доступа ( -atime +5 - время доступа больше 5 дней)

Архивирование и разархивирование.

  • cpio - copy input output копирование в архивы и из архивов. Пр. архивирование ls | cpio -o > ../test.cpio и извлечение cpio -id < /test.cpio
  • dd - конвертирует и копирует файлы, копирует целиком блочные у-ва например один диск Пр. dd if=/dev/sdb of=drive.img
  • gzip - GNU Zip позволяет сжимать и распоковывать файлы. Без параметров сжимает файл, а его исходник удаляет.
  • gunzip - разархивирует, а архив удаляет.
  • bzip2 - работает с блоками, работает на много эффективнее. Без параметров сжимает файл, и удаляет его исходник
  • bunzip2 - разархивирует, и удаляет архив.
  • xz - сжимает.
  • unxz - разжимает.
  • tar - комбайн. Пр. Архивирует используя gzip tar cvfz drive.img.gz drive.img, извлекает tar xvf drive.img.gz

LPIC 103.4 Использование потоков, конвейеров и перенаправлений

Отвечаем на следующие вопросы:

  • что такое стандартный ввод и вывод в Linux?
  • как перенаправить вывод команды в файл в Linux?


stdin(0) - ввод;
stdout(1) - вывод;
stderr(2) - выводим ошибку;

> передать в;
» дописать в;
< взять из;
| отправить следующей команде;

2> - отправить ошибку в файл (1 стоит по умолчанию.)
ls bob > result.txt 2> error.txt ошибки выводятся в отдельный файл.

tee - отправит файл на стандартный вывод. Пр. ls | tee output.txt отправит на экран и на стандартный вывод.
xargs - построчно передавать на ввод команде. Пр. find . -name *.txt | xargs rm -f удаляет все файлы *.txt

LPIC 103.5 Работа с процессами в Linux

Учимся:

  • Запускать задачи в активном и фоновых режимах;
  • Заставить задачу выполняться после выхода из системы;
  • Отслеживать и сортировать активные процессы;
  • Завершать процессы.
  • fg(frontground) и bg(background) позволяют вернуть процессы в активный режим и обратно в фоновый. Пр. fg [№ процесса из jobs]
  • nohup (no hang up)
  • ps - информация об активных процессах;
  • pstree - дерево процессов;
  • pgreep - поиск процессов (pgrep sleep);
  • pkill - ищет и завершает процессы(pgrep sleep);
  • top - диспетчер задач;
  • free - загрузка оперативки;
  • uptime - время и полнота загрузки;
  • screen - управление сессиями;

sleep 1000 компьютер зависнет на 1000 секунд
sleep 1000 & или (find / -name *.log > log.txt)& - знак & отправляет процесс в фоновый режим
kill [id] убивает процесс
killall [имя процесса] - убивает все процессы с данным именем.

nohub [команда] - процесс не завершается после завершения сессии пользователя. Пр. nohup apt-get update

LPIC 103.6 Приоритеты процессов в Linux

Учимся:

  • узнавать приоритет процессов;
  • запускать програмы с повышенным или пониженым приоритетом;
  • изменять приоритет запущенной программы;

Приоритеты от -20 до +19 максимальный приоритет тот у которого это число минимально.

ps alx, столбец NI указывает приоритет процесса.
ps -aeo user,pid,ni,cpu посмотреть конкретные столбцы.

Nice и Renice

nice sleep 100 & - команда запустится по умолчанию с приоритетом 10, посмотреть ps -aeo user,pid,ni,comm | grep sleep
nice -n 19 sleep 100 & - команда запустится с приоритетом 19

renice 5 -p 19980 ;19980 (идентификатор процесса) старый приоритет 10, новый приоритет 5, изменяет приоритет на указанное число.
renice -19 -p 19980; 19980 (идентификатор процесса) старый приоритет -10, новый приоритет -19
renice 15 -u [пользователь] - изменить приоритет процессов у пользователя.

LPIC 103.7 Регулярные выражения в Linux

Учимся:

  • Создавать регулярные выражения;
  • Использовать эти выражения для поиска;
	\<text - слова начинающиеся с text;
	text\> - слова заканчивающиеся на text;
	^ - начало строки;
	$ - конец строки;
	[a-z] - диапазон от a до z;
	\[ - воспринять символ [ буквально;
	. - любой символ;
	a|z - a или z.
	

grep - утилита для поиска по выражению;

  • grep -n oo file.txt - поиск в файле + нумерует строки
  • -i игнорирует регистр букв
  • ls | grep ile - обрабатывает все что поподает на ввод
  • grep ^ple file.txt - начало строки в файле совпадает с ple
  • grep Hello * ищет слово Hello в файлах текущего католога

egrep - расширенный grep, либо grep -e;

  • egrep '^(b|d)' file.txt - начало строки в файле начинается с b или d.
  • egrep -v '^#' file.txt - все строки которые не начинаются на #
  • grep '^[a-z]' file.txt - начало строки начинается со строчной латинской буквы.

fgrep - быстрый grep, либо grep -f;

  • Не понимает регулярные выражения
  • fgrep $ file.txt - ищет $ не интерпритируя его как регулярное выражение.

rgrep - рекурсивный grep, либо grep -r;

  • rgrep Hello * - ищет слово Hello в текущей папке, а так же внутри подкаталогов.

sed - потоковый текстовый редактор;

  • sed '/^$/d' удаляет пустые строки.
  • sed -e 's/oo/aa/' file.txt -e отредактировать.
  • sed -re 's/^(B|b)/C/' file.txt - c регулярными выражениями, заменяет B или b на C

LPIC 103.8 Текстовый редактор Vi

Учимся:

  • Перемещатся по документу;
  • Копировать, вырезать, вставлять текст;
  • Осуществлять поиск по тексту;
  • Использовать командный режим работы;


Перемещение по тексту:
h-лево, j-низ, k-верх, l-право.

e b - конец и начало слова;
( ) - конец и начало предложения;
{ } - конец и начало абзаца;
^ $ - конец и начало строки;
1G G - конец и начало файла;

i - режим вставки перед текущим символом, Esc выход из текущего режима в командный.
a - режим добавления после текущего символа, Esc выход из текущего режима в командный.

yy - скопировать строку;
yw - скопировать слово;
yl - скопировать символ;

dd - вырезать строку;
dw - вырезать слово;
dl - вырезать символ;

p - вставить.

буфер - регистр.

/ - начать поиск ниже;
? - начать поиск выше;
N и n - продолжить поиск;

:e - отменить изменения;
:w - записать изменения;
:q - выйти из файла;

:q! или ZQ - выйти не сохраняя;
:wq! или ZZ - выйти и сохранить.
:w newfaiename - сохранить измененный документ в новый файл.

cw - change word - встаем на слово, жмем комбинацию cw и вместо слова пишем другое.
cl - меняем символ
cd - изменяем строку

LPIC 104.1 Создание и форматирование разделов жестких дисков в Linux

Продолжение темы 102.1

Учимся:

  • Управлять дисками с MBR и GPT;
  • Используем команду mkfs;
  • fdisk позволяет осуществлять разбиение диска. Не понимает GPT (с ним работает uefi), а только GPT(bios) и не работает с дисками более 2Tb.
  • gdisk интерактивный GPT манипулятор.
  • parted - partitional editor, имеет более расширенный функционал чем gdisk и fdisk
  • gparted - parted с графической оболочкой.
  • mkfs
  • mkswap


Создаем раздел подкачки.

Создаем новый раздел на диске c ID swap (82) как в теме 102.1
mkswap /dev/sdb2 - готовим раздел под swap
swapon /dev/sdb2 - включаем

swapon -s покажет какие разделы подкачки используются.

swapoff /dev/sdb2 - отключаем

Создаем файловую систему.
mkfs -t ext2 /dev/sdb1 - форматирует раздел в фс ext2
или
mkfs.ext2 /dev/sdb1

Форматирование в не родную ФС на примере xfs.
mkfs -t xfs /dev/sdb1 ничего не даст.

apt-cache search xfs ищем пакеты которые будут работать с xfs

apt-get install xfsprogs устанавливаем

mkfs -t xfs -f /dev/sdb1 ключ -f затирает предыдущую фс
Форматирование в не родную ФС на примере reserfs.

apt-cache search reiserfs
apt-get install reiserfsprogs
mkfs -t reiserfs -f /dev/sdb1

Форматирование в не родную ФС на примере btrfs.

apt-cache search btrfs
apt-get install btrfs-tools
mkfs -t btrfs -f /dev/sdb1

Готовим диск под Windows

меняем метку раздела на c  W95 FAT32 (LBA)
mkfs -t ntfs /dev/sdb1 форматируем раздел в NTFS

Работа с gdisk

gdisk /dev/sdb
:o - создает новую GUID таблицу разделов.
:w - записываем изменения.

root@uba:~# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +100M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.

Работа с parted.

parted -l просмотр разделов всех устройств. parted /dev/sdb

LPIC 104.2 Проверка файловой системы

  • df (disk free)- показывает состояние разделов дискового пространства. -h в понятных человеку единицах, -i показывает свободные индексные дескрипторы (иноды)
  • du (disk usage) - показывает размер папок в текущей директории, -h, -s показывает суммарный размер папки. du -h -s ~/* покажет размеры папок не показывая все подпапки.
  • fsck - проверка и восстановление файловых систем linux, Пр. fsck /dev/sdb1
  • debugfs

Файловая система EXT:

  • mke2fs
  • e2fsck
  • dumpe2fs
  • tune2fs

Файловая система XFS:

  • xfs_check - проверяет, если все хорошо, то нет сообщении.
  • xfs_repair - восстанавливает FS.
  • xfs_info - информация о ФС, раздел должен быть смонтирован.
  • xfs_metadump - copy XFS filesystem metadata to a file. Пр. xfs_metadump /dev/sdb1 sdb1.db раздел должен быть размонтирован.

debugfs - ext2/ext3/ext4 file system debugger, разбирается с проблемами файловой системы: находит, удаляет, восстанавливает и т.д.

Восстановим файл.

debugfs /dev/sdb1

  :ls - показывает файлы на диске.
  :lsdel - показывает удаленные файлы (только его иноды).
  :undel <индексный дескриптор> имя_с_которым восстановить_файл  Пр. undel <14> test.txt

dumpe2fs - dump ext2/ext3/ext4 filesystem information, выводит информацию о файловой системе.
tune2fs - настраивает настраиваемые параметры файловых систем. Пр. настройка журналирования файловой системы
tune2fs -O has_journal /dev/sdb1 а потом удаляем её tune2fs -O ^has_journal /dev/sdb1

LPIC 104.3 Монтирование и демонтирование файловых систем

Учимся:

  • Подключать и отключать файловые системы вручную;
  • Управлять автоматическим монтированием файловых систем;
  • Подключать съемные носители информации.

mount устройство точка_монтирования.
mount без параметров показывает что и куда смонтировано.

umount устройство или точка_монтирования.

/etc/fstab:

  • устройство либо UUID= точка_монтирования
  • тип_файловой_системы параметры
  • dump pass . dump - сохранять ли файлы автоматом при отключении системы(1 - да, 0 - нет), pass - порядок проверки ФС (1 - у корневой фс, у остальных - 2, у съемных - 0)

Пр. /dev/sdb1 /mnt/hard auto rw,user,auto,noexec 0 2
UUID=b6edbeda-03bf-4d59-86da-bb176ae9b996 /mnt/hard auto rw,user,auto,noexec 0 2
Узнать UUID диска можно blkid /dev/sdb1

LPIC 104.4 Управление квотами дисков

  • quotaon - включение квоты.
  • quotaoff - отключение квоты. Пр. quotaoff /mnt/hard
  • edquota - редактирование квоты.
  • repquota - отчет по квотам.


устанавливаем пакет quota
apt-get install quota

quotaoff /mnt/hard - удаляем старые квоты.
quotacheck -cug /mnt/ - создаем квоты для пользователей и групп.
edquota -u titov - редактируем квоты для пользователей.
quotaon /mnt- включаем квоты.

LPIC 104.5 часть первая: владельцы файлов и папок

Учимся:

  • Понимать и изменять владельцев объектов.
  • Устанавливать правила доступа к объектам.
  • Понимать право «eXecute»


chown - установка владельца; Пр. chown root tr.txt
chdrp - установка группы владельцев; Пр. chgrp root tr.txt либо chown :root tr.txt

Одной командой и пользователя и группу - chown root:root tr.txt
Для рекурсивного изменения владельца chown -R root:root /var/www

chmod - установка прав доступа;

Модель прав доступа: chmod = rwx / +x / u=rwx / g=rx / o=x / 755 base

Режим Число
rwx 7
rw- 6
r-x 5
r– 4
-wx 3
-w- 2
–x 1
0


chmod u+w test.txt разрешаем пользователю запись
chmod g+r test.txt разрешаем группе запись
chmod o-w test.txt запрещаем всем остальным запись
chmod ugo-x test.txt либо chmod -x test.txt либо chmod 664 test.txt запретить всем выполнение файла

для папки выполнение является входом в неё.
Маска создания файлов и папок

umask - права для создаваемого файла по умолчанию.
Указывает с какими правами доступа по умолчанию будет создаваться объект( по принципу вычитания из максимальных прав: 777 для папки и 666 для файла)

  • umask 022 означает, что все папки будут создаваться с разрешением 777-022=755
  • umask 754 означает, что все папки будут создаваться с разрешением 777-754=023


umask - показывает существующую маску.
grep -i umask /etc/login.defs показать umask.

suid, sgid и sticky биты.
suid = 4 - бит запуска от имени владельца; для файлов.
sgid = 2 - бит запуска от имени группы владельцев; для файлов и папок.
sticky = 1 - бит защиты содержимого. для папок.

suid и sgid позволяют запускать файл от имени владельца - группы

chmod u+s test.text suid устанавливается для пользователя, те файл будет запускаться от имени владельца.
chmod g+s test.text sgid устанавливается для группы, те файл будет запускаться от имени группы.
chmod o+t test.text sticky устанавливается для пользователя

sticky chmod +t удаление или переименовывание возможно только от имени владельца или root. Для защиты папки от удаления.

suid sgid sticky режим
on on on 7
on on off 6
on off on 5
on off off 4
off on on 3
off on off 2
off off on 1
off off off 0


stat script.run - информация о файле.
id [пользователь] - информация о пользователе.

LPIC 104.6 Мягкие и жесткие ссылки

Мягкие(Символические, Soft) - идет отдельным файлом ссылающимся на оригинал.
Жесткие (Hard) - ссылается на тоже самый йнод

При переименовании символическая ссылка «бьется», жесткая отстается.

ln [файл] [ссылка] - создание жесткой ссылки.
ln -s [файл] [ссылка] - создание символической ссылки.

Жесткие ссылки не работают на разных файловых системах.
Жесткие ссылки нельзя создавать на каталоги.
При удалении файла его жесткие ссылки остаются.
Мягкие ссылки ссылаются на имя файла.

LPIC 104.7 Поиск и расположение команд и файлов в Linux

  • /bin - базовые бинарники команд;
  • /boot - файлы загрузчика;
  • /dev - устройства;
  • /etc - конфигурация ПК;
  • /home - домашние папки;
  • /lib - библиотеки модуля ядра;
  • /proc - информация о работающей системе;
  • /media - монтирование носителей;
  • /mnt - монтирование носителей;
  • /opt - дополнительное ПО;
  • /root - домашняя корневая папка суперпользователя;
  • /sbin - основные программы настройки системы;
  • /srv - данные для системных служб;
  • /tmp - временные файлы;
  • /usr - бинарники файлы пользователей;
  • /var - переменные данные;


grep - утилита поиска по содержимому;
find - утилита поиска файлов по свойствам;

locate - быстрый поиск файлов;
Ищет по индексации, чтоб проиндексировать новые файлы запускаем updatedb и после этого запускаем поиск.
/etc/updatedb.conf - в нем лежат настройки индексации, какие каталоги и разрешения не индексируются.

which - поиск команды; Пр. which ls
type - вывод точной команды; Пр. type ls
whereis - поиск команды, исходников и мануала. Пр. whereis ls

lpic1_101.txt · Последние изменения: 2015/07/18 04:11 — admin