os:lpic-1:101
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| os:lpic-1:101 [23.08.2022 10:58] – [Расширенные права доступа (ACL)] viacheslav | os:lpic-1:101 [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== LPIC-1 Exam 101 ====== | ||
| + | Exam Objectives Version: Version 4.0 | ||
| + | Exam Codes: 101-400 | ||
| + | |||
| + | About Objective Weights: Each objective is assigned a weighting value. The weights indicate the relative importance of each objective on the exam. Objectives with higher weights will be covered in the exam with more questions. | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <WRAP round tip 60%> | ||
| + | Данная страница является конспектом лекций Кирилла Семаева [[https:// | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ====== Topic 101: System Architecture ====== | ||
| + | ===== 101.1 Determine and configure hardware settings ===== | ||
| + | <WRAP round box 70%> | ||
| + | Weight: 2 | ||
| + | |||
| + | Description: | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Tools and utilities to list various hardware information (e.g. lsusb, lspci, etc.) | ||
| + | * Tools and utilities to manipulate USB devices | ||
| + | * Conceptual understanding of sysfs, udev, dbus | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | The following is a partial list of the used files, terms and utilities: | ||
| + | |||
| + | * /sys/ | ||
| + | * /proc/ | ||
| + | * /dev/ | ||
| + | * modprobe | ||
| + | * lsmod | ||
| + | * lspci | ||
| + | * lsusb | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | === /sys/ - все устройства, | ||
| + | **/ | ||
| + | **/ | ||
| + | **/ | ||
| + | **/ | ||
| + | **/ | ||
| + | |||
| + | === /proc/ - информация о запущенных процессах, | ||
| + | Создаётся во время загрузки системы, | ||
| + | <code bash> | ||
| + | cat / | ||
| + | cat / | ||
| + | cat / | ||
| + | echo 1000000 > / | ||
| + | cat / | ||
| + | echo 1 > / | ||
| + | </ | ||
| + | |||
| + | === /dev/ - информация об устройствах === | ||
| + | **/dev/sd** буква - жёсткий диск\\ | ||
| + | **/dev/sd** буква номер - раздел диска\\ | ||
| + | **/dev/sr** номер (/dev/scd номер) - CD-ROM\\ | ||
| + | **/ | ||
| + | **/ | ||
| + | **/dev/lp** номер - принтеры\\ | ||
| + | **/ | ||
| + | **/ | ||
| + | **/ | ||
| + | |||
| + | == Команды вывода перечня устройств == | ||
| + | **lsmod** - о модулях ядра\\ | ||
| + | **lspci** - об устройствах PCI\\ | ||
| + | **lspcmcia** - об устр. PCMCIA\\ | ||
| + | **lsusb** - об устр. USB\\ | ||
| + | **lshal** - база устройств HAL (сейчас не исп.)\\ | ||
| + | **lshw** - детально о комплектующих | ||
| + | |||
| + | == Управление модулями ядра == | ||
| + | **lsmod** - информация о модулях ядра\\ | ||
| + | **modinfo** - инф. о конкретном модуле\\ | ||
| + | **rmmod** - удаление модуля (тупое)\\ | ||
| + | **insmod** - установка модуля (тупая)\\ | ||
| + | **modprobe** - " | ||
| + | |||
| + | <code bash> | ||
| + | modinfo e1000 # например, | ||
| + | rmmod e1000 # тупо удалить модуль | ||
| + | insmod e1000 # вставить модуль (будет ошибка, | ||
| + | modprobe e1000 # вставить модуль, | ||
| + | </ | ||
| + | |||
| + | === Взаимодействие с CPU === | ||
| + | **IRQ** - механизм прерываний | ||
| + | <code bash> | ||
| + | cat / | ||
| + | </ | ||
| + | **IO адреса** - обмен информацией между устройствами и процессором | ||
| + | <code bash> | ||
| + | cat / | ||
| + | cat /proc/iomem # как выглядит в памяти | ||
| + | </ | ||
| + | **DMA** - обращение устройств к ОЗУ минуя процессор | ||
| + | <code bash> | ||
| + | cat /proc/dma | ||
| + | </ | ||
| + | === Основные интерфейсы === | ||
| + | **PATA** - параллельный\\ | ||
| + | **SATA** - последовательный\\ | ||
| + | **SCSI** - стандарт передачи данных\\ | ||
| + | **SAS** - замена SCSI | ||
| + | |||
| + | **blkid** - просмотр смонтированных устройств и их ID. | ||
| + | |||
| + | https:// | ||
| + | ===== 101.2 Boot the system ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 3 | ||
| + | |||
| + | Description: | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Provide common commands to the boot loader and options to the kernel at boot time | ||
| + | * Demonstrate knowledge of the boot sequence from BIOS to boot completion | ||
| + | * Understanding of SysVinit and systemd | ||
| + | * Awareness of Upstart | ||
| + | * Check boot events in the log files | ||
| + | </ | ||
| + | |||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * dmesg | ||
| + | * BIOS | ||
| + | * bootloader | ||
| + | * kernel | ||
| + | * initramfs | ||
| + | * init | ||
| + | * SysVinit | ||
| + | * systemd | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | === Порядок загрузки системы === | ||
| + | - BIOS/UEFI - запуск системы | ||
| + | - MBR/GPT - 1-я стадия загрузки | ||
| + | - LILO/GRUB - 2-я стадия загрузки (загрузчик) | ||
| + | - Linux kernel - запуск ядра ОС (инициализация устройств и т. п.) | ||
| + | - Init - пользовательская среда | ||
| + | |||
| + | В Ubuntu нажатие Shift вызывает меню загрузки. Клавиша I показывает скрипт загрузки. Пример параметров загрузки ядра - ro quiet splash $vt_handoff | ||
| + | <code bash> | ||
| + | dmesg # вывод сообщений ядра (все) | ||
| + | cat / | ||
| + | </ | ||
| + | |||
| + | **pstree** - команда вывода дерева запущенных процессов | ||
| + | |||
| + | === Каталог /boot === | ||
| + | Ядра, initRAM-диски (для загрузки)\\ | ||
| + | **/ | ||
| + | |||
| + | https:// | ||
| + | |||
| + | ===== 101.3 Change runlevels / boot targets and shutdown or reboot system ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 3 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Set the default runlevel or boot target | ||
| + | * Change between runlevels / boot targets including single user mode | ||
| + | * Shutdown and reboot from the command line | ||
| + | * Alert users before switching runlevels / boot targets or other major system events | ||
| + | * Properly terminate processes | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * / | ||
| + | * shutdown | ||
| + | * init | ||
| + | * / | ||
| + | * telinit | ||
| + | * systemd | ||
| + | * systemctl | ||
| + | * / | ||
| + | * / | ||
| + | * wall | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | ==== Init в стиле SysV ==== | ||
| + | Процесс запуска инициализации системы на одном из заданных уровней запуска (runlevel) | ||
| + | |||
| + | **Уровни загрузки: | ||
| + | 0 - выключение\\ | ||
| + | 1 - однопользовательский режим\\ | ||
| + | 2 - Debian/ | ||
| + | 3 - Redhat/Suse по умолчанию текстовый режим\\ | ||
| + | 4 - Wildcard (программируемый режим, можно поставить что угодно)\\ | ||
| + | 5 - Redhat/Suse (GUI)\\ | ||
| + | 6 - перезагрузка | ||
| + | |||
| + | <code bash> | ||
| + | runlevel # вывести текущий уровень загрузки | ||
| + | telinit 1 # перейти в однопользовательский режим (без перезагрузки) | ||
| + | </ | ||
| + | |||
| + | **/ | ||
| + | **/ | ||
| + | **/ | ||
| + | |||
| + | <code bash> | ||
| + | # перезапуск сетевой службы | ||
| + | sudo / | ||
| + | # или | ||
| + | service network restart | ||
| + | </ | ||
| + | |||
| + | **Основные команды: | ||
| + | **init** - управление инициализацией\\ | ||
| + | **telinit** - управление процессом init\\ | ||
| + | **wall** - вывод сообщения пользователям системы\\ | ||
| + | **halt** - выключение компьютера\\ | ||
| + | **reboot** - перезагрузка\\ | ||
| + | **shutdown** - запланированное выключение\\ | ||
| + | **service** // | ||
| + | |||
| + | https:// | ||
| + | |||
| + | ==== Init в стиле Systemd ==== | ||
| + | Процесс запуска инициализации системы в ускоренном режиме за счёт распараллеливания потоков | ||
| + | |||
| + | **Unit** - модули, | ||
| + | * .service - службы\\ | ||
| + | * .mount - точки монтирования\\ | ||
| + | * .device - устройства\\ | ||
| + | * .socket - сокеты\\ | ||
| + | * .target - цели | ||
| + | |||
| + | **/ | ||
| + | **/ | ||
| + | |||
| + | <code bash> | ||
| + | systemctl list-units # показать все модули | ||
| + | systemctl --failed # сбойные модули | ||
| + | systemctl list-units --type=service # службы | ||
| + | systemctl status cron # состояние crond | ||
| + | systemctl stop cron # остановить crond | ||
| + | systemctl start cron # запустить crond | ||
| + | </ | ||
| + | |||
| + | **Цели (targets), соответствующие уровням загрузки SysV**\\ | ||
| + | ^ Runlevel ^ Target ^ Описание ^ | ||
| + | | 0 | poweroff.target | Выключение | | ||
| + | | 1 | rescue.target | Однопользовательский режим | | ||
| + | | 2,4 | multi-user.target | Настраиваемые режимы | | ||
| + | | 3 | multi-user.target | Многопользовательский режим | | ||
| + | | 5 | graphical.target | Графический режим | | ||
| + | | 6 | reboot.target | Перезагрузка | | ||
| + | |||
| + | <code bash> | ||
| + | systemctl list-units --type=target # узнать запущенные таргеты | ||
| + | systemctl isolate name.target # переключиться на другой таргет | ||
| + | systemctl set-default -f name.target # установить по умолчанию | ||
| + | </ | ||
| + | |||
| + | <WRAP round info 60%> | ||
| + | Старые команды telinit и runlevel также сохранены в целях совместимости | ||
| + | </ | ||
| + | |||
| + | **journald** - служба журналирования | ||
| + | <code bash> | ||
| + | journalctl -f # журнал в реальном времени | ||
| + | journalctl -n 10 # последние 10 событий | ||
| + | journalctl _UID=0 # по ID пользователя | ||
| + | </ | ||
| + | |||
| + | Работа с питанием: | ||
| + | **systemctl reboot|poweroff|suspend|hibernate|hybrid-sleep** | ||
| + | |||
| + | Работа со службами: | ||
| + | **systemctl start|stop|reload|restart|status** //unit// | ||
| + | |||
| + | https:// | ||
| + | |||
| + | ==== Init в стиле Upstart ==== | ||
| + | Процесс запуска инициализации системы на основе отслеживания событий (служб и задач), | ||
| + | |||
| + | Upstart оперирует службами и задачами (services, tasks). Служба перезапускается в случае сбоя, задача - нет. | ||
| + | |||
| + | **/ | ||
| + | |||
| + | **initctl** - утилита управления upstart. | ||
| + | |||
| + | Команды telinit и runlevel работают так же, как и с SysV. | ||
| + | |||
| + | Управление службами: | ||
| + | <code bash> | ||
| + | status ufw # состояние файрволла ufw | ||
| + | stop ufw # остановить ufw | ||
| + | start ufw # запустить ufw | ||
| + | initctl show-config # вывод информации о задачах | ||
| + | initctl check-config # проверка конфигурации | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | |||
| + | ====== Topic 102: Linux Installation and Package Management ====== | ||
| + | ===== 102.1 Design hard disk layout ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 2 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Allocate filesystems and swap space to separate partitions or disks | ||
| + | * Tailor the design to the intended use of the system | ||
| + | * Ensure the /boot partition conforms to the hardware architecture requirements for booting | ||
| + | * Knowledge of basic features of LVM | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * / (root) filesystem | ||
| + | * /var filesystem | ||
| + | * /home filesystem | ||
| + | * /boot filesystem | ||
| + | * swap space | ||
| + | * mount points | ||
| + | * partitions | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Следующие папки могут быть смонтированы как отдельные разделы жёсткого диска: | ||
| + | * **/** - корень, | ||
| + | * **/boot** - загрузочный раздел (≈100 МБ) | ||
| + | * **/home** - домашние папки | ||
| + | * **/root** - домашняя папка суперпользователя | ||
| + | * **/etc** - конфигурация системы и её компонентов | ||
| + | * **/opt** - ПО сторонних поставщиков | ||
| + | * **/var** - изменяющиеся данные (логи и т. п.) | ||
| + | * **/usr** - пакеты программ, | ||
| + | * **/tmp** - временные файлы | ||
| + | |||
| + | * **swap** - никуда не монтируется | ||
| + | |||
| + | === /boot === | ||
| + | **abi-[version]** - бинарный интерфейс приложений\\ | ||
| + | **config-[version]** - конфиг ядра\\ | ||
| + | **grub** - папка загрузчика\\ | ||
| + | **initrd.img-[version]** - временная файловая система в ОЗУ\\ | ||
| + | **memtest** - утилита проверки ОЗУ\\ | ||
| + | **System.map-[version]** - карта символов ядра (аппаратных адресов)\\ | ||
| + | **vmlinuz-[version]** - сжатое ядро ОС | ||
| + | |||
| + | |||
| + | ==== Разбиение дисков на разделы и форматирование ==== | ||
| + | На диске может быть только 4 основных раздела, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Нумерация логических разделов начинается с 5, т. е. минимальный номер логического раздела - sda5, цифры 1-4 зарезервированы под основные разделы. | ||
| + | |||
| + | **fdisk** - разбиение жёсткого диска\\ | ||
| + | **mkfs** - создание файловой системы | ||
| + | <code bash> | ||
| + | # иногда сначала нужно поменять тип раздела, | ||
| + | mkfs.ext4 /dev/sdb5 # создать файловую систему ext4 на разделе sdb5 | ||
| + | mkfs.ntfs /dev/sdb5 # создать файловую систему ntfs на разделе sdb5 | ||
| + | </ | ||
| + | |||
| + | **swapon** и **swapoff** - работа с разделом подкачки\\ | ||
| + | **/ | ||
| + | **mkswap** - создание раздела или файла подкачки | ||
| + | <code bash> | ||
| + | # смонтировать раздел sdb5 в папку /folder | ||
| + | # работает до перезагрузки; | ||
| + | mount /dev/sdb5 /folder | ||
| + | # отмонтировать | ||
| + | umount /folder | ||
| + | </ | ||
| + | |||
| + | ==== Linux Volume Manager (LVM) - система управления томами ==== | ||
| + | {{: | ||
| + | <code bash> | ||
| + | pvdisplay # показать Physical Volumes | ||
| + | vgdisplay # показать Volume Groups | ||
| + | lvdisplay # показать Logical Volumes | ||
| + | </ | ||
| + | |||
| + | При создании разделов на физических дисках (до LVM, командой fdisk) нужно указывать их тип как 8e (Linux LVM). Затем создаются: | ||
| + | <code bash> | ||
| + | # " | ||
| + | pvcreate /dev/sdb1 | ||
| + | pvcreate /dev/sdb2 | ||
| + | # группа томов | ||
| + | vgcreate vg_test /dev/sdb1 /dev/sdb2 | ||
| + | # логические тома (в данном случае размером в 2 ГБ) | ||
| + | lvcreate -n lv1 -L 2G vg_test | ||
| + | lvcreate -n lv2 -L 2G vg_test | ||
| + | # отформатировать логические тома в ext4 | ||
| + | mkfs.ext4 / | ||
| + | mkfs.ext4 / | ||
| + | </ | ||
| + | |||
| + | Можно изменить размер логического тома, например | ||
| + | <code bash> | ||
| + | lvresize -L 4G / | ||
| + | # далее нужно увеличивать файловую систему | ||
| + | resize2fs / | ||
| + | </ | ||
| + | |||
| + | Также можно удалять, | ||
| + | |||
| + | https:// | ||
| + | https:// | ||
| + | http:// | ||
| + | |||
| + | Расширить раздел | ||
| + | <code bash> | ||
| + | fd | ||
| + | lvextend -l +100%FREE / | ||
| + | resize2fs / | ||
| + | </ | ||
| + | https:// | ||
| + | ===== 102.2 Install a boot manager ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 2 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Providing alternative boot locations and backup boot options | ||
| + | * Install and configure a boot loader such as GRUB Legacy | ||
| + | * Perform basic configuration changes for GRUB 2 | ||
| + | * Interact with the boot loader | ||
| + | </ | ||
| + | |||
| + | <WRAP half column> | ||
| + | The following is a partial list of the used files, terms and utilities: | ||
| + | |||
| + | * menu.lst, grub.cfg and grub.conf | ||
| + | * grub-install | ||
| + | * grub-mkconfig | ||
| + | * MBR | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | LiLo, Grub - старые, | ||
| + | |||
| + | === MBR (Master boot record) === | ||
| + | - главная загрузочная запись, | ||
| + | <code bash> | ||
| + | # посмотреть, | ||
| + | fdisk -l | ||
| + | # скопировать 1-й блок жёсткого диска в 512 байт, т. е., MBR | ||
| + | dd if=/dev/sda of=/ | ||
| + | </ | ||
| + | |||
| + | === LiLo === | ||
| + | <code bash> | ||
| + | apt-get install lilo # установить LiLo | ||
| + | liloconfig # создаёт / | ||
| + | </ | ||
| + | В конфиге в параметр **boot = / | ||
| + | <code bash> | ||
| + | # Выяснить ID диска / | ||
| + | ls / | ||
| + | </ | ||
| + | |||
| + | === Grub legacy === | ||
| + | Настройки лежат в /boot/grub | ||
| + | === Grub === | ||
| + | <code bash> | ||
| + | # Установка на /dev/sda | ||
| + | grub-install /dev/sda | ||
| + | # Версия | ||
| + | grub-install --version | ||
| + | |||
| + | # Конфиг: | ||
| + | # / | ||
| + | # /etc/grub.d - скрипты на shell, параметры указаны по очереди применения 00_, 10_, 20_ и т. д. | ||
| + | update-grub # применить изменения после изменения настроек | ||
| + | |||
| + | sudo grub-mkconfig -o / | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 102.3 Manage shared libraries ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 1 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Identify shared libraries | ||
| + | * Identify the typical locations of system libraries | ||
| + | * Load shared libraries | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * ldd | ||
| + | * ldconfig | ||
| + | * / | ||
| + | * LD_LIBRARY_PATH | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | // | ||
| + | |||
| + | // | ||
| + | // | ||
| + | |||
| + | **/lib** - библиотеки, | ||
| + | **/ | ||
| + | **/ | ||
| + | **/ | ||
| + | <code bash> | ||
| + | ldconfig # обновить кэш библиотек | ||
| + | ldd /bin/ls # какие библиотеки использует команда ls? | ||
| + | </ | ||
| + | Добавить библиотеки вручную - добавить путь в **/ | ||
| + | <code bash> | ||
| + | export LD_LIBRARY_PATH=/ | ||
| + | ldconfig | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 102.4 Use Debian package management ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 3 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Install, upgrade and uninstall Debian binary packages | ||
| + | * Find packages containing specific files or libraries which may or may not be installed | ||
| + | * Obtain package information like version, content, dependencies, | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * / | ||
| + | * dpkg | ||
| + | * dpkg-reconfigure | ||
| + | * apt-get | ||
| + | * apt-cache | ||
| + | * aptitude | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | === dpkg === | ||
| + | Утилита управления пакетами в Debian-системах | ||
| + | <code bash> | ||
| + | dpkg --help # справка | ||
| + | dpkg -l # перечень пакетов в системе | ||
| + | dpkg -L # перечень файлов в пакетах | ||
| + | dpkg -s firefox # статус пакета firefox | ||
| + | dpkg -p firefox # информация о пакете firefox, описание | ||
| + | dpkg -S # поиск пакета, | ||
| + | dpkg -i # установка пакета (без зависимостей) | ||
| + | dpkg -I # информация о пакете в файле .deb | ||
| + | dpkg -r # простое удаление пакета | ||
| + | dpkg -P # удаление пакета вместе с конфигурационными файлами | ||
| + | dpkg-reconfigure # реконфигурация пакета | ||
| + | </ | ||
| + | |||
| + | **/ | ||
| + | |||
| + | === apt === | ||
| + | Более удобная программа работы с пакетами | ||
| + | |||
| + | **apt-get** - скачивание и установка пакетов\\ | ||
| + | **apt-cache** - поиск пакетов\\ | ||
| + | **aptitude** - управление пакетами с опцией псевдографики\\ | ||
| + | **/ | ||
| + | |||
| + | <code bash> | ||
| + | apt-get --help # справка | ||
| + | apt-get update # обновить список пакетов из репозиториев | ||
| + | apt-get upgrade # обновить пакеты в системе | ||
| + | apt-get install # установить программу | ||
| + | apt-get remove # удалить программу без зависимостей | ||
| + | apt-get autoremove # удалить незадействованные зависимости | ||
| + | apt-cache search # поиск информации | ||
| + | apt-cache show # информация о конкретном пакете | ||
| + | apt-cache depends # зависимости конкретного пакета | ||
| + | apt-cache rdepends # зависимости от конкретного пакета | ||
| + | </ | ||
| + | |||
| + | === aptitude === | ||
| + | По умолчанию не установлен, | ||
| + | |||
| + | Выбрать пакет для установки - кнопка +, установить - g, выйти - q. | ||
| + | |||
| + | === / | ||
| + | main - основные пакеты, | ||
| + | |||
| + | https:// | ||
| + | ===== 102.5 Use RPM and YUM package management ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 3 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Install, re-install, upgrade and remove packages using RPM and YUM | ||
| + | * Obtain information on RPM packages such as version, status, dependencies, | ||
| + | * Determine what files a package provides, as well as find which package a specific file comes from | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * rpm | ||
| + | * rpm2cpio | ||
| + | * / | ||
| + | * / | ||
| + | * yum | ||
| + | * yumdownloader | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | === RPM === | ||
| + | То же самое, что dpkg в Debian. | ||
| + | <code bash> | ||
| + | rpm --help # помощь | ||
| + | rpm -iv # установить пакет, verbose mode | ||
| + | rpm -e # удалить пакет | ||
| + | rpm -K # проверка подписи пакета | ||
| + | rpm -Vv # проверка файлов в пакете, | ||
| + | rpm -qi # информация пакета | ||
| + | rpm -qd # документация | ||
| + | </ | ||
| + | |||
| + | **rpm2cpio** - разбор пакета на двоичные файлы | ||
| + | <code bash> | ||
| + | rpm2cpio any.rpm > any.cpio | ||
| + | </ | ||
| + | === YUM === | ||
| + | **/ | ||
| + | |||
| + | <code bash> | ||
| + | yum --help # помощь | ||
| + | yum install # установить пакет | ||
| + | yum remove # удалить | ||
| + | yum upgrade # обновить | ||
| + | yum search # найти | ||
| + | yumdownloader # скачивание пакетов вместе с зависимостями | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ====== Topic 103: GNU and Unix Commands ====== | ||
| + | ===== 103.1 Work on the command line ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 4 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Use single shell commands and one line command sequences to perform basic tasks on the command line | ||
| + | * Use and modify the shell environment including defining, referencing and exporting environment variables | ||
| + | * Use and edit command history | ||
| + | * Invoke commands inside and outside the defined path | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * bash | ||
| + | * echo | ||
| + | * env | ||
| + | * export | ||
| + | * pwd | ||
| + | * set | ||
| + | * unset | ||
| + | * man | ||
| + | * uname | ||
| + | * history | ||
| + | * .bash_history | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | === bash === | ||
| + | <code bash> | ||
| + | cat /etc/passwd # узнать используемую оболочку | ||
| + | ls -a # список файлов, | ||
| + | / | ||
| + | ~/.profile # настройки конкретного профиля | ||
| + | ~/.bashrc # настройки bash | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | echo # вывод информации в консоль | ||
| + | cat > info # интерактивный режим записи информации в файл | ||
| + | env # показать переменные | ||
| + | pwd # показать текущее местоположение | ||
| + | export # внести заданную переменную в системные | ||
| + | unset # удалить переменную из системных | ||
| + | uname # вывести системную информацию | ||
| + | file # информация о файле | ||
| + | whatis # информация о программе | ||
| + | history # история команд | ||
| + | man -k http # вывести список мануалов по ключевому слову | ||
| + | exec ls -a # выполнить ls -a, игнорируя настройки оболочки и выгружая её | ||
| + | # чтобы загрузить оболочку обратно, | ||
| + | bash | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 103.2 Process text streams using filters ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 3 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | Send text files and output streams through text utility filters to modify the output using standard UNIX commands found in the GNU textutils package | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * cat | ||
| + | * cut | ||
| + | * expand | ||
| + | * fmt | ||
| + | * head | ||
| + | * join | ||
| + | * less | ||
| + | * nl | ||
| + | * od | ||
| + | * paste | ||
| + | * pr | ||
| + | * sed | ||
| + | * sort | ||
| + | * split | ||
| + | * tail | ||
| + | * tr | ||
| + | * unexpand | ||
| + | * uniq | ||
| + | * wc | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <code bash> | ||
| + | cat # вывод содержимого файла на экран | ||
| + | cat hello1.txt hello2.txt > hello3.txt # слить содержимое двух файлов в третий | ||
| + | rm # удаление файла | ||
| + | cut # вырезать часть из файла | ||
| + | cut -c 2,3,4,5,10 hello.txt # вывести файл hello.txt без 2-го, 3-го и т. д. символов | ||
| + | expand # заменить символы табуляции на пробелы (расстояние сохраняется) | ||
| + | fmt # форматирование вывода | ||
| + | fmt -w 10 hello.txt # выводить строки не больше 10 символов (слова не режет, переносит по пробелам) | ||
| + | head # просмотр начала файла | ||
| + | head -n 3 / | ||
| + | od # конвертер в другой формат | ||
| + | od hello.txt # конвертация в восьмеричный код | ||
| + | join # объединение строк по общим полям | ||
| + | join 1.txt 2.txt # вывести содержимое двух файлов, | ||
| + | less # постраничный вывод файлов | ||
| + | nl # нумерация строк | ||
| + | paste # объединение файлов построчно | ||
| + | pr # вывод файла в виде для печати | ||
| + | sed # мощный неинтерактивный текстовый редактор | ||
| + | sort # сортировка строк, без ключей - в алфавитном порядке | ||
| + | sort -r hello.txt # сортировать в обратном алфавитном порядке | ||
| + | split # разбиение файлов | ||
| + | split -l 2 hello.txt # разбить hello.txt на 2 части | ||
| + | split -b 2 hello.txt # разбить hello.txt на части по 5 байт | ||
| + | tail # антипод head | ||
| + | tail -f / | ||
| + | tr -t A-Z a-z # заменить все заглавные буквы на строчные | ||
| + | tr -t l L # заменить все l на L | ||
| + | tr -d l # удалить все буквы l | ||
| + | tr -s l # объединить соседние буквы l в одну | ||
| + | unexpand # антипод expand, пробелы в табуляцию | ||
| + | uniq # вывод только уникальных строк | ||
| + | uniq -c hello.txt # подсчитать повторы строк | ||
| + | uniq -d hello.txt # показать только дубли | ||
| + | uniq -u hello.txt # показать только уникальные строки | ||
| + | wc # подсчёт количества строк, слов и символов | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 103.3 Perform basic file management ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 4 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Copy, move and remove files and directories individually | ||
| + | * Copy multiple files and directories recursively | ||
| + | * Remove files and directories recursively | ||
| + | * Use simple and advanced wildcard specifications in commands | ||
| + | * Using find to locate and act on files based on type, size, or time | ||
| + | * Usage of tar, cpio and dd | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * cp | ||
| + | * find | ||
| + | * mkdir | ||
| + | * mv | ||
| + | * ls | ||
| + | * rm | ||
| + | * rmdir | ||
| + | * touch | ||
| + | * tar | ||
| + | * cpio | ||
| + | * dd | ||
| + | * file | ||
| + | * gzip | ||
| + | * gunzip | ||
| + | * bzip2 | ||
| + | * xz | ||
| + | * file globbing | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <code bash> | ||
| + | touch # создание файла и смена времени доступа | ||
| + | mkdir # создать папку | ||
| + | cp # копирование | ||
| + | cp -R folder1 folder2 # копировать папку рекурсивно | ||
| + | mv # перенести (переименовать) | ||
| + | rm -rf # удалить форсированно и рекурсивно | ||
| + | rmdir # удаление папок | ||
| + | file # определение типа файла | ||
| + | find . -name " | ||
| + | find . -size +5M # найти в текущей папке всё, что больше 5 МБ | ||
| + | find . -type f # найти в текущей папке все файлы | ||
| + | </ | ||
| + | |||
| + | === Маски символов === | ||
| + | ***** - всё, что угодно\\ | ||
| + | **?** - один любой символ\\ | ||
| + | **!** - не\\ | ||
| + | **[ac]** - a или c\\ | ||
| + | **[a-c]** - a,b,c | ||
| + | |||
| + | === Архивация === | ||
| + | <code bash> | ||
| + | ls | cpio -o > ../ | ||
| + | cpio -id < ../ | ||
| + | dd if=/dev/sdb of=drive.img # снять образ диска sdb | ||
| + | |||
| + | gzip drive.img # запаковать (оригинал затрётся) | ||
| + | gunzip drive.img.gz # распаковать (архив затрётся) | ||
| + | bzip2 drive.img # запаковать (оригинал затрётся) | ||
| + | bunzip2 drive.img.bz2 # распаковать (архив затрётся) | ||
| + | xz drive.img # запаковать (оригинал затрётся) | ||
| + | unxz drive.img.gz # распаковать (архив затрётся) | ||
| + | |||
| + | tar cvfz archive.tar.gz folder # заархивировать folder со сжатием | ||
| + | tar xvfz archive.tar.gz # разжать и распаковать | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 103.4 Use streams, pipes and redirects ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 4 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Redirecting standard input, standard output and standard error | ||
| + | * Pipe the output of one command to the input of another command | ||
| + | * Use the output of one command as arguments to another command | ||
| + | * Send output to both stdout and a file | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * tee | ||
| + | * xargs | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | Stdin (0) - ввод\\ | ||
| + | Stdout (1) - вывод\\ | ||
| + | Stderr (2) - вывод ошибки | ||
| + | |||
| + | < | ||
| + | > - передать в | ||
| + | >> - дописать в | ||
| + | < - взять из | ||
| + | | - отправить следующей команде | ||
| + | </ | ||
| + | |||
| + | Tee - отправить и в файл, и на stdout\\ | ||
| + | Xargs - передать на ввод команде построчно | ||
| + | |||
| + | <code bash> | ||
| + | wc < file1.txt # посчитать строки в файле | ||
| + | ls > list.txt # записать листинг в файл | ||
| + | cat >> list.txt # добавить листинг в конец файла | ||
| + | ls folder 2> error.txt # записать ошибку выполнения команды в файл | ||
| + | ls folder > list.txt 2> error.txt # записать листинг в файл, а если будет ошибка, | ||
| + | ls | grep r # вывести все имена с буквой r | ||
| + | ls | tee list.txt # вывести результат и на экран, и в файл | ||
| + | find . -name " | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 103.5 Create, monitor and kill processes ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 4 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Run jobs in the foreground and background | ||
| + | * Signal a program to continue running after logout | ||
| + | * Monitor active processes | ||
| + | * Select and sort processes for display | ||
| + | * Send signals to processes | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * & | ||
| + | * bg | ||
| + | * fg | ||
| + | * jobs | ||
| + | * kill | ||
| + | * nohup | ||
| + | * ps | ||
| + | * top | ||
| + | * free | ||
| + | * uptime | ||
| + | * pgrep | ||
| + | * pkill | ||
| + | * killall | ||
| + | * screen | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **fg** - активный режим (foreground)\\ | ||
| + | **bg** - фоновый режим (background)\\ | ||
| + | **nohup** - оставлять процесс работающим после выхода пользователя из системы\\ | ||
| + | **ps** - инф. об активных процессах\\ | ||
| + | **pstree** - дерево процессов\\ | ||
| + | **pgrep** - поиск процессов\\ | ||
| + | **pkill** - завершение процессов\\ | ||
| + | **top** - диспетчер задач, можно завершать процессы\\ | ||
| + | **free** - загрузка оперативной памяти\\ | ||
| + | **uptime** - время работы, | ||
| + | **screen** - управление сессиями. Ctrl+a - рабочий режим, d - свернуть текущий скрин, screen -r - вернуться в скрин, exit - завершить скрин. | ||
| + | |||
| + | <code bash> | ||
| + | sleep 1000 & # запустить процесс в фоновом режиме (амперсанд) | ||
| + | jobs # вывести выполняющиеся процессы в текущей сессии | ||
| + | fg 1 # переключить первый процесс в активный режим | ||
| + | # Ctrl+z - остановить выполнение процесса | ||
| + | bg 1 # перевести процесс в фоновый режим | ||
| + | ps aux # все процессы всех пользователей (снапшот) | ||
| + | kill 1234 # убить процесс 1234 | ||
| + | killall # грохнуть все процессы текущего пользователя | ||
| + | nohup sleep 1000 # запустить процесс, | ||
| + | pgrep sleep -l # все процессы sleep с номерами | ||
| + | pkill sleep # убить все процессы sleep | ||
| + | screen -S yandex ping ya.ru # создать скрин с именем yandex, где пингуется ya.ru | ||
| + | screen -r yandex # вернуться в скрин yandex | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 103.6 Modify process execution priorities ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 2 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Know the default priority of a job that is created | ||
| + | * Run a program with higher or lower priority than the default | ||
| + | * Change the priority of a running process | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * nice | ||
| + | * ps | ||
| + | * renice | ||
| + | * top | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Приоритет от -20 (максимальный) до +19 (минимальный).\\ | ||
| + | **nice** - выставить приоритет\\ | ||
| + | **renice** - изменить приоритет | ||
| + | <code bash> | ||
| + | ps alx # в столбике NI (nice) показывается приоритет | ||
| + | ps -eo user, | ||
| + | nice sleep 5000 & # запустить sleep с приоритетом 10 (приоритет по умолчанию) | ||
| + | nice -n 19 sleep 5000 & # sleep с приоритетом 19 | ||
| + | nice -n -20 sleep 5000 & # sleep с высшим приоритетом | ||
| + | # (отрицательные значения может ставить только привилегированный пользователь) | ||
| + | renice 5 -p 2572 # изменить приоритет процесса 2572 на 5 | ||
| + | renice 15 -u userok # изменить приоритет процессов пользователя userok | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 103.7 Search text files using regular expressions ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 2 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Create simple regular expressions containing several notational elements | ||
| + | * Use regular expression tools to perform searches through a filesystem or file content | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * grep | ||
| + | * egrep | ||
| + | * fgrep | ||
| + | * sed | ||
| + | * regex(7) | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **%%\< | ||
| + | **%%text\> | ||
| + | **%%^%%** - начало строки\\ | ||
| + | **%%$%%** - конец строки\\ | ||
| + | **%%[a-z]%%** - диапазон от a до z\\ | ||
| + | **%%[^t]%%** - не буква t\\ | ||
| + | **%%\[%%** - читать символ [ буквально\\ | ||
| + | **%%.%%** - любой символ\\ | ||
| + | **%%a|z%%** - a или z | ||
| + | |||
| + | **grep** - поиск по выражению\\ | ||
| + | **egrep** - расширенный grep\\ | ||
| + | **fgrep** - быстрый grep, не понимает регулярных выражений\\ | ||
| + | **rgrep** - рекурсивный grep\\ | ||
| + | **sed** - потоковый текстовый редактор | ||
| + | |||
| + | <code bash> | ||
| + | grep -n w file.txt # вывести строки, | ||
| + | grep -i w file.txt # вывести строки, | ||
| + | grep ^p file.txt # вывести строки, | ||
| + | grep e$ file.txt # вывести строки, | ||
| + | grep .o file.txt # вывести строки, | ||
| + | egrep ' | ||
| + | egrep ' | ||
| + | fgrep c$ file.txt # вывести строки, | ||
| + | rgrep word * # найти слово word во всех файлах, | ||
| + | sed -e '/ | ||
| + | sed -re '/ | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 103.8 Perform basic file editing operations using vi ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 3 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Navigate a document using vi | ||
| + | * Use basic vi modes | ||
| + | * Insert, edit, delete, copy and find text | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * vi | ||
| + | * /, ? | ||
| + | * h,j,k,l | ||
| + | * i, o, a | ||
| + | * c, d, p, y, dd, yy | ||
| + | * ZZ, :w!, :q!, :e! | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **Навигация: | ||
| + | **%%←h ↓j ↑k l→%%**\\ | ||
| + | **%%b e%%** - начало и конец файла\\ | ||
| + | **%%( )%%** - начало и конец предложения\\ | ||
| + | **%%{ }%%** - начало и конец абзаца\\ | ||
| + | **%%^ $%%** - начало и конец строки\\ | ||
| + | **%%1G G%%** - начало и конец файла | ||
| + | |||
| + | **i** - режим вставки (insert) перед текущим символом\\ | ||
| + | **Esc** - выход из режима\\ | ||
| + | **a** - режим добавления (append?), после текущего символа\\ | ||
| + | **o** - вставить новую строку\\ | ||
| + | **s** - замена символа | ||
| + | |||
| + | **yy** - скопировать строку\\ | ||
| + | **yw** - скопировать слово\\ | ||
| + | **yl** - скопировать символ\\ | ||
| + | **dd** - вырезать строку\\ | ||
| + | **dw** - вырезать слово\\ | ||
| + | **dl** - вырезать символ\\ | ||
| + | **p** - вставить\\ | ||
| + | **cw** - редактирование конкретного слова | ||
| + | |||
| + | **d$** - удалить до конца строки (сочетание предыдущих клавиш)\\ | ||
| + | **h}** - скопировать текст до конца абзаца | ||
| + | |||
| + | **/** - искать ниже\\ | ||
| + | **?** - искать выше\\ | ||
| + | **N** и **n** - продолжить поиск | ||
| + | |||
| + | **:e** - отменить изменения\\ | ||
| + | **:w** - записать изменения\\ | ||
| + | **:q** - выйти из файла\\ | ||
| + | **:q!** или **ZQ** - выйти без сохранения\\ | ||
| + | **:wq** или **ZZ** - выйти и сохранить | ||
| + | |||
| + | https:// | ||
| + | ====== Topic 104: Devices, Linux Filesystems, | ||
| + | ===== 104.1 Create partitions and filesystems ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 2 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Manage MBR partition tables | ||
| + | * Use various mkfs commands to create various filesystems such as: | ||
| + | * ext2/ | ||
| + | * XFS | ||
| + | * VFAT | ||
| + | * Awareness of ReiserFS and Btrfs | ||
| + | * Basic knowledge of gdisk and parted with GPT | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * fdisk | ||
| + | * gdisk | ||
| + | * parted | ||
| + | * mkfs | ||
| + | * mkswap | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | === Сделать раздел подкачки === | ||
| + | С помощью fdisk разметить место и выбрать ID раздела (82) (см. занятие [[os: | ||
| + | <code bash> | ||
| + | mkswap /dev/sdb2 | ||
| + | swapon /dev/sdb2 # задействовать раздел подкачки в системе | ||
| + | swapon -s # посмотреть разделы swap | ||
| + | swapoff /dev/sdb2 # выключить раздел подкачки | ||
| + | </ | ||
| + | |||
| + | === mkfs === | ||
| + | <code bash> | ||
| + | mkfs -t ext2 /dev/sdb1 # отформатировать раздел в ext2 | ||
| + | mkfs.ext2 /dev/sdb1 # то же самое | ||
| + | # файловая система xfs | ||
| + | sudo apt-get install xfsprogs # установить поддержку xfs в систему | ||
| + | mkfs.xfs /dev/sdb1 # отформатировать раздел в xfs | ||
| + | # reiserfs | ||
| + | sudo apt-get install reiserfsprogs # установить поддержку reiserfs в систему | ||
| + | mkfs.reiserfs /dev/sdb1 # отформатировать раздел в reiserfs | ||
| + | # btrfs | ||
| + | sudo apt-get install btrfs-tools # установить поддержку btrfs в систему | ||
| + | mkfs.btrfs /dev/sdb1 # отформатировать раздел в btrfs | ||
| + | </ | ||
| + | |||
| + | === Совместимые с Windows разделы === | ||
| + | Надо изменить тип раздела в fdisk, например, | ||
| + | <code bash> | ||
| + | mkfs.vfat /dev/sdb1 | ||
| + | mkfs.ntfs /dev/sdb1 | ||
| + | </ | ||
| + | |||
| + | === GPT === | ||
| + | fdisk не работает с GPT и не работает с разделами больше 2 ТБ. Для этого используется gdisk. | ||
| + | <code bash> | ||
| + | gdisk /dev/sdb | ||
| + | # опция " | ||
| + | </ | ||
| + | |||
| + | === parted === | ||
| + | Очень мощная утилита по работе с дисками и разделами. | ||
| + | |||
| + | gparted - графическая утилита. | ||
| + | |||
| + | https:// | ||
| + | ===== 104.2 Maintain the integrity of filesystems ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 2 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Verify the integrity of filesystems | ||
| + | * Monitor free space and inodes | ||
| + | * Repair simple filesystem problems | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * du | ||
| + | * df | ||
| + | * fsck | ||
| + | * e2fsck | ||
| + | * mke2fs | ||
| + | * debugfs | ||
| + | * dumpe2fs | ||
| + | * tune2fs | ||
| + | * XFS tools (such as xfs_metadump and xfs_info) | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <code bash> | ||
| + | df -h # показать место на дисках (ключ -h - показать в понятном виде) | ||
| + | df -i # показать inode - метки файлов (индексные дескрипторы) | ||
| + | du -h # показать список папок с их размерами (рекурсивно) | ||
| + | du -h --summarize # показать список папок с их размерами (нерекурсивно) | ||
| + | ls -l # размер файлов и папок в текущем каталоге | ||
| + | ls -i # номера inode | ||
| + | </ | ||
| + | |||
| + | === Починка файловой системы === | ||
| + | Сначала нужно размонтировать раздел, | ||
| + | <code bash> | ||
| + | fsck /dev/sdb1 | ||
| + | fsck -t ext4 /dev/sdb1 # указать ext4 принудительно | ||
| + | |||
| + | # для xfs нужно запускать xfs_check, fsck не может запустить проверку | ||
| + | xfs_check /dev/sdb1 # если ничего не пишет - всё в порядке | ||
| + | xfs_repair /dev/sdb1 # команда проверки и восстановления раздела | ||
| + | xfs_info /dev/sdb1 # информация о разделе xfs | ||
| + | xfs_metadump /dev/sdb1 dump.file # сделать дамп в файл | ||
| + | |||
| + | debugfs -w /dev/sdb1 # отладчик файловой системы, | ||
| + | # ls - показать файлы с inode (debugfs) | ||
| + | # rm file.txt - удалить файл (debugfs) | ||
| + | # lsdel - показать удалённые файлы (debugfs) | ||
| + | # undel <12> test.txt - восстановить inode 12 в файл test.txt (debugfs) | ||
| + | |||
| + | dumpe2fs /dev/sdb1 > dump.txt # сделать дамп всей информации о файловой системе | ||
| + | mke2fs -t ext2 /dev/sdb1 # переделать файловую систему в ext2 | ||
| + | tune2fs -O has_journal /dev/sdb1 # включить журнал в файловой системе на /dev/sdb1 | ||
| + | tune2fs -O ^has_journal /dev/sdb1 # удалить журнал в файловой системе на /dev/sdb1 | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 104.3 Control mounting and unmounting of filesystems ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 3 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Manually mount and unmount filesystems | ||
| + | * Configure filesystem mounting on bootup | ||
| + | * Configure user mountable removable filesystems | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * /etc/fstab | ||
| + | * /media/ | ||
| + | * mount | ||
| + | * umount | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **mount** // | ||
| + | **umount** устройство\\ | ||
| + | или\\ | ||
| + | **umount** // | ||
| + | |||
| + | === /etc/fstab: === | ||
| + | // | ||
| + | |||
| + | **Тип файловой системы** - можно написать auto для автоопределения\\ | ||
| + | **options** - непример, | ||
| + | **dump** - сохранять ли файлы автоматически при внезапном отключении питания\\ | ||
| + | **pass** - параметры проверки файловой системы | ||
| + | |||
| + | Стандартные папки для монтирования: | ||
| + | **/mnt** - для дисков\\ | ||
| + | **/media** - для съёмных носителей | ||
| + | |||
| + | Наиболее надёжный способ монтирования - по UUID, так как порт подключения может поменяться. | ||
| + | <code bash> | ||
| + | blkid /dev/sdb1 # посмотреть UUID раздела | ||
| + | eject # команда, | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 104.4 Manage disk quotas ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 1 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Set up a disk quota for a filesystem | ||
| + | * Edit, check and generate user quota reports | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * quota | ||
| + | * edquota | ||
| + | * repquota | ||
| + | * quotaon | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | **quotaon** - включение квоты\\ | ||
| + | **quotaoff** - отключение квоты\\ | ||
| + | **edquota** - редактирование квоты\\ | ||
| + | **repquota** - отчёты по квотам | ||
| + | <code bash> | ||
| + | sudo apt-get install quota # установить функционал квотирования | ||
| + | </ | ||
| + | В опциях монтирования /etc/fstab у раздела, | ||
| + | |||
| + | <code bash> | ||
| + | sudo quotacheck -cug /mnt/hdd # создать конфигурационные файлы квотирования в /mnt/hdd | ||
| + | sudo edquota -u user # задать квоту для user (-g - для группы) | ||
| + | </ | ||
| + | |||
| + | === Файл настройки квот === | ||
| + | **blocks** - сколько занято места\\ | ||
| + | **soft** - мягкая квота (допускает превышение в течение 1 недели)\\ | ||
| + | **hard** - жёсткая квота, превышения не допускает\\ | ||
| + | **inodes** - кол-во файлов и папок в системе, | ||
| + | для inodes тоже есть квоты soft и hard | ||
| + | |||
| + | <code bash> | ||
| + | edquota -t # изменить временной лимит для превышения мягких квот | ||
| + | quotaon /mnt/hdd # включить квоты | ||
| + | repquota /mnt/hdd # показать отчёт по квотам | ||
| + | </ | ||
| + | |||
| + | **warnquota** - шлёт письма пользователям, | ||
| + | |||
| + | https:// | ||
| + | ===== 104.5 Manage file permissions and ownership ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 3 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Manage access permissions on regular and special files as well as directories | ||
| + | * Use access modes such as suid, sgid and the sticky bit to maintain security | ||
| + | * Know how to change the file creation mask | ||
| + | * Use the group field to grant file access to group members | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * chmod | ||
| + | * umask | ||
| + | * chown | ||
| + | * chgrp | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | **chown** - задать владельца\\ | ||
| + | **chgrp** - задать группу владельцев\\ | ||
| + | **chmod** - задать права доступа\\ | ||
| + | |||
| + | В отличие от винды, в линуксе у объекта файловой системы может быть не только владелец, | ||
| + | |||
| + | <code bash> | ||
| + | sudo chown user file.txt # задать владельца user для файла file.txt | ||
| + | sudo chgrp testers file.txt # задать группу testers для файла file.txt | ||
| + | sudo chown :testers file.txt # то же самое | ||
| + | sudo chown user: | ||
| + | sudo chown -R user: | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | |||
| + | ==== Права ==== | ||
| + | eXecute=1, Write=2, Read=4 | ||
| + | ^ Число | ||
| + | | 0 | Нет прав | ||
| + | | 1 | Execute | ||
| + | | 2 | Write | ||
| + | | 3 | Write, execute | ||
| + | | 4 | Read | ||
| + | | 5 | Read, execute | ||
| + | | 6 | Read, write | ||
| + | | 7 | Read, write, execute | ||
| + | |||
| + | Права на объект выглядят так:\\ | ||
| + | **rwxrwxrwx, | ||
| + | Например, | ||
| + | |||
| + | <WRAP round info 60%> | ||
| + | Если дать права на папку только **rw,** то зайти в неё будет нельзя - для этого нужно дать право **x.** | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | chmod 750 file.txt # полные права владельцу, | ||
| + | chmod u+w file.txt # дать право записи владельцу (user) | ||
| + | chmod go-x file.txt # отобрать право выполнения у группы и остальных | ||
| + | chmod -x file.txt # отобрать право выполнения файла у всех | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ==== Маска ==== | ||
| + | **umask** - маска создания файлов и папок, т. е., с какими правами будут создаваться файлы и папки от имени данного пользователя. | ||
| + | |||
| + | Маска указывается по принципу вычитания из максимальных прав (777 для папки и 666 для файла).\\ | ||
| + | **umask 022** - все папки будут создаваться с разрешением 755 (777-022), т. е., %%rwxr-xr-x%%\\ | ||
| + | **umask 754** - все папки будут создаваться с разрешением 023 (777-754), т. е., %%----w--wx%% | ||
| + | |||
| + | Параметр UMASK убран из / | ||
| + | <code bash> | ||
| + | # Сделать права по умолчанию 702 (для папок) и 602 (для файлов) | ||
| + | # действует до перезагрузки | ||
| + | umask 075 | ||
| + | </ | ||
| + | |||
| + | Чтобы сделать желаемое значение umask постоянным, | ||
| + | |||
| + | https:// | ||
| + | ==== Специальные биты ==== | ||
| + | **suid** - бит запуска от имени владельца (любой, | ||
| + | **sgid** - бит запуска от имени группы владельцев. Устанавливается для файлов и папок. Если на папке установлен sgid, то все вложенные объекты будут иметь ту же группу владельцев.\\ | ||
| + | **sticky** - бит защиты содержимого. Устанавливается для папок. Если установлен, | ||
| + | |||
| + | === Значения спец. битов === | ||
| + | **SUID=4, SGID=2, sticky=1**\\ | ||
| + | Значения при выставлении нужной комбинации битов суммируются. | ||
| + | |||
| + | Например, | ||
| + | **__4__**755 - установлен suid\\ | ||
| + | **__6__**750 - установлены suid и sgid\\ | ||
| + | **__3__**764 - установлены sticky и sgid | ||
| + | |||
| + | <code bash> | ||
| + | chmod u+s file.txt # установить suid (s на пользователя) | ||
| + | chmod g+s file.txt # установить sgid (s на группу) | ||
| + | chmod o+t file.txt # установить sticky (t на остальных) | ||
| + | stat file.txt # вывести статистику по файлу | ||
| + | chmod 0755 file.txt # обнулить спец. биты | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | |||
| + | В связи с выставленными битами появляются // | ||
| + | * EUID - эффективный идентификатор пользователя, | ||
| + | uid=1000(user) gid=1001(user) euid=0(root) groups=1001(user), | ||
| + | * EGID - эффективный идентификатор группы. Процесс с битом SGID выполнится с правами текущего пользователя и группой владельца.< | ||
| + | uid=1000(user) gid=1001(user) egid=0(root) groups=1001(user), | ||
| + | |||
| + | Есть ещё RUID - настоящий идентификатор пользователя, | ||
| + | <code bash> | ||
| + | ls -l /bin/passwd | ||
| + | -rwsr-xr-x 1 root root 59976 Mar 14 11:59 /bin/passwd | ||
| + | </ | ||
| + | У '' | ||
| + | |||
| + | ==== Расширенные права доступа (ACL) ==== | ||
| + | <code bash> | ||
| + | # Проверить, | ||
| + | cat / | ||
| + | ... | ||
| + | CONFIG_EXT4_FS_POSIX_ACL=y | ||
| + | ... | ||
| + | # Установить средства управления | ||
| + | apt install acl -y | ||
| + | |||
| + | # Дать права ещё одному пользователю на файл | ||
| + | setfacl -m u: | ||
| + | |||
| + | # Проверить | ||
| + | ls -l # в конце строки с правами появляется + | ||
| + | -rw-rw-r--+ 1 root root 0 Aug 23 12:55 file.txt | ||
| + | |||
| + | getfacl file.txt | ||
| + | # file: file.txt | ||
| + | # owner: root | ||
| + | # group: root | ||
| + | user::rw- | ||
| + | user: | ||
| + | group::r-- | ||
| + | mask::rw- | ||
| + | other::r-- | ||
| + | |||
| + | # Сразу несколько разрешений за раз | ||
| + | setfacl -m g: | ||
| + | |||
| + | # Удалить разрешение | ||
| + | setfacl -x u:testuser file.txt | ||
| + | |||
| + | # Удалить все расширенные права | ||
| + | setfacl -b file.txt | ||
| + | </ | ||
| + | |||
| + | === О параметре mask === | ||
| + | Например, | ||
| + | <code bash> | ||
| + | # Применить маску: | ||
| + | chmod 000 / | ||
| + | # Эффективные права: | ||
| + | getfacl / | ||
| + | # file: tmp/ | ||
| + | # owner: root | ||
| + | # group: root | ||
| + | user::--- | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | group:: | ||
| + | mask::--- | ||
| + | other::--- | ||
| + | </ | ||
| + | Маска - это максимально разрешённые права для всех пользователей, | ||
| + | <code bash> | ||
| + | # Установить маску в r-x (обратите внимание на двойное двоеточие) | ||
| + | setfacl -m m::r-x / | ||
| + | </ | ||
| + | |||
| + | === Стандартные права === | ||
| + | Если для папки задать стандартные права ACL, то все создаваемые объекты в ней будут наследовать те же права. | ||
| + | <code bash> | ||
| + | # После применения команды всё, что создаст testuser в папке, будет иметь права rw | ||
| + | setfacl -m default: | ||
| + | </ | ||
| + | |||
| + | === Выгрузка-восстановление ACL === | ||
| + | <code bash> | ||
| + | # Выгрузка | ||
| + | cd /tmp/data | ||
| + | getfacl -R * > ~/ | ||
| + | |||
| + | # Восстановление | ||
| + | setfacl --restore=~/ | ||
| + | </ | ||
| + | |||
| + | ===== 104.6 Create and change hard and symbolic links ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 2 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Create links | ||
| + | * Identify hard and/or soft links | ||
| + | * Copying versus linking files | ||
| + | * Use links to support system administration tasks | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * ln | ||
| + | * ls | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | // | ||
| + | |||
| + | Inode содержит следующие свойства: | ||
| + | * владелец | ||
| + | * права | ||
| + | * размер | ||
| + | * время последней модификации | ||
| + | * время создания | ||
| + | * группа | ||
| + | * местонахождение файла | ||
| + | |||
| + | Имени файла inode не содержит. Вывести информацию из inode можно с помощью '' | ||
| + | <code bash> | ||
| + | stat / | ||
| + | File: / | ||
| + | Size: 3028 Blocks: 8 IO Block: 4096 | ||
| + | Device: fd00h/ | ||
| + | Access: (0644/ | ||
| + | Access: 2022-08-04 19: | ||
| + | Modify: 2022-02-23 08: | ||
| + | Change: 2022-08-04 19: | ||
| + | | ||
| + | </ | ||
| + | |||
| + | На вид файлы и жёсткие ссылки между собой в консоли не различаются. Можно понять, | ||
| + | <code bash> | ||
| + | ls -li # вывести список файлов с отображением inode | ||
| + | </ | ||
| + | Результат выполнения команды для файла file.txt, на который создана жёсткая ссылка hardlink.txt: | ||
| + | < | ||
| + | 550097 -rwxr--r-- 2 user user 243 авг 19 21:53 file.txt | ||
| + | 550097 -rwxr--r-- 2 user user 243 авг 19 21:53 hardlink.txt | ||
| + | </ | ||
| + | Первое число - inode, он одинаковый. После перечисления прав - кол-во ссылок (две). | ||
| + | |||
| + | У // | ||
| + | |||
| + | <code bash> | ||
| + | ln file.txt hard # сделать жёсткую ссылку на file.txt | ||
| + | ln -s file.txt soft # сделать мягкую ссылку на file.txt (-s - soft, symbolic) | ||
| + | ln -s file.txt Folder/ # мягкая ссылка создастся, | ||
| + | # команда выполняется в папке, а там нет file.txt. | ||
| + | # Если не указывать имя ссылки, | ||
| + | ln -s ~/file.txt Folder/ # так - сработает (если file.txt в домашней папке). | ||
| + | # Нужно указывать полный путь к объектам, | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | ===== 104.7 Find system files and place files in the correct location ===== | ||
| + | <WRAP round box 100%> | ||
| + | Weight: 2 | ||
| + | |||
| + | Description: | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | Key Knowledge Areas: | ||
| + | |||
| + | * Understand the correct locations of files under the FHS | ||
| + | * Find files and commands on a Linux system | ||
| + | * Know the location and purpose of important file and directories as defined in the FHS | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | Terms and Utilities: | ||
| + | |||
| + | * find | ||
| + | * locate | ||
| + | * updatedb | ||
| + | * whereis | ||
| + | * which | ||
| + | * type | ||
| + | * / | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | === FHS === | ||
| + | FHS - это File System Hierarchy Standard, т. е., стандартная иерархия файловой системы. | ||
| + | |||
| + | **/bin** - базовые бинарники команд\\ | ||
| + | **/boot** - файлы загрузчика\\ | ||
| + | **/dev** - устройства (devices)\\ | ||
| + | **/etc** - конфигурация ПК (конфиг. файлы)\\ | ||
| + | **/home** - домашние папки\\ | ||
| + | **/lib** - библиотеки и модули ядра\\ | ||
| + | **/proc** - информация о работающей системе (процессы)\\ | ||
| + | **/media** - монтирование съёмных носителей (флешки, | ||
| + | **/mnt** - для монтирования носителей\\ | ||
| + | **/opt** - пакеты доп. ПО\\ | ||
| + | **/root** - домашняя папка root\\ | ||
| + | **/sbin** - настройки основных компонентов системы\\ | ||
| + | **/srv** - данные для системных служб\\ | ||
| + | **/tmp** - временные файлы\\ | ||
| + | **/usr** - бинарники пользователей\\ | ||
| + | **/var** - часто меняющиеся данные (логи, почта и т. п.) | ||
| + | |||
| + | === Команды === | ||
| + | **grep** - поиск по содержимому\\ | ||
| + | **find** - поиск файлов по свойствам\\ | ||
| + | <code bash> | ||
| + | find / -name mail # искать объекты с именем mail (точное соответствие) | ||
| + | find / -user user # найти всё, относящееся к user | ||
| + | </ | ||
| + | **locate** - быстрый поиск файлов, | ||
| + | <code bash> | ||
| + | sudo updatedb # обновить индекс принудительно | ||
| + | locate mail # показать всё включающее слово mail | ||
| + | </ | ||
| + | |||
| + | **which** - поиск команды\\ | ||
| + | <code bash> | ||
| + | which ls # путь к команде ls в файловой системе | ||
| + | </ | ||
| + | **type** - вывод точной команды\\ | ||
| + | <code bash> | ||
| + | type ls # вывести параметры запуска команды ls из её расположения в файловой системе | ||
| + | </ | ||
| + | **whereis** - поиск команды, | ||
| + | <code bash> | ||
| + | whereis ls # похоже на which, но подробнее + доп. функционал | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | |||
| + | ===== Изменения в exam-101 от 10 февраля 2015 ===== | ||
| + | |||
| + | https:// | ||
