Рубрики
Slackware

Нарезки из книги по slackware

ссылки:

https://directory.fsf.org/wiki/Main_Page - все программы с описанием и ссылками для nix*
https://www.linux.org/ - ядро
https://www.gnu.org/ - софт 
http://www.slackware.com/~mrgoblin/
https://groups.google.com - группы bsd, linux
https://www.netfilter.org/ - официальная документация iptables

загрузка ос:

mbr 512 байт > grub> init /etc/grub/menu.lst - загрузка системы

lilo  - загрузчик по умолчанию (в 2018 все используют grub2)
GRUB - официально не поддерживается
loadlin -  загрузчик из dos убивает дос загружает слак
liloconfig -  программа для настройки загрузчика lilo.
/etc/lilo.conf
/sbin/lilo - запускаем чтобы переустановить lilo и создать файл /etc/lilo.conf

liloconfig - пример установки
simple - простая установка
root - в начало корневого раздела линукс
MBR - записать в загрузачный сектор
floppy -  на дискету


загрузка ос доп:

вкл пк. > инициализация оборудование > поиск загрузочного сектора 512кб > инициализация оборудования > init загрузочные скрипты

/etc/rc.d тут все скрипты иницилизации и запуска системы

rc.S иницилизация самой системы > rc.modules > rc.pcmcia > rc.serial > rc.sysvinit ищит скрипты System V

скрипты уровня запуска
----------------------
rc.0 остановка системы симлин rc.6
rc.4 многопользовательская система kde gnom
rc.6 перезагрузка системы
rc.K однопользовательский режим
rc.M многопользовательский режим консоль
----------------------
инициализация сети
-----------------
rc.inet1 создается программой netconfig
rc.inet2 запуск сетевых служб
rc.atalk это AppleTalk
rc.httpd запуск остановка и перезагрузка apache
rc.news запуск сервера новостей
----------------
другие скрипт
-------------
rc.gpm мышь в консоле для в ставке текста может мешать в gnom kde
rc.font загружает определенный шрифт для консоли
rc.local запуск скриптов админа \ чтоб он заработал над дать разрешение на выполнение
-------------

загрузка ос, графика, inittab:

Настройка X-windows
сервер и оконный менеджер
/etc/X11/xorg.conf - настройка загрузки графической системы
xorgconfig - программа для настройки иксов
xorgsetup - программа автоматической настройки иксов от slackware
xinitrc - программа запускающая иксы
/home/username/.xinitrc - если файл есть то он будет запущен (какой использовать оконный менеджер и тд)
/var/X11R6/lib/xinit/xinitrc - файл конфигурации по умалчанию (загружается он если нету конфига в дом каталоге пользователя)
%xwmconfig - программа для выбора оконного окружения например GNOME или KDE
xdm \ kdm \ gdm - программа загрузки иксов и ввода имени и пароля

/etc/inittab - выбор режима уровня загрузки системы runlevel
id:3:initdefault: не устанавливайте в 1 и 6 . для иксов с менеджером сеансов ставим 4 вместо 3
стандартные уровни запуска
0 - остановка системы - rc.0
1- одно пользовательский режим - rc.1
2 - не используется (настроен как 3)
3 - много пользовательский режим ( используется по умолчанию) - rc.3
4 - X11 с KDM GDM XDM (менеджеры сеансов) - rc.4
5 - не используется
6 - перезагрузка - rc.6

/etc/rc.d/rc.4
#пытаемся использовать gdm
if [ -x /usr/bin/gdm] ; then если файл gdm и можно его выполнить, если да то выполняем
exec /usr/bin/gdm -nodaemon выполняем файл в режиме не демона
fi если выше не выполнено идем дальше
# комментарий все что идет после # выполнятся не будет
/opt/kde/bin/kdm
/usr/X11R6/bin/xdm
ненужный оконный менеджер можно просто комментировать. или удалить пакет из системы removepkg.
либо снять разрешение на выполнение командой chmod -x /usr/bin/gdm

выполнение программы:

eax > ebax + ecx  > 0x80 (программное прерывание) <> system call (обработчик программного прерывания)
/usr/include/asm/unistd.h  - регистр процессора - системные вызовы смотрим тут

файлы:

read, write,  дескриптор файла, массив данных
открытие файла = open() create() , обращение к фалу = read() write() , завершение работы с фалом close()
каждая операция устанавливает свои flags()

выполнение java:

java -jar file.jar

man:

man  - локальная база документации 

1 команды пользователя
2 системные вызовы
3 подпрограммы
4 устройства
5 форматы файлов 
6 игры
7 разное
8 админ
9 ядро
10 новое. 

!!! нам важен 1, 3, 8. 

Пример:
man -k pppoe 
man 1 passwd

info:

info - информация/справка о программе
Пример:
info tar
info linux howto pdf html

поиск еще:

which - покажет где лежит программа
whereis - более подробно расскажет о программе
slocate - поиск программ по базе. обновить базу можно выполнив updatedb

