Linux можно развернуть в виртуальной среде Virtualbox
Из Virtualbox можно работать с Linux c одним интерфейсом (адрес 10.0.2.15). Сделать проброс портов с хостовой машины на виртуалку. Сеть > Адаптер > Проброс портов. Добавить правило форвардить с порта 2222 на 22 (порт хоста 2222, порт гостя 22). Далее можно подключиться через Putty по адресу 127.0.0.1:2222
https://www.youtube.com/watch?v=93szsk5KuIs&list=PLmxB7JSpraidEUbmKkRn7ZlqJg6_8kE7j&index=4
Инициализация Linux
Устройства Линукс:
Виртуальная файловая система devfs. Директория /dev
mem
null
tty
Виртуальная файловая система sysfs (также выводит устройства). Директория /sys.
Инфа о ядре Линукса, о устройствах и драйверах.
Виртуальная файловая система procfs (процессы в системе). Директория /proc
$ cat /proc/cpuinfo
$ cat net/ipv4/ip_forward -включен ли форвардинг адресов. Можно менять состояние на лету, после перезагрузки настройки не сохранятся.
Вывод списка оборудования:
$ lsmod -вівод модулей
$ lspci -устройства PCI
$ lsusb -устройства USB
$ lshw -устройства hardware
$ lsblk -блочные устройства
Udev
udevadm -вывод информации об устройствах
$ udevadm info -a -p /sys/class/net/enp0s3/ -инфо о сетевой карте
$ udevadm monitor --property --kernel -мониторить все события с ядром
$ lsmod -инфо о модулях (драйверах) ядра Linux
$ modinfo e1000 -инфо о модуле сетевой карты
# rmmod e1000 -удаляем модуль сетевой карты
# modprobe e1000 -вставить модуль сетевой карты
Загрузка Linux
Загрузчик Grub2.
Чтобы войти в меню загрузчика, при загрузке нужно нажимать "shift".
Чтобы выбрать пункт меню загрузчика, нажимаем "e". Можем править конфиг загрузчика. Конфиг будет работать только для текущей загрузки.
# dmesg - все сообщения ядра
# cat /var/log/dmesq -логи ядра
# cat /var/log/kern.log -логи ядра Ubuntu 18.04
Git
https://www.gitkraken.com
Скрипты (службы) стартующие при старте системы:
/etc/init.d/
Скрипты стартующие с ранлевел 3:
# cd /etc/rc3.d/
# ls
Каталоги /etc/rc0.d ...rc6.d содержат скрипты выполняющиеся на уровнях загрузки системы. Скрипты начинающиеся с K -kill process, S -start process.
Проверка урованя ранлевела:
# runlevel
Systemd
что такое systemd и systemctl;
/usr/lib/systemd -директория с юнитами по умолчанию
/usr/lib/systemd/system -необходимые юниты для системы
/usr/lib/systemd/user -необходимые юниты для пользователя
/etc/systemd -директория с управляемыми юнитами
# systemctl list-units -показать все запущенные юниты (службы, сокеты, точки монтирования)
# systemctl --type service -показать все запущенные юниты-сервисы
или
# systemctl list-units --type=service
# systemctl status crond
# systemctl start/stop crond
# systemctl isolate reboot.target -перезагрузка системы
# journalctl -f -отслеживание событий онлайн
# journalctl -n -вывести последние 10 событий
# journalctl _PID=998 -вывести события журнала по процессу 998
HDD
# fdisk -l -посмотреть существующие диски и разделы
https://youtu.be/x0sWtN5Mv3Q
# swapon -s -посмотреть файл подкачки
# swapon/swapoff -включить/выключить файлы подкачки
# fdsik /dev/sdb -войти в меню fdsik диска /dev/sdb
# mkfs.ext4 /dev/sdb5 -отформатировать раздел sdb5 как ext4
# mount /dev/sdb5 /folder1 -монтируем диск /dev/sdb5 в каталог /folder1 (предварительно отформатировав командой mkfs)
# umount /folder1 -отмонтируем каталог
LVM:
https://help.ubuntu.ru/wiki/lvm
Проверка файловой системы.
# fsck /dev/sda2
Загрузчики Linux
Копируем загрузочный сектор MBR (делаем бэкап утилитой dd)
# dd if=/dev/sda of=/root/backup.mbr bs=512 count=1
GRUB2
Конфиги GRUB2
/etc/default/grub
Применить конфиги GRUB2
# update-grub
https://help.ubuntu.ru/wiki/grub
Библиотеки.
Расположение /lib и /usr/lib
Файлы с расширением .so
Посмотреть какие библиотеки использует программа ls:
# ldd /bin/ls
Менеджеры пакетов.
dpkg (Debian)
# dpkg --list -инфо о всех установленных пакетах
# dpkg -s jenkins -инфо об установленном пакете (-s status)
# dpkg -p jenkins -также инфо об установленном пакете
# dpkg -S /bin/df -инфо в какой пакет входит утилита
# dpkg -I test.deb -инфо о пакете
APT (Debian)
# apt install gmail-notify -установить пакет gmail-notify
# apt search gmail-notify -поиск пакета
# apt show gmail-notify -информация о пакете
# apt-cache depends gmail-notify -зависимости пакета
# apt-cache rdepends gmail-notify -кто зависит от пакета
RPM (REDHAT)
# rpm -iv test.rpm -установить пакет test.rpm
# rpm -e test.rpm -удалить пакет test.rpm
# rpm -Vv test.rpm -проверить пакет test.rpm
# rpm -qi openssh -информация о пакете
# rpm -qd openssh -документация по пакету
# rpm2cpio test.rpm > test.cpio -конвертация пакета rpm в формат cpio
YUM (REDHAT)
# yum install gmail-notify -установить пакет gmail-notify
# yum remove gmail-notify -удалить пакет gmail-notify
# yum info openssh -информация о пакете
Профили пользователя
.bashrc -конфиг настройки проифля bash пользователя
Создать переменную в профиле:
# ABC=19
# export ABC
# echo $ABC
# unset ABC -уничтожить переменную
# PATH=$PATH:. -добавить в переменную среду возможность запуска выполняемых файлов из текущего каталога
Операции с файлами и директориями
cp, mv, rm
dd -копирование файлов и блочных устройств
# dd if=/dev/sdb of=drive.img -копирование в текущий каталог в файл drive.img диска sdb
Использование потоков, конвейеров и перенаправлений
0- стандартный ввод
1- стандартный вывод
2- стандартный вывод ошибок
$ ls test > out.txt 2> error.txt -вывести листинг каталога test в файл out.txt 2, если возникнут ошибки записать в файл error.txt
Работа с процессами в Linux
# sleep 500 & -выполнить команду sleep 500 в фоновом режиме
# jobs -показать фоновые процессы и их PID в текущей консоли
# fg 1 -войти в процесс по PID 1
ctrl+Z -остановить выполняемый процесс
ctrl+c -убить выполняемый процесс
Ядро системы
# snap list --all -посмотреть ядро системы
# snap remove core --revision 4486 -удалить ядро системы с номером 4486
# ps aux -посмотреть процессы всех юзеров. ">" "<" -сортировка процессов. "k" -kill process
# kill 2345 -2345 PID процесса
# killall sleep -заврешение всех процессов sleep по имени
# pstree -просмотр дерева процессов
# top + "k" -kill process, выбираем PID процесса, Send pid 88 signal [15/sigterm]- по умолчанию 15-мягкое завершение процесса, 9 -убить процесс
# ps xaf -древовидный вывод процессов
# ps xawf -eo pid,user,cgroup,args
# systemd-cgls
# uptime -время работы системы
# screen -S ttt -создать скрин с именем ttt. Ctrl+a+d -отключиться от скрина
# screen -list -просмотр активных сессий
# screen -s ttt -вновь подключиться к сессии с именем ttt
Приоритеты процессов.
От -20 (максимальный, выполнение в первую очередь) до +19 (минимальный приоритет, выполнение в последнюю очередь)
# ps alx -колонка приоритетов NI nice
# ps -eo user,pid,nice,comm -вывод процессов
# ps -eo user,pid,nice,comm | grep apache2 -вывод процесса apache2
# nice -n 19 sleep 6000 & -запуск процесса sleep в бэкграунде с минимальным приоритетом 19
# renice 5 -p 2578 -изменить приоритет процесса с ID 2578 на 5
# renice 15 -u user1 -изменить приоритет на 15 для юзера user1
Монтирование файловой системы
Монтирование CD-ROM. В файл /etc/fstab добавляем запись
/dev/sr0 /media/cdrom udf,cdfs,iso9660 user,noauto,exec,ro
то есть в каталог /media/cdrom монтируем наш CD-ROM с возможными файловыми системами (udf,cdfs,iso9660) для всех пользователей, не автоматически, с правом запуска на исполнение, только чтение
Квоты файловой системы.
# apt install quota
Права доступа
chmod -изменение прав доступа на файл
# chmod ugo+rwx chmodtest.txt -дать права на файл chmodtest.txt для ugo (user, group, other) для чтения, записи, выполнения (rwx read, write, execute). Аналог команды:
# chmod 777 chmodtest.txt
# chmod o-rwx chmodtest.txt -забрать права на чтение, запись, выполнение у остальных (other)
# chmod ugo-w chmodtest.txt -забрать у всех (user, group, other) права на запись (write)
chown -изменение владельца файла
# chown admin:admin chmodtest.txt -изменение владельца юзера и группы владельцев на файл chmodtest.txt
# chown :admin chmodtest.txt -изменение только группы владельцев на файл chmodtest.txt
# umask -маска прав при создании файлов и каталогов по умолчанию
Маска определяется по принципу вычитания из максимальных прав. То есть для каталога это 777-022=755, для файла это 666-022=644. При маске 022 все файлы по умолчанию создаются с правами 644, каталоги 755.
# grep UMASK /etc/login.defs -посмотреть текущую маску по умолчанию
suid - запуск файла от имени его владельца
# chmod u+s chmodtest.txt - установка suid бита на файл (запуск исполняемого файла от имени пользователя)
sgid - запуск файла с заменой свой группы на группу владельцев или для папки - замена группы владельцев для всех вложенных объектов
# chmod g+s chmodtest.txt - установка sgid бита на файл (запуск исполняемого файла от имени группы)
sticky - защита содержимого папки от удаления (кроме владельца папки и root никто ничего удалить не сможет)
# chmod o+t folder1/ -установить sticky bit на каталог. Теперь others не смогут удалять файл.
# stat chmodtest.txt -статистика по файлу
Мягкие и жесткие ссылки
# cp -l file.txt hardfile.txt -создать жесткую ссылку (привязывается к inode файла (ls -i)) или
# ln file.txt hardfile.txt (по сути создается копия файла)
# cp -s file.txt softfile.txt -создать мягкую ссылку (привязывается к имени файла) или
# ln -s file.txt hardfile.txt
Расположение команд и файлов в Linux
# type ls -посмотреть алиас команды ls
# whereis ls -где расположен файл
# whatis ls -описание программы ls
# file /bin/ls -описание типа файла
/boot/config-... -конфигурационный файл ядра (можно просмотреть командой cat)
/boot/initrd.img-... -образ стартовой корневой файловой системы
/boot/System.map-... -файл таблицы символов ядра
/boot/vmlinuz-... -файл ядра системы
***
http://lexpr.ru/node/498 systemd для администратора
|