ссылки:
1 2 3 4 5 6 |
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 |
загрузка ос:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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 - на дискету |
загрузка ос доп:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
вкл пк. > инициализация оборудование > поиск загрузочного сектора 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
Настройка 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 |
выполнение программы:
1 2 |
eax > ebax + ecx > 0x80 (программное прерывание) <> system call (обработчик программного прерывания) /usr/include/asm/unistd.h - регистр процессора - системные вызовы смотрим тут |
файлы:
1 2 3 |
read, write, дескриптор файла, массив данных открытие файла = open() create() , обращение к фалу = read() write() , завершение работы с фалом close() каждая операция устанавливает свои flags() |
выполнение java:
1 |
java -jar file.jar |
man:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
man - локальная база документации 1 команды пользователя 2 системные вызовы 3 подпрограммы 4 устройства 5 форматы файлов 6 игры 7 разное 8 админ 9 ядро 10 новое. !!! нам важен 1, 3, 8. Пример: man -k pppoe man 1 passwd |
info:
1 2 3 4 |
info - информация/справка о программе Пример: info tar info linux howto pdf html |
поиск еще:
1 2 3 |
which - покажет где лежит программа whereis - более подробно расскажет о программе slocate - поиск программ по базе. обновить базу можно выполнив updatedb |
find:
1 2 3 4 5 6 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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 - ручная загрузка модуля |
настройка сети:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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
1 2 3 4 5 6 7 8 9 10 |
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:
1 2 3 4 5 6 7 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Монтирование 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 правильно |
монтирование устройств:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
bash - bourne again shell root - супер пользователь # id = 0 su - выполнив от пользователя и введя пароль станете root. если su введет root он может зайти любым пользователем без пароля в linux все является файлом. программы устройства и тд path - переменная содержит пути до исполнительных файлов . - текущий каталог .. - предыдущий каталог ./myscrip - не что иное как говорит выполни здесь дескрипторы процессов: <pre class="lang:default decode:true " > У каждого процесса по умолчанию три дескриптора 0 = sdin 1 = sdout 2 = sderr |
Шаблоны подстановки wildcard:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
? - один знак ( один произвольный символ) * - соответствует любому количеству символов [ ] - любые символы , заключенные в эти скобки, будут подставлены в выражения поиска соответствий Примеры: 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, пайпы, пере направление:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
конвейер - (пайп) - (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 |
переменные окружения:
1 2 3 4 5 6 7 |
set - покажет все переменные окружения PATH - одна из главных переменных показывает откуда запускаются программы unset - удаляет любые указанные переменные. export ПЕРЕМЕННАЯ=значение export PATH=$PATH:/типа/новый/каталог знак $(доллар) - нужен чтобы баш интерпретировал переменную ( т.е. использовал ее) echo $PATH - покажет значение переменной PATH |
горячие клавиши в shell:
1 2 3 4 |
Завершение ввода табуляцией tab combletion клавиша TAB две стрелки. автозавершение ввода. виртуальные терминалы Alt+F[1-6] текстовый alt+[7-12] иксы ctrl+alt+F[1-6] переход из иксов в консоль ctrl+c - завершить выполнение команды \ скрипта |
screen:
1 2 3 4 5 6 7 8 |
screen - это эмулятор терминала. все команды для screen начинаются с Ctrl+A Ctrl+A+C - создать новый терминальный сеанс Ctrl+A+N - переключится в следующий терминал Ctrl+A+P - переключит в предыдущий терминал Ctrl+A+D - отключит от текущего терминала screen -r - выведет на экран все запущенные терминалы screen -r id - подключит к терминалу id ( id номер терминала) |
права на файлы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
В файловой системе хранится информация о владельце для. каждого файла и каталога. 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 значение по умолчанию -------------------------- |
ссылки (связывание файлов):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
жесткие ссылки - это различные имена одного и того же файла. при удалении всех ссылок удаляется сам файл мягкие ссылки или симлинки не имеют собственных прав и указывают на владельца удаляются ссылки с помощью команды rm создаются ссылки с помощью команды ln ln /что /на_что - без параметра s создастся жесткая ссылка. жесткие ссылки ограничены одной файловой системой ln -s /что "название линка" - нужно быть в той папке куда нужно сделать линк (мягкая ссылка) ln -s /var/usr/re ~/re - создаст симлинк на файл /var/usr/re и поместит его в домашний каталог ln -s /2/e/txt /name - создаст симлинк ln -s /путь/что /куда/как_назвать_симлинк - последний параметр отвечает за название симлинка |
Работа с каталогами:
1 2 3 4 5 6 7 8 9 10 11 12 |
ls --help ls - покажет содержимое каталога. параметры ls можно комбинировать ls -FS - покажет файлы и каталоги (у каталогов будет /, у исполнительных файлов *, у простых фалов ничего) ls -l - покажет права доступа на файл, владельца файла и группу, дату создания ls -a - покажет все файлы. файлы имена которых начинаются с точки ( dot-файлы) являются скрытыми ls -lah - покажет все файлы. их права владельца. а также размер в человеко читаемом виде cd --help cd - переход между каталогами pwd - покажет в каком каталоге мы находимся |
Пейджеры more / less / most:
1 2 3 4 5 6 7 8 9 10 11 |
Пейджеры используют когда текст не помещается на экране ( то есть в одну страницу) им либо открывают или перенаправляют вывод на него. more пробел переход на одну страницу. Enter переход на одну строку. more не дает возможности вернуться назад ls /usr/bin | more - показать содержимое каталога и отправить вывод в more more - может работать с несколькими файлами. пишут лучше использовать less. less - продвинутый аналог more позволяет перемещаться по тексту. q выйти из программы ls /usr/bin | less - показать содержимое каталога и отправить вывод в less |
Простой вывод файлов в консоль (cat, echo):
1 2 3 4 5 6 7 8 9 10 |
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:
1 2 3 4 |
touch - изменение метки создания файла. если файла нет то создастся пустой файл touch file1 - пометит файл текущим временем mkdir mycatalog - создаст каталог mycatalog mkdir -p /home/2/1/t - создаст каталог t. если каталогов home 2 и 1 нет, создаст и их. |
Копирование и перемещение/переименование (cp, mv):
1 2 3 4 5 6 7 |
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):
1 2 3 4 5 6 7 |
rmdir /dir - удалить пустой каталог rmdir -p /2/4/6 - удалить каталоги. каталоги должны быть пусты. rm - очень опасная программа. удаляет файлы и директории rm file - удалить файл rm -f file - принудительно удалить файл rm -rf /dir - очистить директорию |
Управление фоновыми процессами (jobs):
1 2 3 4 5 6 7 8 9 10 |
Каждая выполняемая команда называется процессом. foreground - приоритетный режим (программы запущенные из консоли) backgraund - программы работающие в фоновом режиме amp *.mp3 & - запустить проигрыватель amp в фоновом режиме (благодаря знаку &) ctrl+z - при нажатии ctrl+z когда выполняется программа в консоле она будет приостановлена. вводим bg и программа уйдет в фон перевод в приоритетный режим выполняется командой fg jobs - посмотреть список фоновых процессов |
управление процессами (ps, kill, killall, top, htop):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
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 ( идентификатор пользователя) |
Пользователи, группы, пароли :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
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 и не вносить изменений |
Включение, перезагрузка, выключение системы (ПК):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 - тут все параметры загрузки системы |
основные сетевые команды:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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 плюс шифрует трафик |
Электронная почта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
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 типичный пример отправки текста -------------------------------------------------------------- |
Браузеры:
1 2 3 4 5 6 |
lynx - консольный браузер links - консольный браузер wget url - утилита для загрузки файлов wget --recursive http://mysate.ru wget ftp://ftp.mysate.ru/filename.exe |
FTP клиенты:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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 - удалить директорию |
сообщения, общение в консоле:
1 2 3 |
wall имя_файла_текс - быстрый способ отправки сообщений другим пользователям talk - чат для двух пользователей ytalk - продвинутая версия talk |
Отключение служб:
1 2 3 4 5 6 7 |
Службы запускаются из initd и скриптов инициализации /etc/inetd.conf - здесь можно отключить ненужные службы путем стирания или комментирования строк (# в начале строки) kill -HUP $(cat /var/run/inetd.pid) - перезапуск inetd ну или пере загрузится Службы запускаемые из скриптов инициализации /etc/rc.d - в этом каталоге находятся скрипты инициализации chmod -x /etc/rc.d/rc.sshd - сняв бит на выполнение отключаем загрузку sshd. в следующей загрузки демон sshd не заработает. |
Управление доступом к хосту
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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 |
Программы архивирование файлов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
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)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
отличается от 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 - поиск назад |
Управление пакетами
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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 "проверено - работает" для всего что входит в дистрибутив |