find:

find -name xxx - поиск xxx в текущем каталоге
find /home -mmin 30 покажет все. созданное за последние 30 мин
find /home -size +200M покажит все файлы больше 200 мегабайт
find /home -name << *.txt>> print0 | xargs -r -0 grep -l word

grep -R hostapd /etc/rc.d/ полезная команда для поиска нужного конфига в папке rc.d

сборка ядра linux:


cd /usr/src/linux
сделать копию .config
make mrproper - привести код в базовое состояние
make config - конфигурирование ядра текстовая версия
make menuconfig - конфигурирование ядра текстовая версия вопрос/ответ
make xconfig - конфигурирование ядра графическая версия
make dep - подготовка компиляции ядра
make clean - подготовка к компиляция ядра
make bzImage - компиляция ядра make bzImage V=1
make modules - подключение модулей ядра

установка нового ядра
mv /boot/vmlinuz /boot/vmlinuz.old - переименуем старое ядро
cat arch/i386/boot/vmlinuz > /vmlinuz. - я хз но там должен быть путь /boot/vmlinuz
mv /boot/system.map /boot/system.map.old
cp system.map /boot/system.map
make modules_install
nano /etc/lilo.conf - отредактировать загрузку добавить на всякий старое ядро

модули ядра
/etc/rc.d/rc.modules - загрузка модулей
/lib/modules - тут все модули ядра
lsmod - увидеть загруженные модули ядра
rmmod имя_модуля -  команда чтобы выгрузить модуль
modprobe и lsmod - ручная загрузка модуля

настройка сети:

netconfig программа для настройки сети
ifconfig -a
/sbin/dhcpd клиент dhcpd (/etc/rc.d/rc.inet1 этот скрипт его запускает (а файле rc.inet1.conf параметры запуска)
/etc/rc.d/rc.inet1.conf
IPADDR[0]="192.168.0.2"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]="NO"
DHCP_HOSTNAME=""
GATEWAY=192.168.0.1

/etc/resolv.conf - тут хранится IP/DNS сервера
----------------
nameserver 192.168.0.1 - так. указывается конкретный днс сервер
search b14esh.com а вот так даст понять что написав http://gruzims будет иметь введу http://gruzims.b14esh.com
-----------------
/etc/hosts - локальная база DNS как то так :-)

PPP

PPP соединения
pppsetup - программа для настройки ppp соединения
/usr/sbin/ppp-go и /usr/sbin/ppp-off скрипты запуска и остановки соединения ppp
/etc/ppp - конфигурация для запуска ppp-go ppp-off
ip-down - запускает скрип после разрыва соединения
ip-up - запускает скрипт после успешной установки соединения
option - общие параметры pppd
option.demand - общие параметры pppd в режиме дозвона по запросу
pppscript - эти команды отправляются модему
pppsetup.txt - то что вы вводили в команде pppsetup при настройке

беспроводная связь wi-fi:

iwconfig - программа для настройки wi-fi
rc.wirelless - исполнительный скрипт берет настройки из конфиг файла rc.wireless.conf
rc.wireless.conf - конфиг файл
iwconfig wlan0 192.168.45.12 up  - вот так можно назначить ip
iwconfig eth0 essid mynetwork - подключится к сети mynetwork
iwconfig eth0 key 123456 - введем ключ сети
iwconfig chanel 6 - если сетевая карта сама не может найти нужный канал помоем ей.

SMB/SAMBA/CIFS

/etc/samba/smb.conf -  кофиг самбы
-------------------
[global]
workgroup = mygroup
server string = samba server
security = user
encrypt password = yes
------------------

управление доступом к самбе:
smbpasswd - программа для создания пользователя к общему ресурсу
/etc/samba/private/smbpasswd - тут хранится пользователь и пк
smbpasswd -a user1 - добавление пользователя (внимание user1 сначала над создать командой adduser и должны быть записи в /etc/passwd )
smbpasswd -a -m machine -  добавление пк ( внимание пк нужно создать сначала командой adduser)
adduser user1  - создание пользователя (/etc/passwd появятся записи)
adduser machine$ - добавление пк . знак $ нужен чтобы команда adduse поняла что мы добавляем пк

NFS

Монтирование NFS network file system
export(5) nfsd(5) mountd(5)

сервер:
/etc/exports - конфиг nfs
------------
/home/dir machine (rw) - вот так мы делаем доступным папку по nfs
директория машина (r - чтение w- запись root_squash - переназначить права если подключились с удаленной машины id=0 root)
------------
exportfs -o rw,root_squash machine:/home/dir так мы разрешаем доступ по nfs пк machine к нашему каталогу dir

клиент:
mkdir /nfs/name_catalog -p - создали каталог
nano /etc/fstab - редактировали файл автомонтирования
----------------
ip_name_server_NFS:/home/dir /nfs/name_catalog nfs rw,sync,hard,intr 0 0
----------------
mount -a - проверили что настроили fstab правильно

