Начало:
Все есть файл
Железо:
echo 10000000 > /proc/sys/fs/file-max - увеличить количество открываемых фалов для пользователя (будет работать до перезагрузки) /sys - система/железо/шины/устройства /proc - процессы в запущенной системе /dev - устройства cat /proc/interrupts - прерывания cat /proc/cpuinfo - процессор ls - /sys/block - информация о блочных устройствах ls /dev/ - покажет все устройства lsmod - драйверы используемые железом lspci - все что на шине pci lspcmcia - все о pcmcia (ноутбучное железо) lsusb - все о usb lshal (больше не работает) lshw - все о железе blkid - показать ID дисков
Модули ядра:
lsmod - инфо о модулях (т.е. драйверы) modinfo - информация о конкретном модуле rmmod - удалить модуль lnsmod - установка модуля modprobe - деликатное удаление или добавление модулей
Загрузка системы:
BIOS/UEFI -> MBR/GPT -> LILO/GRUB -> Linux Kernel -> init запуск системы -> первая стадия загрузки -> вторая стадия загрузки -> запуск ядра ОС -> Пользовательская среда grub - ESC grub2 - SHIFT dmesg - выводит параметры загрузки ядра и текущие события cat /var/log/dmesg - лог загрузки
Загрузка системы init:
init - в стиле SysV - старый
файл инициализации /etc/inittab (строка id:level:initdefault)
/etc/rc.d - скрипты загрузки
/etc/init.d/ - демоны
service start/stop/reload/restart- демоны
init - управление инициализацией
telinit - управление инициализации (работает везде)
wall - послать сообщение пользователям
halt - отключение (потом потребуется вырубить пк вручную)
reboot - перезагрузка
shutdown - выключение пк (питание вырубится)
runlevel - уровень загрузки
init - в стиле systemd - современный (продвинутое логирование и параллельная загрузка демонов)
.unit - модули которыми оперирует systemd
.servie - службы
.mount - точки монтирования
.device - устройства
.socket - сокеты
/usr/lib/systemd - директория с юнитами по умолчанию
/etc/systemd - директория с управлением юнитами
systemctl list-units - показать все сервисы
systemctl list-unit-files - выведет список всех сервисов + состояние
systemctl status crond - посмотреть состояние демона crond
systemctl status apache2 - посмотреть состояние сервиса apache2
runlevel - покажет уровень загрузки
systemctl list-units --type=target - вывести список состояний runlevel
systemctl isolate reboot.targert - выполнить reboot.targert (перезагрузка)
systemctl set-default -f multi-user.targert - выставить runlevel multi-user.targert
systemctl unit|reboot|poweroff|service name_unit - выполнить что-то с unit
journalctl - программа с работай логами systemctl
journalctl UID=0 - вывести лог пользователя UID=0 (root)
init - в стиле upstart - современный используется в ubuntu
Service - демоны ( перезапускаются)
Tasks - задачи ( не перезапускаются)
/etc/init - конфиги
/etc/init/rc - конфиги
initctl - ультелита управления загрузками
runlevel - уровень загрузки
status ufw - статус сервиса ufw
stop ufw - остановить сервис ufw
start ufw - запуск сервиса ufw
initctl chow-config - показать конфиг загрузки
initctl check-config - проверка конфига
pstree - узнать какой init и дерево процессов
Ядра и runlevel
ls /boot -ядра ls /boot/grub - загрузчик runlevel - уровни выполнения 0 - выключение 1 - однопользовательский 2 - debian/ubuntu + GUI 3 - redhat/suse 4 - wildcard (все что хоти) 5 - redhat/suse GUI 6 - перезагрузка init 0 - выключить систему
Жесткие диски и файловые системы:
fdisk - таблица разделов mkfs - создание FS mkswap - создание свопа swapon -s - посмотреть включение свопы swapon - включить своп swapoff - отключить своп /etc/fstab - конфиг точек монтирования 1 по 4 - основные разделы ( 3 основные и может быть 1 расширенный) c 5 и далее - логические ( разделы в расширенном разделе) fdisk - l - показать диски и разделы blkid - id дисков LVM fdisk t e8 - LVM pvdisplay - физические тома lvdisplay - логические тома vgdisplay - показал volume groupe pvcreate /dev/sdb1 - создаем физ тома pvcreate /dev/sdb1 - создаем физ тома vgcreate vg_NAME /dev/sdb1 /dev/sdb2 - создаем виртуальную группу vg_NAME для партиций sdb1 и sdb2 mkfs.ext4 /dev/vg_NAME/lvm2 mkfs.ext4 /dev/vg_NAME/lvm1 lvresize -L 4G /dev/vg_NAME/lvm2
Загрузчики
dd if=/dev/sda of /root/backboot.back bs=512 count=1 - сохраняем загрузочный сектор backboot.back lilo apt=get install lilo liloconfig - создать конфигурационный файл и настроить загрузку nano /etc/lilo.conf - открыть на редактирование конфиг файл лило lilo - после запуска добавится загрузка grub /boot/grub/ - файлы конфигурации /boot/grub/menu.lst - конфиг файл grub2 grub-install /dev/sda - установить загрузчик grub-install --version - версия grub cat /etc/grub/grub.cfg - конфиг редактировать не льзя nano /etc/default/grub - настройки grub2 /etc/grub.d - скрипты загрузки
Библиотеки
статические - всегда загружаются в оперативную память для каждой программы динамические - запускаются когда нужны и могут делится между программами (т.е. 2 программы могут использовать одну библиотеку) /lib - каталог библиотек /usr/lib - каталог библиотек /etc/ld.so.conf - конфиг отвечает за расположение библиотек /etc/ld.so.conf.d/ - конфиги библиотек /etc/ld.so.cache - кеш файл используемых библиотек ldconfig - обновить кеш используемых библиотек ldd /bin/ls - покажет какие использует библиотеки программа /bin/ls export LD_LIBRARY_PATH=/opt/soft/lib после ldconfig - для подгруздки сторонних библиотек
Работа с пакетами debian DEB
dpkg dpkg --help - помощь dpkg -l - показать все пакеты dpkg -s firefox - статус firefox dpkg -p firefox - подробная информации dpkg -S firefox - в каких пакета встречается firefox dpkg -S /bin/ls - в каких пакетах встречается ls dpkg -I /home/name.deb - информация о пакете name.deb dpkg -i /home/name.deb - установить пакет name.deb dpkg -r name_packet - удалить пакет dpkg -s name_packet - посмотреть статус пакета name_packet dpkg-reconfigure name_packet - пере конфигурация пакетов name_packet dpkg-reconfigure tzdatda - переконфигурировать пакет tzdata (временная зона) /etc/dpkg/dpkg.cfg - конфиг /var/log/dpkg.log - логи APT apt-get apt-get --help apt-get update - обновить список репозиториев apt-get upgrade - обновить пакеты apt-get install gmail-notify - установка пакета gmail-notify apt-get remove gmail-notify - удаление пакета gmail-notify apt-get autoremove - удалить все ненужные пакеты apt-cache --help apt-cache search gmail-notify - найти программу gmail-notify apt-cache show gmail-notify - показать информацию о пакете gmail-notify apt-cache depend gmail-notify - посмотреть от кого зависит пакета gmail-notify apt-cache rdepend gmail-notify - посмотреть кто зависит gmail-notify aptitude aptitude --help nano /etc/apt/sources.list - список репозиториев restricted - частично свободные universe - управляются сообществом multivers - не свободное main - стандартные
Работа с пакетами redhat / CentOS RPM
RPM rpm - стандартная программа управления пакетами RedHat, CentOS rpm --help rpm -iv name_packet.rpm - установка пакета rpm -e name_packet - удалить пакет rpm -K name_packet.rpm - проверить ключ пакета rpm -Vv name_packet - проверка пакетов name_packet (выведет список файлов и т.д.)также в случаи нарушения или редактирования покажет нарушения целостности (слева будет S.5....T.) rpm -q name_packet - проверка версии name_packet rpm -qi name_packet - выведет больше информации name_packet rpm -qd name_packet - покажет где документация name_packet rpm -qa name_packet - покажет где установлены все пакеты, пакета name_packet rpm2cpio - ультелита для распаковки rpm пакетов для других систем управления пакетами rpm2cpio name_packet.rpm > name_packet.cpio - преобразуем пакет less name_packet.cpio - можем посмотреть содержимое пакета YUM yum --help yum install name_packet - установка пакета name_packet yum remove name_packet - удаление пакета name_packet /etc/yum.repos.d/ - каталог с файлами репозиториев yum upgrade - обновление пакетов yumdownloader - ультелита для скачивания пакетов в папку. yum search name_packet - поиск пакетов name_packet
Работа в командной строке
/bin/bash - шелл по умолчанию
/etc/profile - настройки для всех профилей
/home/username/.profile - настройка профиля для пользователя username
/home/username/.bashrc - настройки оснастки bash у пользователя username
cat /etc/password - посмотреть какой шелл используется у пользователей
cat - вывод содержимого файла в консоль
cd - переход в каталог
ls - вывод содержимого каталога
echo - вывод текста в консоль
echo Hello; ls; echo Bye - выведет Hello , выполнит команду ls, выведет Bye (для bash знак ";" новая строка )
touch - обновление времени редактирования файла или создать пустой файл
file - справка по файлу
whatis - справка по названию
history - вывод истории команд
env - вывод переменных среды
pwd - текущий каталог
export - задание переменной
unset - отключение переменной
uname - выведет Linux
uname -a - покажет версию ядра и дистрибутив
Создание своей переменной
ABC=123 - создаем значение
export ABC - добавляем переменную
env - убедится что переменная добавилась
echo $ABC - показать значение переменной
unset ABC - отменить переменную
Добавление в существующую переменную
PATCH=$PATH:. - добавить к переменно patch текущий каталог (.)
Каталоги
~ - домашний каталог
~- - ссылка на предыдущую рабочею папку
. - ссылка на текущую папку
.. - ссылка на папку, расположенную над текущей
Механизмы подстановки
? - любой символ
* - любое кол-во любых символов (в том числе ни одного), но не*-файлы!
** - любые файлы и каталоги, в том числе из всех подкаталогов
[abc] - один из символов указанный в скобках (диапазон) (применяют при поиске)
ls [1-3].txt - покажет файлы 1.txt 2.txt 3.txt
{1,2,3,4} - один из символов указанный (последовательно) (применяют при создании)
touch {1,2,3}.txt - создаст три файла 1.txt 2.txt 3.txt
[a-f] - символ из указанного диапазона
[!abc] - любые символы, кроме тех, что указаны в скобках
man -k http - найти мануалы по http
Работа с текстовыми патоками
файлы не трогаются все выводится на экран.
cat - выводит содержимое файлов и может склеивать файлы
cut - выводит содержимое на экран вырезая не нужные символы
expand - выводит на экран преобразует символы табуляции в пробелы
unexpad - преобразует пробелы в TAB
fmt - убирает переносы строки
fmt -w 5 - выведет на строке не больше 5 символов
head - покажет начала файла 10 строк
head -n 3 - покажет первые 3 троки
tail - покажет конец файла 10 строк
od - конвертация файлов ( по умолчанию 8код)
join - объединяет строчки файлов по общему полю
less - читать файл
nl - нумерует строки
paste - объединяет строки файлов
pr - подготавливает и показывает как будет выглядить печать
sed - замена слов, букв и т.д. в файле
sort - сортировка слов
split - разбивание фалов (строки, байты и т.д.)
tr - переводит и удаляет символы
uniq - ищет дубли в файле, покажет дубли,
wc - показывает кол символов, слов, строк
Основные операции с файлами
cp
mv
ls
rm
mkdir
touch
find
dd
gzip
bzip2
xz
tar
cpio - двоичный архиватор
ls | cpio -o > archiv.cpio - вот так архивируем
cd extract | cpio -id < archiv.cpio - распаковка