монтирование устройств:

mount - для подключения носителей
umount - для отключения носителей
/etc/fstab - отвечает за автоматическое монтирование при загрузке системы 
            (название устройства, точка монтирования, файловая система, права доступа, fsck значения для программы проверки диска)
----------
/dev/sda1 / ext3 defaults 1 1
/dev/sda2 swap swap defaults 0 0
/dev/sdrom /mnt/sdrom iso9660 ro 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
----------
fsck -  программы проверки диска

mount -t iso9660 -o ro /home/file.iso /folder - подключает образ диска file.iso в папку folder
mount -a - так обычно проверяют fstab (если в конфиге /etc/fstab все верно и такое устройство есть то оно подключится)
mount /dev/sdrom - подключить sdrom ( сработает если в fstab есть запись)

чтобы извлечь диск или дискету или флешку ее необходимо отмонтировать ( хотя это уже не очень актуально есть демон udev)
umount /dev/sdrom - отмантирует сдром

командный процессор (shell):

bash - bourne again shell
root - супер пользователь # id = 0
su - выполнив от пользователя и введя пароль станете root. если su введет root он может зайти любым пользователем без пароля
в linux все является файлом. программы устройства и тд
path - переменная содержит пути до исполнительных файлов
.  - текущий каталог
.. - предыдущий каталог
./myscrip  - не что иное как говорит выполни здесь

дескрипторы процессов:
У каждого процесса по умолчанию три дескриптора
0 = sdin
1 = sdout 
2 = sderr

Шаблоны подстановки wildcard:

? - один знак ( один произвольный символ)
* - соответствует любому количеству символов
[ ] - любые символы , заключенные в эти скобки, будут подставлены в выражения поиска соответствий

Примеры:
ls a[1-4] -  покажет a1 a2 a3 a4 если они существуют
ls a[5,6,7] - покажет a5 a6 a7 если они существуют

В linux регистр букв имеет значение. A и a это разные символы прописные символы всегда идут впереди строчных

ls a1[A,a]2 покажет a1A2 и a1a2 если такие файлы существуют
ls as[A,a-d] покажет asA asa asb asc asd
ls a[A-Z,10-9,a-z] покажет а?

!!! [A-z] - так писать не льзя. можно либо прописные[A-Z] либо строчные[a-z] либо цифры[0-9]


Pipe, пайпы, пере направление:

конвейер - (пайп) -  (shift)+(обратная косая черта) =  |
| - пайп пере направление вывода
; - пайп пере направление вывода
() -  скобки служат для группирования команд
& -  говорит о том что команда выполнится в фоне
ls /etc | grep abc - смотрим содержимое каталога etc, перенаправляем вывод в grep и получаем файлы в которых есть символ abc
cd /etc ; cat passwd - перейти в etc и выполнить cat passwd
(sleep 30; echo tttt)& - все что в скобки отправляем в фоновый режим и через 30 сек выводим  tttt
ps > myfile перенаправит вывод в myfile.txt ( уничтожит текущие содержание файла)
ps | less перенаправит вывод в просмотрщик(пейджер) less
ps >> myfil.txt если файл есть то допишет в конец файла
<  - взять входные данные из следующего фала
fromdos < from.txt > unix.txt - из fromdos возьмет данные из from.txt и запишет в unix.txt

переменные окружения:

set - покажет все переменные окружения
PATH - одна из главных переменных показывает откуда запускаются программы
unset -  удаляет любые указанные переменные.
export ПЕРЕМЕННАЯ=значение
export PATH=$PATH:/типа/новый/каталог
знак $(доллар) - нужен чтобы баш интерпретировал переменную ( т.е. использовал ее)
echo $PATH - покажет значение переменной PATH

горячие клавиши в shell:

Завершение ввода табуляцией tab combletion клавиша TAB две стрелки. автозавершение ввода.
виртуальные терминалы Alt+F[1-6] текстовый alt+[7-12] иксы
ctrl+alt+F[1-6] переход из иксов в консоль
ctrl+c - завершить выполнение команды \ скрипта

screen:

screen - это эмулятор терминала.
все команды для screen начинаются с Ctrl+A
Ctrl+A+C - создать новый терминальный сеанс
Ctrl+A+N - переключится в следующий терминал
Ctrl+A+P - переключит в предыдущий терминал
Ctrl+A+D - отключит от текущего терминала
screen -r - выведет на экран все запущенные терминалы
screen -r id - подключит к терминалу id ( id номер терминала)

права на файлы:

В файловой системе хранится информация о владельце для. каждого файла и каталога.
ls -l /usr/bin/wc -  покажет ls кто является владельцем файла права на файл его группу размер. list
chown user:group /var/www - смена владельца каталога www (вместо : можно использовать . точку ) (change owner)

Права доступа хранятся в четырех восьмеричных цифрах, каждая из которых определяет различные права доступа.
Специальная информация uid gid stiky-бит,Пользователь,Группа,Остальные

ls -l - покажет какие права на файл/каталог и кто владелец
ls -lah - покажет какие права на файл/каталог и кто владелец 
ls -a - покажет какие права на файл/каталог и кто владелец

chmod 777 test - изменит права на файл
chmod ugo+rwx test можно так:
----------------------------
1 = t стикибит stiky-бит
4 = s установка id пользователя
2 = S установка id группы
4 = r чтение
2 = w запись
1 = x выполнение
----------------------------
чтение + запись + выполнение 1+2+4=7 rwx
chmod 700 test - пользователю дать права на все ( можно так chmod u+rwx test)
----------------------------
чтение и выполнение 4+1=5 r-x
chmod 500 test - пользователю дать права на чтение и выполнение
----------------------------
чтение r--
chmod 400 test пользователю дать права на чтение
----------------------------
выполнение --x
chmod 1 test пользователю дать права на выполнение
----------------------------
все права для всех rwxrwxrwx
chmod 777 test 
----------------------------
chmod + rwx test 
u - владелец user
g - группа group
o -  остальные owner
a - все выше перечисленные

----------------------------
umask 0022 обратная команда chmod 0022 значение по умолчанию
--------------------------

ссылки (связывание файлов):

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

мягкие ссылки или симлинки не имеют собственных прав и указывают на владельца
удаляются ссылки с помощью команды rm
создаются ссылки с помощью команды ln

ln /что /на_что - без параметра s создастся жесткая ссылка. жесткие ссылки ограничены одной файловой системой

ln -s /что "название линка" - нужно быть в той папке куда нужно сделать линк (мягкая ссылка)

ln -s /var/usr/re ~/re - создаст симлинк на файл /var/usr/re и поместит его в домашний каталог
ln -s /2/e/txt /name - создаст симлинк
ln -s /путь/что /куда/как_назвать_симлинк  - последний параметр отвечает за название симлинка



Работа с каталогами:

ls --help 
ls - покажет содержимое каталога. параметры ls можно комбинировать
ls -FS - покажет файлы и каталоги (у каталогов будет /, у исполнительных файлов *, у простых фалов ничего)
ls -l - покажет права доступа на файл, владельца файла и группу, дату создания
ls -a  - покажет все файлы. файлы имена которых начинаются с точки ( dot-файлы) являются скрытыми
ls -lah - покажет все файлы. их права владельца. а также размер в человеко читаемом виде

cd --help
cd - переход между каталогами


pwd - покажет в каком каталоге мы находимся

Пейджеры more / less / most:

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

more пробел переход на одну страницу. 
Enter переход на одну строку. 
more не дает возможности вернуться назад

ls /usr/bin | more - показать содержимое каталога и отправить вывод в more
more -  может работать с несколькими файлами. пишут лучше использовать less.

less - продвинутый аналог more позволяет перемещаться по тексту. q выйти из программы
ls /usr/bin | less - показать содержимое каталога и отправить вывод в less

Простой вывод файлов в консоль (cat, echo):

cat - была создана для объединения файлов
cat my.txt - выведет на стандартный вывод содержимое my.txt
cat m1 m2 m3 m4 > my.txt - запишет все в файл my.txt (объединить)
cat my.txt | less - вот так можно перенаправить любой файл и просмотреть его пейджером
cat my.txt > /home/newmy.txt - вот так можно скопировать любой файл

echo - выводит на экран указанный текст
по умолчанию echo выводит саму строку, а после нее знак - (новой строки)
echo -n text - после вывода text не будет новой строки
echo -e - заставит искать символы escape и выполнит их


Новые директории и файлы (touch, mkdir:

touch - изменение метки создания файла. если файла нет то создастся пустой файл
touch file1 - пометит файл текущим временем
mkdir mycatalog - создаст каталог mycatalog
mkdir -p /home/2/1/t - создаст каталог t. если каталогов home 2 и 1 нет, создаст и их.

Копирование и перемещение/переименование (cp, mv):

cp - копирование фалов
cp /home/ file1 /tmp/file2 - скопирует file1 в /tmp/file2
cp -a myfile myfile2 - копируются myfile в myfile2 с сохранением временных меток
cp -R /a /b - рекурсивное копирование каталог в каталог ( то есть все из каталога а копируется в каталог б)
cp -p myfile1 myfile2 - скопирует файл, все права и временные метки
mv file /dir - перемещение файла
mv file file1 - переименование файла

Удаление файлов и директорий (rm, rmdir):

rmdir /dir - удалить пустой каталог
rmdir -p /2/4/6 - удалить каталоги. каталоги должны быть пусты.

rm - очень опасная программа. удаляет файлы и директории
rm file - удалить файл
rm -f file -  принудительно удалить файл
rm -rf /dir - очистить директорию

Управление фоновыми процессами (jobs):

Каждая выполняемая команда называется процессом.
foreground - приоритетный режим (программы запущенные из консоли)
backgraund - программы работающие в фоновом режиме

amp *.mp3 & - запустить проигрыватель amp в фоновом режиме (благодаря знаку &)

ctrl+z - при нажатии ctrl+z когда выполняется программа в консоле она будет  приостановлена. вводим bg и программа уйдет в фон
перевод в приоритетный режим выполняется командой fg

jobs - посмотреть список фоновых процессов

управление процессами (ps, kill, killall, top, htop):

pid - идентификатор процесса (process id). 
Все процессы имеют уникальные идентификатор от 1 до 32767
Каждому новому процессу назначается следующий свободный PID
Когда процесс завершается он освобождает свой PID
При достижении максимального PID , следующим берется PID с наименьшим свободным номером, и так по кругу.


ps -ax - покажет все процессы
ps -aux - более подробная информация о процессах. когда и кем был запущен процесс. сколько использует cpu mem vsz rss
ps -auxw - покажет процессы и опция w заставит ps переносить длинные строки
---------------------------
TTY - говорит в каком терминале выполняется программа (ttyp0 программа запущена удалено или в X, tty = "?" скорее демон, tty1 с локальной консоли)
TIME - содержит данные о времени в течении которого программа использует ресурсы центрального процессора
CMD - представлена сама программа
STAT - состояние процесса
     s = sleep спит ожидает данных
     z = zombie процесс потерявший родителей (то есть он никогда не проснется)
     w = страничная подкачка файлов
     x = мертвые процессы
     t = трассируются или остановлены
     r = означает что процесс можно запустить
---------------------------

Чтобы убить процесс вы должны быть его владельцем. root естественно может убить любой процесс
В команде kill можно использовать только числа сигналов.
kill - убьем все что не правильно заработало
kill -l - список сигналов
kill PID - убить процесс по его PID. ps обязательно поможет нам узнать PID процесса. SIGTERM. процесс нормально завершится
kill -9 PID - иногда просто kill не помогает тогда приходит на помощь сигнал -9 SIGKILL. процесс будет уничтожен возможна потеря данных

В команде killall можно использовать названия сигналов без приставки SIG
killall -kill vim - вот так завершили процесс vim
killall name - программа убивает процессы по имени. SIGTERM
killall bash - выкинет всех из системы если выполнить под root


top - просмотр процессов
top -u works - так мы увидим процессы пользователя works . можно вместо имени указать UID ( идентификатор пользователя)

Пользователи, группы, пароли :

root - только для задач обслуживания системы
adduser, userdel, chfn, chsh, passwd - программы для управления пользователями
groupadd, groupdel, groupmod  - программы для управления группами

Эти программы запускаются только root и находятся в каталоге /usr/sbin ( за исключение chfn chsh passwd и их каталог в /usr/bin)
Традиционно сложилось, что логины состоят из 8 и менее символов в нижнем регистре.
По умолчанию все новые пользователи заносятся в группу users.
Многие современные дистрибутивы новому пользователю создают группу с его именем и добавляют его в нее.
По умолчанию каталоги находятся в /home.
По умолчанию /bin/bash командный процессор для всех пользователей
По умолчанию 100 группа users в slackware
Удаление пользователя говорит об очистки записи об пользователе в файлах /etc/passwd /etc/shadow /etc/groups

chfn - поможет юзеру изменить инфу своей учетке

userdel -r vasya - удалить пользователя vasya из системы
                   опция - r отвечает за удаление домашнего каталога. 
                   также будут очищены файлы /etc/passwd, /etc/shadow, /etc/group


passwd - изменения пароля
passwd vasya - изменение пароля для vasya (происходят изменения в файле /etc/shadow) root может менять пароли кому угодно
passwd -l david - заблокировать учетную запись
passwd -d david - разблокировать учетную запись

Изменение информации о пользователях:
/etc/shells - перечислены все шеллы которые могут использовать пользователи ( болшенству подойдет /bin/bash)

/etc/passwd - информация о пользователях но без пароля доступен на чтение всем
-----------
vasya:x:1000:100:Vasya Pupkin, room ,,:/home/vasya:/bin/bash
имя:пароль:идпользователя:идгруппы:описание,пользователя,,:/домашний/каталог:шелл
-----------

/etc/shadow - тут хранятся все пароли и доступен на чтение руту
-----------
vasya:passwordhash:11055:0:99999:7:::
логин:шифрованыйпароль:когдаменялипароль:когдадолженбытьизмененпароль:количестводнейистеченияпароля:дне4йкогдазаблокируют:зп:зп:
-----------

/etc/group хранится информация о группах
----------
group::1001:vasya,root,fedor
названиегрупы:пароль:индефикатор:члены,группы
----------

pwck - проверка правильности конфигов passwd
pwck -r - проверка правильности конфигов passwd и не вносить изменений
grpck - проверка правильности конфигов groups
grpck -r - проверка правильности конфигов groups и не вносить изменений

Включение, перезагрузка, выключение системы (ПК):

poweroff - корректное выключение системы. система будет выключена немедленно
shutdown -h now - корректное выключение системы. система будет выключена немедленно
shutdown -h +60 система будет выключена через 60 мин. при этом пользователи получат уведомление.
shutdown -r now перезагрузка
halt - выключение пк (не рекомендуется)
Нажатие кнопки питания  однократно, так же корректно должно завершить все процессы системы и выключить питане

reboot - перезагрузка
Ctrl+alt+del - перезагрузка системы (работает не везде)

telinit - tel сокращено от tell говорить
telinit - скажет системе в какой уровень запуска выполняется
telinit 0 - запустит выключение системы
telinit 6 - запустит перезагрузку системы


/etc/inittab - тут все параметры загрузки системы

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

ping - проверка доступности хоста
ping - отправляет указному хосту ICMP-пакет ECHO_REQUEST. если хост ответит вы получите ICMP пакет. (то есть хост доступен)

traceroute -  показывает все хосты через которые прошёл пакет по пути к конечному хосту. можно увидеть количество хопов (hop)
traceroute -  также использует ICMP-пакеты для своей работы

host -  сопоставление имени DNS с ip адресами
nslookup - сопоставление ip с DNS именем (программа устарела но актуальна )

dig -  с сервера может получить практически все A,CNAME,MX,SP,TXT
dig (domain informacion proper) - современная замена nslookup
dig @192.168.1.50 www.mysaite.ru mx
dig @где_ищем чтои_щем параметр

telnet hostname - удаленное подключение к пк ( внимание telnet весь трафик передает незашифрованным и считается устаревшим. ssh замена telnet)
telnet hostname port - телнет умеет подключаться на любые порты. и удобен для диагностики
telnet ipwebserver 80 HEAD / HTTP/1.0 - так можно протестировать веб сервер

ssh iphostname -l user - типичное подключение по ssh. ssh умеет все что умел telnet плюс шифрует трафик

Электронная почта:

Kmail - графический почтовый клиент

pine - консольный почтовый клиент
---------------------------------
i увидеть входящие письма. при нажатии на Enter откроется письмо для чтения. 
С помощью клавиши r можно написать ответ.
Ctrl+x сохранить и отправить ответ. 
Для просмотра опять сообщений можно нажать i.
Для удаления сообщения просо нажать d. pine удалит письма при выходе из программы.
Для получения списка папок нажмите l. Выберите в папке письмо и нажмите s чтобы сохранить в другой папке.
---------------------------------

elm - консольный почтовый клиент
--------------------------------
в elm по умолчанию вы находитесь во входящих письмах. 
Стрелками выберете письмо и нажимаете enter
При нажатии на клавишу m создаст новое письмо
Клавиша d пометит письмо флагом на удаление. 
Клавиша r запустит редактор ответа на письмо которое сейчас читаете.
-------------------------------

mutt - консольный почтовый клиент
---------------------------------
основан на elm и имеет больше функционала
---------------------------------

nail - консольный клиент (без псевдографики) удобен для тестов
--------------------------------------------------------------
nail - симлинки /usr/bin/mail /usr/bin/mailx (чаще всего nail симлинк на mail)
mailx тема аресс@получателя. программа наил берет текс из стандартного ввода ctrl+d
cat redmy.txt | mailx -s "redmy.txr" vova@mail.ru типичный пример отправки текста
--------------------------------------------------------------

Браузеры:

lynx - консольный браузер
links - консольный браузер

wget url - утилита для загрузки файлов
wget --recursive http://mysate.ru
wget ftp://ftp.mysate.ru/filename.exe

FTP клиенты:

ftp hostname port - типичное подключение через ftp
ncftp - еще один клиент ftp но более продвинутый (можно использовать TAB , авто заход ананимусом, шаблоны, история команд)

команды фтп клиентов (некоторые похожи на стандартные unix команды)
ls - вывод списка файлов
cd - смена каталога
bin - установка. двоичного режима передачи
ascii - установка текстового режима передачи
get filename - загрузка файла
put filename - выгрузка файла
hash - переключения знака статистики в виде решётки
tick - переключения индикатора счетчика байтов
prom - переключение интерактивного режима для загрузок
mget file/mask - загрузка файлов или группы файлов ( разрешены шаблоны)
mput filemask - выгрузка файлов или группы файлов (допускаются шаблоны)
quit - выход с сервера
chmod - смена прав
rename - переименовать файл
delete - удалить файл
rmdir - удалить директорию

сообщения, общение в консоле:

wall имя_файла_текс - быстрый способ отправки сообщений другим пользователям
talk - чат для двух пользователей
ytalk - продвинутая версия talk

Отключение служб:

Службы запускаются из initd и скриптов инициализации
/etc/inetd.conf - здесь можно отключить ненужные службы путем стирания или комментирования строк (# в начале строки)
kill -HUP $(cat /var/run/inetd.pid) - перезапуск inetd ну или пере загрузится

Службы запускаемые из скриптов инициализации
/etc/rc.d - в этом каталоге находятся скрипты инициализации
chmod -x /etc/rc.d/rc.sshd - сняв бит на выполнение отключаем загрузку sshd. в следующей загрузки демон sshd не заработает.

Управление доступом к хосту

iptables - стандартный firewall
-------------------------------
/etc/rc.d/rc.firewall  - конфигурация
Фаервол лутше настраивать имея доступ к локальной консоли машины.
iptables -P INPUT DROP - первым делом устанавливаем DROP для входящих подключений
iptables -P FORWARD DROP - первым делом устанавливаем DROP для входящих подключений
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT - разрешаем трафик для уже установленных соединений
iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT - разрешаем работу приложений использующих адрес обратной связи 
iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT - разрешаем работу демонов (сервисов) например веб сервер
iptables -A INPUT -p tcp -s 8.8.8.8 --dport 80 -i ppp0 -j ACCEPT - следующие правило разрешит доступ на 80 порт ток определенного адреса
разрешение трафика для диагностики ICMP
iptales -A INPUT -p icmp -i ppp0 -j ACCEPT
иногда требуется настроить трансляции для других пк в нашей сети ( наш пк основной шлюз)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
еще нужно включить форвардинг.
echo 1 > / proc/sys/net/ipv4/ip_forward это будет работать до перезагрузки
чтобы включить форвард постоянно
nano /etc/rc.d/rc.inet2
изменить строку IPV4_FORWARD =0 на IPV4_FORWARD=1
Доп информацию о нат смотреть в nat hawto
-------------------------------

tcpwrappers управление доступом на уровне приложений.
/etc/host.allow один из конфиг файлов tcpwrappers для localhost добавить ALL : 127.0.0.1 для ssh добавить sshd : 10.0.0.0/24 или sshd : 10.0.0.
/etc/host.deny один из конфиг файлов tcpwrappers ALL : ALL

Программы архивирование файлов:

gzip - эта программа берет один файл и сжимает его. gz -gz .Z-Z .z -z
gzip -9 file - программа будет сжата максимальным уровнем сжатия -9
gunzip - распаковка файлов. распаковывает в текущий каталог
gzip -d - распаковка файлов. распаковывает в текущий каталог

bzip2 - еще один упаковщик. расширение .bz2
bunzip - распаковка
bzip2 -d - распаковка

tar - берет много файлов или каталогов и делает из них 1 архив. был придуман для магнитных лент
Довольно часто tar архивы сжимают gzip или bzip2. такой архив называют tarboll и имеет расширение name.tar.bz
На публичные сервера принято грузить .bz2 так как у него хорошая степень сжатия
Тар распаковывает архивы в каталог в котором был вызван

tar -xvzf file.tar.gz - распаковка. -x распаковка. -v показывает. на экране текущую распаковку. -vv еще подробней покажет. -z распаковать после. -f тар понимает что нужно распаковать
gunzip filename.tar.gz | tar -xvf - вот так раньше распаковывали. gunzip разжимает файл и перенаправляет его через пайп. tar в свою очередь
его принимает стандартного ввода(это задается минусом после -xvf) и распаковывает в текущий каталог

tar -xvjf file.tar.bz2 - распаковать в текущий каталог
tar -xvzf file.tar.gz -C /dir - опция -C говорит тару куда распаковывать
tar -cvzf etc.tar.gz /etc - создаст архив etc.tar.gz
tar -cvzf file.tar.gz . - создаст архив текущего каталога ( точка после file.tar.gz говорит о текущем каталоге)
опция -f не всегда обязательна. без нее тар будет записывать на стандартный вывод.
например когда нужно зашифровать файл

tar -cv file.tar.gz . | gpg --encrypt - сжимаем файл пакуем и перенаправляем на шифрование


zip file * - создастся file.zip с содержимым текущего каталога
zip -r file * - запакует рекурсивно все каталоги и папки в текущем каталоге
unzip file.zip - распакует файлы и каталоги из архива file.zip в текущий каталог

Редактор теста (vi, vim)

vi - устаревший мощный редактор текста. ( теряет популярность из за более простых редакторов)
По умолчанию запускается в командном режиме.
Если изменений не было, что бы выйти из vi наберите :q  
Если изменения были, что бы выйти из vi наберите :q! (проигнорируем изменения и выйдем)
Если требуется сохранить изменения при выходи из vi наберите :qw (выйти с сохранением)
Восклицательный знак ! обычно означает принудительные действия

vi /file.txt - открыть существующий файл
vi +41 /file.txt - открыть файл на определенной строке очень полезная функция

режимы работы vi

командный режим 
---------------
при запуске вим он первый
в нем доступны :
команды для работы с тестом
перемещения по файлу
сохранение документа или файла
в этом режиме не льзя вводить текст
---------------

режим вставки
-------------
Для перехода в режим вставки нажмите i .
Для выхода нажмите Escape.
в режиме вставке можно редактировать текст.

hjkl клавиши перемещения в командном режиме
h влево
j вниз
k вверх
l вправо
------------

dd удаление одной строки где находится курсор
dd4 удаление строки где находится курсор и три после нее

Копирование текста выполняется командой y (yank резкий рывок) в командном режиме
Копирование строки yy 
Копирование нескольких строк yy4

Вставка производится p ( past) в командном режиме.
Также p можно использовать для вставки вырезного текста. 
сначала выполняем dd а потом переходим в нужное место жмем p.

Прочитать текст из нужного файла просто наберите :p и напишите путь до нужного файла

Поиск в файле выполняется по нажатию / (слэш) и далее просто вводим текст который нужно найти.
Чтобы продолжить поиск нажимаем / и Enter

клавиша r - позволит заменить один символ. клавиша R позволит заменить сколько угодно символов. клавиша Escape вернет в командный режим.

клавиша INSERT - служит переключателем режимов вставки и замены.

:e /etc/hosts - находясь в командном режиме, в программе vi открываем файл hosts
e! открыть файл который мы уже редактируем ( полезно когда накасячишь)

:split file.txt - экран разделится пополам. будет показано два файла. первый который мы редактировали. второй который мы вызвали через сплит.

:w random - сохранить файл под именем random, после того как сохранил файл для повтора вводи :w
:wq - сохранить файл и выйти из vi
:w! - сохранить файл доступный только для чтения ( восклицательный знак принудительное выполнение)

!!! Иногда ПК может зависнуть или отключат свет. vi периодически делает скрытый файл с сохраненным буфером. с тем же именем но с точкой в начале.

:help - помощь вызывается в командном режиме
$ - в конец строки
^ - в начало строки
G - в конец файла
:1 - в начало файла
:21 - переместится на 21 строку
x - удаление символа
10x - удаление 10 символов
u - отмена текущего действия
j - объединение текущей и следующей строки
n - повтор поиска в прямом направлении /
N - повтор поиска в обратном ?

Текстовый редактор Emacs:

отличается от vi тем что использует кнопки для команд ctrl, alt. в нем нет командного режима
C-x - означает Corol+x
M-x - означает Alt+x (раньше не было кнопки Alt зато была кнопка Meta. поэтому Meta заменили на Alt а обозначение решили оставить прежним M)

C-x C-c - завершение работы emacs
C-x C-s - сохраняет текущий файл
C-x C-b - не одно и тоже что С-x b . первая означает нажмите Control+x и Control+b . а вторая Control+x
C-x b - переключение буферов. scratch буфер по умолчанию. еще существует мини буфер самая последняя строка в окне emacs
C-x C-b - посмотреть список открытых буферов. 
C-x 1 - выйти из этого буфера.

insert режим замены
C-x c-f - открытие файла. нужно будет ввести путь до файла
C-g - отмена действия
C-k - удалить текст в строке от начала курсора
C-k C-k - удалить текст в строке и саму строку.
C-_ - отменить последние действие
C-d - удаление одного символа
M-d - удаление слова
C-s - поиск вперед
C-r - поиск назад

Управление пакетами

pkgtool - менеджер пакетов. проблема не проверяет зависимости. ну сделано так и не собираются это менять
в slackware пакет - это tar архив сжатый gzip-ом. собранные пакеты предназначены для распаковки в корневой каталог.
обратите внимание на каталог install в нем есть файл doinst.sh. он выполниться после начала установки.
pkgtool - программа для установки удаления пакетов. выглядит как меню.

installpkg опции имя_пакета - утилита для установки скаченных пакетов
installpkg -m namepacket - выполняет действие makepkg в текущем каталоге
installpkg -warn namepacket - покажет что произойдет если установите пакет
installpkg -r - рекурсивно устанавливает все пакеты в текущем каталоге и ниже

removepkg name - удаляет установленный пакет. есть четыре опции copy keep preserve warn
removepkg -copy name - пакет копируется в специальный каталог для пакетов. так можно делать резервные копии пакетов
removepkg -preserve nameпакет - удаляется но сохраняется резервная копия в спец каталоге
removepkg -warn name - показывает что будет если удалить пакет name

/var/log/remove_packeges
/var/log/removed_scripts

upgradepkg name - обновления пакета
explodepkg namepacket - просто извлекает содержимое пакета в текущий каталог
makepkg - упаковывает содержимое каталога в пакет

Скрипты slackebuild другой способ установки. представляет из себя исполнительные скрипты для установки и настройки по.
программа setup и teg файлы. это специально подготовленный файл для установки системы.

ZipSlack специальная версия slackware. получила название zip из за метода распространения.

Принцип slackware "проверено - работает" для всего что входит в дистрибутив