Введение:
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 |
POSIX - стандарт написания операционной системы -------------- Basic Software -------------- Shell || FS -------------- Unix Kernel -------------- Ядро обычно монолитное. (Может быть модульным) Включает в себя драйверы устройств. В unix все является файлом (папки, устройства, файлы, драйверы) Текстовая операционная система. Все операции ввода/вывода осуществляются через ядро. Оболочка связывает пользователя с ядром. Borne Shell -> sh Borne Again Shel -> bash C shell -> csh tcsh -> FreeBSD Система инициализации как правила написана на языке shell. CTRL+ALT+F1 - переключение в консоль CTRL+ALT+F7 - переключится в графику Терминал — устройство ввода/вывода, рабочее место на многопользовательских ЭВМ, монитор с клавиатурой Оболочка операционной системы (от англ. shell - оболочка) — интерпретатор команд операционной системы (ОС), обеспечивающий интерфейс для взаимодействия пользователя с функциями системы Консоль — интерфейс командной строки в котором инструкции компьютеру даются только путём ввода с клавиатуры текстовых строк (команд) |
консоль
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
UNIXWAY - одно программа, одно действие cd cd /tmp command [options] [arguments] что_делать как_делать над_чем_делать getconf AGR_MAX - посмотреть ограничение количества аргументов Аргументы задаются через пробел \ пробелы. Linux регистра зависимая система. (то есть а не равно А) Нижний регистр букв предпочтителен для команд. Клавиша TAB позволяет авто дописывать команды. |
переменные
1 2 3 4 5 6 7 8 9 |
arg1=hello - задаем переменную arg1 со значением hello arg2=world - задаем переменную arg2 со значением world echo - команда вывод на экран echo $arg1 echo $arg2 echo $arg1 $arg2 |
экранирование
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Допустим у нас есть переменная arg1, нужно задать значение из двух слова hello и world. Способ первый: arg1=hello\ world Второй способ: arg1="hello world" Третий способ: arg1='Hello worl' Особенности кавычек: arg2="how are you?" - задали переменную echo $arg2 - будет выведено "how are you" arg2="$arg1 how are you?" - задали переменную echo $arg2 - будет выведено "hello world how are you" !!! внимание arg2='$arg1 how are you?' - !!! задали значение переменной в одинарных кавычках (' - апостроф) echo $arg2 - !!! будет выведено $arg1 how are you?, значение переменной arg1 подставлено не будет |
спец символы / шаблоны для командной строки
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
* - любое количество символов ? - один любой символ [] - один символ из указанного диапазона, пример [a-z], [a,c] !!! Символ крышечка "_" впереди диапазона [^a ] инвертирует вывод, все символы кроме "a" [^zxc] - один символ за исключением указанного диапазона [a-zA-Z0-9] - один алфавитном цифровой символ [a-zA-Z0-9^-] - один алфавитном цифровой символ, или символ крышечка "^", или знак минус "-". !!! Внимание спец символы нужно записывать в конце диапазонов. touch - команда для "потрогать" файл, если файла нет, то файл будет создан. touch f1 f2 f3 f4 f5 ff1 ff2 ff3 ff4 echo f* echo ff* echo *2 echo *[253] echo ??4 echo *[3-5] echo [^12] |
перенаправление ввода/вывода
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Программный канал (конвейер) направляет вывод одной программы на ввод другой. | - конвейер tocuh f48 > - записать в файл, если в файле что то есть будет перезаписано echo "hello world" > f48 cat f1 >> - дописать в файл echo "privet!!!" >> f48 f48 < f1 f2 < f48 << F1 env | grep PATH cat -n filename - пронумеровать строки и показать содержимое файла |
поиск команд оболочкой / переменные окружения
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 |
!!! Переменные окружения передаются только в одну сторону от "родителя" к "детям". SHELL – содержит путь к shell текущего пользователя LS_COLORS – определяет соответствие между расширениями файлов и теми цветами которыми те отражаются в при выводе командой ls USER – текущий пользователь HOME – домашний каталог пользователя USER PATH – содержит пути для поиска файлов по умолчанию PWD – указывает на текущий каталог LANG – определяет текущие настройки локали Команды оболочки: env – выводит список переменных окружения export – экспортирует переменные окружения, делая их доступными для других программ echo – выводит на терминал то, что передано в качестве параметра, в том числе и esc-последовательности* reset – возврат настроек терминала к значениям по умолчанию logout – завершение текущего пользовательского сеанса exit – завершение сеанса работы с оболочкой env - показать все переменные окружения (эти переменные доступны все программам пользователя) echo $PATH - покажет относительные где оболочка ищет программы pwd - показать текущую директорию (на самом деле оболочка берет значение из переменной PWD из переменного окружения, env в помощь) export arg1="hello world" - добавить свою переменную в переменное окружение env - показать все переменные окружения, так можно увидеть результат выполнения команды export (например: export arg1="hello world") unset arg1 - удалить переменную agr1 из переменного окружения |
ключи
1 2 3 4 5 6 7 8 9 10 |
Короткие - стиль UNIX ls -a ls -a -i -h -l ls -a -i -h -l ff* ls -aihl ff* Длинные - стиль GNU ls --help ls -l --human-readable /bin/bush |
определяем файл / команду / тип
1 2 3 4 5 6 |
type - команда покажет что это за файл: команда, программа, тип файла, файл type echo type ls type iptables type rm type type |
файловые системы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
fat fat32 extfat ntfs ISO-9660 Rockridge Joilet UDF ext2 - нет журнала ext3 - есть журнал, ext4 - есть журнал, допиленная ext3 ReiserFS - похожа на базу данных, у файлов есть индекс..., не развивается JFS - разработчик IBM, хорошая производительность XFS - работа с огромными файлами ZFS - позволяет создать огромный массив fsck - программа исправления ошибок на диске в случаи сбоя |
файлы / типы файлов
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 |
ls -li - показать файлы в текущем каталоге (параметр i покажет IDNODE файлов) INODE - у нас называют файловый дескриптор \ Мета данные(дата создания и т.д.) \ Вся служебная информация (адреса расположения на fs и т.д.) INODE ID Metadata ---- Adds Blocks длина имени файла 255 байт . - текущий каталог .. - каталог на уровень выше .filename - скрытый файл Жесткие ссылки можно делать только на файлы и толь на файлы одной файловой системы (одного раздела). ls -lid /home ls -lid /home/i ~ - домашний каталог текущего пользователя ls -l f или - — обыкновенный файл l — символьная ссылка d — директория c — символьное устройство b — блочное устройство p — pipe (FIFO) файл s — файл типа socket |
каталоги
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/bin – исполняемые файлы /sbin – исполняемые файлы /dev – файлы устройств - это специальный каталог, при загрузке системы создается в оперативной памяти, специальная программа\демон UDEVD /etc – файлы конфигурации /lib – системные библиотеки /home – каталоги пользователей /root – каталог суперпользователя /usr – размещение приложений (6Гб - 16Гб) /var – данные приложений (сюда любят писать все. базы данных, веб сервер, логи) /tmp – временный каталог системы /var/tmp – временные каталоги приложений /proc – файловый интерфейс ОС /opt – аналог “Program Files” /mnt – монтирование сетевых ФС /media – монтирование съемных ФС /boot – загрузчик и ядро системы (128 Мб) /sys – интерфейс к устройствам ОС /srv – размещение Web-сайтов, FTP... |
Полезные устройства из каталога /dev
1 2 3 4 5 6 |
/dev/zero - устройства с бесконечными нулями /dev/null - черная дыра /dev/random - случайные значения /dev/tty* - наши терминалы /dev/sd* - диски и разделы /dev/ttsy* - последовательный порт (minicom) |
Стандартные ввод, вывод и вывод ошибок
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 |
Стандартные потоки (файлы): 0 – Стандартный ввод (stdin) (клавиатура) /dev/stdin 1 – Стандартный вывод (stdout) (экран) /dev/stdout 2 – Стандартный вывод ошибок (stderr) (экран) /dev/stderr !!! Каждая программа в unix всегда использует stdin,stdout,stderr (демоны не используют) cat - Нажмите Ctrl+D – (EOF) для завершения работы cat > testfile Введите строку и нажмите Enter Нажмите Ctrl+D – (EOF) для завершения работы cat testfile > testfile 2> errfile cat errfile cat /etc/passwd > testfile2 cat < /etc/group > testfile ls -l /etc > mylist touch /bin/mycustomfile 2>errfile 2>errfile ls -l -R /etc 1>poleznoe cat errfile cat poleznoe /etc/shell - конфиг шелла в системе |
Основные команды для работы с файлами:
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 |
ls – вывод содержимого каталога pwd – выводит на консоль путь к текущему каталогу cd – смена текущего каталога touch – создание файла или изменение его временных меток mkdir – создание каталога rm / rmdir – удаление файла / каталога, поддерживается рекурсия cp / mv – копирование / переименование / перенос файлов и каталогов, поддерживается рекурсия more / less – постраничный просмотр текстовых файлов ln – создание ссылок на файлы (hard & soft) cat / tac – вывод содержимого файла в прямом и обратном порядках Примеры: ls -alF /etc pwd cd /etc pwd cd .. pwd cd ~ touch test ls -l test mkdir -p dir1/dir2/dir3 cp test dir1/dir2 mv test mytest rmdir dir1/dir2/dir3 cat /etc/passwd tac /etc/group more /etc/services less /etc/syslog.conf rm mytest rm -rf dir1 ls -l *test* rm *test* |
Дополнительные команды для работы с файлами
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 |
df - отчёт об использовании дискового пространства du - оценка места на диске, занимаемого файлами и каталогами sort – сортировка строк в текстовых файлах cut / paste – работа с секциями файлов (вырезать / вставить) head / tail – вывод (первых / последних) строк файла на стандартный вывод wc – подсчет (размера файла, числа символов, слов, строк и т.п.) tr – замена символов по шаблону dd - преобразовать и копировать файл tee – трансляция stdin в stdout c ведением лога uniq – нахождение дублирующийся строк grep – поиск по шаблону df -h du -h /var/log ls /etc | sort | less ls /etc/*.conf | wc -l cat /etc/services | head ls -l /etc | tr 'rwx' 'RWX' ls -l /etc | tee test | tail wc -c test dd if=/dev/cdrom of=~/my.iso cat | uniq -d grep -rsni pppd /usr/share/doc cat > test line1:the 1st line2:the 2nd line3:the 3rd {нажмите Ctrl+D} cut -f 1 -d: test > tmp1 cut -f 2 -d: test > tmp2 paste tmp2 tmp1 > test rm tmp* && cat test |
Полезные клавиши в консоли
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 |
^ - обозначают клавишу ctrl Meta - клавиша ALT CTRL + F - перемещение вперед по символьное (forward) CTRL + B - перемещение назад по символьное (backward) ESC + F - перемещение вперед по словами (forward) ESC + B - перемещение назад по словами (backward) CTRL + A - переместится в начало строки CTRL + E - перемещение в конец строки CTRL + V - CTRL + U - вырезать все от начало до конца CTRL + K - удаление от текущего положения курсора до конца строки CTRL + Y - вставить вырезанное CTRL + T - поменять символы или слова местами CTRL + L - очистка экрана CTRL + D - удалять символы от курсора, с лева на право (аналог del) CTRL + H - удалять символы к курсору, справа на лево (аналог backspace) CTRL + W - удалить назад по словам ALT + U - привести слова в верхний регистр UPP ALT + L - привести слова в нижний регистр LOW ALT + C - привести слова к виду с заглавной буквы (Capital) |
История команд \ history
1 2 3 4 5 6 7 8 9 10 |
history - покажет историю выполненных команд, команды будут пронумерованы, всего хранится 1000 последних команд !50 - выполнить 50 команду !-4 - выполнить четвертую команду с конца !! - выполнить последнею команду !echo - будет произведен поиск в истории и будет выполнена команда начинающееся на echo Также клавиши вверх и вниз перемещаются по history. CTRL + P - перемещение по истории команд назад (полезно если не работает боковая часть клавиатуры) CTRL + N - перемещение по истории команд вперед (полезно если не работает боковая часть клавиатуры) |
Буфер FIFO \ Сокеты \ Socket
1 2 3 4 5 6 7 |
FIFO - точка встречи\ первый пришёл, ушел последний Socket - более развитое понятие, встречается в TCP/IP в виде ADDRESS:port (придумали в BSD) (tcp socket), unix socket и т.д. ls -l /tmp/.X11-unix/ Работа с сокетами возлагается на приложение, обработкой запросов занимается ядро. |
Подсистема magic
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Расширения файлов *.txt, *.exe и т.д. - это скорее для человека, что бы было понятно что за файл, ядро узнает про тип файла от подсистемы magic Подсистема magic - служит для определения типа файла Программа file для определения файла также использует подсистему magic file text.txt file file_name file /bin/false file /usr/share/zoneinfo/Europe/Moscow file /usr/share/zoneinfo/W-SU file /etc/init.d/cron Примеры форматов файлов: ELF 32-bit - !!! stripped у файла означает, что у файла убрана отладочная информация ElF 64-bit ASCII text symbolic link to timezone data POSIX shell script, ASCII text executable COFF (в linux поддерживается, развивает microsoft) |
Pagers \ Читалки
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
more - программа для просмотра файлов less - программа для просмотра файлов !!! - все файлы в unix не рекомендуется открывать редактором, файл может быть огромным, а при открытии файла его содержимое помещается в оперативную память !!! - все файлы в unix не рекомендуется открывать редактором, например файлы логов, демон пишущий в лог, может перестать писать в лог. ls -l /var/log/ - выбираем жертву, смотрим содержимое каталога "/var/log" с размерами файлов "-i" more /var/log/auth.log more /etc/services less /var/log/kern.log less /etc/services |
Документация \ man \ info
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 |
У большинство программ есть аргумент --help ls –help cat --help info info [menu-item] info iptables info cat info ls Документация к программам обычно есть в man man [опции] [раздел] manpage Документация хранится в специально форматированных текстовых файлах, в директории /usr/share/man. Документация к программам находится в директории /usr/share/doc. Разделы man man1 Системные утилиты общего пользования man2 Функции системы man3 Библиотечные функции man4 Описание устройств man5 Форматы конфигурационных файлов man6 Игры man7 Различные описания man8 Административные утилиты man9 Дополнительная документация по ядру man man - получить справку по man man man.7 man 7 man man 5 passwd man passwd.5 man systemd.link.5 man 5 systemd.link man -k network apropos passwd man -f passwd whatis passwd Стандартные имена разделов: НАЗВАНИЕ (NAME), СИНТАКСИС (SYNOPSIS), НАСТРОЙКИ (CONFIGURATION), ОПИСАНИЕ (DESCRIPTION), ПАРАМЕТРЫ (OPTIONS), КОД ВЫХОДА (EXIT STATUS), ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ (RETURN VALUE), ОШИБКИ (ERRORS), ОКРУЖЕНИЕ (ENVIRONMENT), ФАЙЛЫ (FILES), ВЕРСИИ (VERSIONS), СОГЛАСУЕТСЯ С (CONFORMING TO), ЗАМЕЧАНИЯ (NOTES), ОШИБКИ (BUGS), ПРИМЕР (EXAMPLE), АВТОРЫ (AUTHORS) и СМОТРИТЕ ТАКЖЕ (SEE ALSO). man pwd man ls |
Символьные ссылки
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
ln – создание ссылок на файлы (hard & soft) !!! На жесткие ссылки есть ограничения, создавать можно только на одном томе и только на файлы cd ~ - перейдем в домашний каталог cp /etc/services . - скопируем файл в текущий каталог ln services hardlink1 - создадим жесткую ссылку hardlink1 файла services в текущем каталоге ln services hardlink2 ln services hardlink3 ln services /tmp/hardlink4 ls -li hardlink? services /tmp/hardlink4 - показать файлы с именами hardlink? и services, и заодно показать их INODE, он будет у всех один и тот же file hardlink1 !!! На символьные ссылки ограничений нет \ можно создавать на каталоги и файлы \ на другие тома ln -s services softlink1 ln -s services softlink2 ln -s services /tmp/softlink3 ls -li softlink1 softlink2 /tmp/softlink3 rm services - удаление файла services rm hardlink? /tmp/softlink1 softlink? - удаление файлов hardlink? /tmp/softlink1 softlink? |
каталоги \ mkdir
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
mkdir new_name_dir - создание каталога new_name_dir mkdir new_name_dir1\new_name_dir_2\new_name_dir_3 - создание вложенных каталогов new_name_dir? rmdir name_dir - удалит пустой каталог -v verbose - показать подробности -i interactive -просить подтверждение -f force - удалить и не спрашивать ничего rm -rf name_dir - удалит директорию и все файлы в ней cp -r dir1 dir2 - скопировать содержимое каталога dir1 в каталог dir2 cp - vu test/* test1/ - файлы копируются если они более новые |
текстовые редакторы \ vi \ vim \ emacs \ nano \ ee
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
sudo apt-get install vim - устанавливаем vim Переключение между режимами Esc или ^C Переключение в командный режим. Ins или i Редактирование в режиме вставки с текущей позиции. a Редактирование в режиме вставки со следующей позиции. A Редактирование в режиме вставки после последнего символа в строке. o Новая строка под, и редактирование в режиме вставки. O Новая строка над и редактирование в режиме вставки. r Замена символа в текущей позиции. Дополнительные возможности редактора vim. В редакторе vim можно набирать текст в режиме «вставки» и «замены». Повторные нажатия Ins будут переключать режимы редактирования между вставкой и заменой. R Перевод из командного режима в режим редактирования в режиме «замены» с текущей позиции. Текущий режим редактирования отображается в левом нижнем углу. Текущее положение в тексте отображается в правом нижнем углу. Командный режим. Перемещения Стрелочками работают 4 клавиши. Они стоят рядышком: h курсор — на одну позицию влево (крайняя слева). j курсор — на одну строку вниз (похожа на стрелку вниз). k курсов — на одну строку вверх (от слова кайф). l курсор — на одну позицию вправо (крайняя справа). 0 Курсор в начало строки (Номе). $ Курсор в конец строки (End). H Курсор на первую строку на экране. L Курсор на последнюю строку на экране gg Курсор в начало файла. G Курсор в конец файла. Листание ^u Прокрутка текста на пол-экрана вверх (Up). ^d Прокрутка текста на пол-экрана вниз (Down). ^f Прокрутка текста на экран вперёд (Forward). ^b Прокрутка текста на экран назад (Backward). Повторитель Перед любой командой в командном режиме может быть указано число повторений команды. Например, если в командном режиме набрать 25j - курсор переместится на 25 строк вниз. Важно не забывать, это удобно. Редактирование dl или x Эквивалентно Del. d0 Удаление от текущей позиции до начала строки. d$ Удаление от текущей позиции до конца строки. dd Удаление строки. 12dd — удалить 12 строк. ~ Изменение регистра символа J Объединение текущей строки со следующей Примечание. Все удаления попадают в буфер обмена. u Undo. y Cимвол — в буфер обмена. Если требуется поместить в буфер обмена несколько символов, пользуются повторителями. yy Строка — в буфер обмена. p Вставка содержимого буфера после текущей позиции курсора. P Вставка содержимого буфера после текущей позиции курсора. Дополнительные возможности редактора vim. v Визуальное выделение посимвольно ^v Начало выделения в режиме редактирования. Дальше может следовать команда редактирования, либо взятия в буфер, и переход в режим редактирования. · V Визуальное выделение построчно. · Y Строка — в буфер обмена. Командная строка редактора :w [filename] Сохранить файл. Для сохранения в файл, казать имя файла. Можно использовать >> для дописывания в конец файла. :e filename Открыть файл filename. :e! Отбросить все изменения и открыть файл с диска. :q Закрыть файл и выйти. :wq Сохранить файл, закрыть и выйти. :q! Закрыть файл и выйти не сохраняя. :help Справка. / Искать вперёд. ? Искать назад. :s/шаблон/замена/ Заменить по шаблону в текущей строке. :s/шаблон/замена/g Заменить по шаблону до конца текущей строки. :%s/шаблон/замена/g Поиск и замена по шаблону во всём файле. Дополнительные возможности редактора vim. :hardcopy Твёрдая копия, печать. Если на редактирование открыто сразу несколько файлов, чтобы перемещаться между ними: :next Перейти к следующему файлу. :previous Перейти к предыдущему файлу. Редактор vim также позволяет работать с несколькими окнами на одном экране. ^w+n Открыть новое окно. ^w+w Перейти в следующее окно. Вместе с редактором vim в систему, как правило устанавливается программа vimtutor. Представляет собою короткий интерактивный «курс молодого бойца». Занимает 20-30 минут времени. Настоятельно рекомендуется для начального обучения. |
Работа с жесткие диски \ MBR
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 |
512байт запись MBR 446байт - загрузчик определяет активный раздел 64байт - таблица разделов Primary (максимально 4 раздела) EXTENDED - расширенный первичный раздел, d нем создаются логические диски LOGIC (максимально 64 раздела) !!! Для su рекомендуется всегда использовать параметр минус "-", тога переменные окружения у пользователя root будут правильные. !!! В этом можете убедится сами. Запустив sudo su и после авторизации выполнить команду env. !!! А потом выполнить команду sudo su - и сравнить выводы команды env sudo su - ls /dev/sd* - покажет устройства cd* ls /dev/vd* - покажет устройства vd* mount - покажет все смонтированные устройства и точки монтирования fdisk -l - покажет все диски и разметку дисков fdisk /dev/sdb - приступить к разметке диска. m - справка. p - показать раметку. n - новая партиция (+1G добавить один Гигабайт). t - тип файловой системы. q - выход. w - записать таблицу разделов. L - список типов файловых систем 83 - linux 82 - swap 5 - расширенный раздел Extended 7 - NTFS parted - более продвинутая программа для работы с дисками mkfs - программа для создания файловых систем mkfs.ext4 /dev/vdb1 - создаем файловую систему на диске vdb1 mkfs.ext4 -L extended /dev/vdb1 - создаем файловую систему на диске vdb1 ( -L задать Label, метка тома) ls /mnt - проверяем содержимое каталога /mnt cd /mnt - переходим в каталог /mnt mkdir linux windows - создаем папки linux и windows в текущем каталоге (cd /mnt) lost+found - специальная папка потерянных файлов mount -t ext4 /dev/vdb1 /mnt/linux - монтируем /dev/vdb1 в каталог /mnt/linux man mkfs.ntfs - получаем справку по команде mkfs.ntfs mkfs.ntfs -L windaz /dev/vdb5 - создаем файловую систему ntfs на диске vdb5 ( -L задать Label, метка тома) mount /dev/vdb5 /mnt/windows mount - показать точки монтирования umount /mnt/linux - от монтировали диск по имени каталога umount /dev/vdb5 - от монтировали диск по имени устройства /etc/fstab - файл для автоаннотирования дисков (pass очередность проверки файловой системы, 0 - не проверять, 1 в первую очередь, 2 во вторую, и т.д.) blkid - показать GUID - устройств mount /dev/sdb1 - запускам для проверки правильности монтирования после редактирования файла /etc/fstab |
поиск \ find \ locate \ which
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
which - покажет где лежит программа (покажет первый найденный файл программы) which rm - покажет где лежит программа rm locate - программа ищет по имени файла по некой базе данных updatedb - обновить базу данных для locate locate Moskow - поиск файла с именем Mosckow locate rm - поиск файла с именем rm locate fstab - поиск файла с именем fstab mlocate - тоже самое что и locate программа ищет по имени файла по некой базе данных man -k find man find find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression] mtime - дата последней модификации atime - дата время последнего доступа ctime - дата время модификации метаданных find ~username -type f -or -type d -name f1 find ~username -type f -or -type d -size 1024c find ~username -type f -size 19183c find ~username -type f -size 19183c -exec chmod 777 {} \; find ~b14esh -type f -size 19183c -exec ls -l {} \; |
Программные фильтры
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
head / tail – вывод десять (первых / последних) строк файла на стандартный вывод head /etc/services tail /var/log/messages - вывести десять последних записей из системного журнала tail /var/log/dmesg - вывести десять последних записей из журнала загрузки ядра cat -n /etc/services | head cat -n /etc/services | tail Используйте параметр -n, чтобы указать, сколько строк должно отображаться. cat -n /etc/services | head -n 300 cat -n /etc/services | tail -n 592 -,+ cat -n /etc/services | head -n -500 cat -n /etc/services | head -n +50 cat -n /etc/services | tail -n +90 cat -n /etc/services | tail -n -20 tail -n 23 - прочитать файл с конца 23 строчки tail -n0 -f /var/log/syslog - наблюдать за файлом tail -f /var/log/messages - в реальном времени выводить все, что добавляется в файл tail -2 file1 - вывести две последние строки файла cat -n /etc/services | tail -n 91 |head -n 5 - передать содержимое файла /etc/services на tail, tail выведет 91 строку конца и передаст head, head выведет 5 строк, в итоге это будет 501-505 строки cat -n /etc/services | head -n 505 | tail -n 5 - передать содержимое файла /etc/services в head, выводим 505 строк, tail обрезает лишние пять, выводится нужные строки 501-505 cut / paste – работа с секциями файлов (вырезать /вставить) cut - с параметром "-c" работает следующем образом, выводит на экран символы перечисленные 1,2,4,5,6-10, все что не попало в этот диапазон не выводится ls -l | cut -c 1-11,29-80 ls -la | cut -c 20-26,50-80 history | cut -c 8-60 полезный ключ для cut: -d (delimeter - разделитель) -f (fill - поле) tail /etc/passwd | cut -f 1,3 -d : tail /etc/passwd | cut -f 1,6 -d : tail /etc/passwd | cut -f 1,3,6 -d : tail /etc/passwd | cut -f 5-7 -d : Если не указывать разделитель параметром -d, разделителем считается пробелы и табуляция !!! -s - подавляет вывод где нет табличной части tail /etc/passwd | cut -f 5-7 -d : -s cat /etc/services | sort | cut -f 1,2 -s sort - сортировка файлов cat /etc/services | sort | less - отсортируем вывод в алфавитном порядке cat /etc/services | sort -r | less - отсортируем вывод в обратном алфавитном порядке cat /etc/services | sort -k2 -n -f | less cat /etc/services | sort -k2 -n -f r | less cat /etc/services | sort -k2 -n -f -u | less uniq - показывает уникальные строки cat /etc/services | sort | uniq | cat -n cat /etc/services | sort | uniq -с cat /etc/services | sort | uniq -c -d tr - замена символов tail /etc/passwd | tr : \\ tail /etc/passwd | tr : '\t' tail /etc/passwd | tr : '\\' cat /etc/passwd | tr -s o,u,w | less man man | tr -s '\n' | less tail /etc/passwd | cut -f 5-7 -d : -s | tr : '\t' tail /etc/passwd | cut -f 5-7 -d : -s | tr : '\t' | tr a-z A-Z ... | tr -d '\r' wc - подсчёт в файле строк, слов и символов wc - выводит количество строк, слов и символов в указанном файле или во входном потоке (из пайпа). wc -l filename - посчитать количество строк в файле cat my.txt | wc -l так мы узнаем сколько там всего строк (если нужно) cat file.txt | wc -l - посчитать число строк cat file.txt | wc -w - посчитать число слов grep 192.198.1.1 /var/log/httpd/access-log | wc -l - отображает количество записей конкретного IP-адреса в файле журнала Apache wc /var/log/dmesg - отображает счетчики для одного файла wc /var/log/*.log - отображает отдельные значения для каждого файла и общие для всех файлов netstat -na | grep ":порт\ " | wc -l - подсчет количества коннектов на определенный порт netstat -na | grep ":порт\ " | grep SYN_RCVD | wc -l - подсчет числа «полуоткрытых» TCP-соединений dpkg -l| wc -l - показать количество установленных пакетов sysctl -a | wc -l - показать количество строк echo "hi there" | wc cat file.txt | wc -l - посчитать число строк cat file.txt | wc -w - посчитать число слов wc /etc/passwd wc /etc/passwd /etc/services wc -l /etc/passwd /etc/services wc -w /etc/passwd /etc/services wc -c /etc/passwd /etc/services tee – трансляция stdin в stdout c ведением лога tail /etc/passwd | cut -f 5-7 -d : -s | tee testfile |tr : '\t' | tr a-z A-Z tail /etc/passwd | cut -f 5-7 -d : -s | tee -a testfile |tr : '\t' | tr a-z A-Z cat testfile history | cut -c 8-200 |
место на диске \ du \ df \ dd
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 |
df - показать свободное пространство на дисках и смонтированные устройства df -h - вывод для человека df -i - показывает количество занятых INODE df -m - отобразит занятое место в мегабайтах df -hl - отображает занятое дисковое пространство локальными ФС df -hT - отображает занятое место плюс тип ФС df -t ext3 - отображает занятое место на файловой системе ext3 df -t ext4 - отображает занятое место на файловой системе ext4 df -h -t ext4 - отображает занятое место на файловой системе ext4 (-h вывод для человека Гб,Мб....) df -m -t ext4 - отображает занятое место на файловой системе ext4 (вывод в мегабайтах) man -k du man du du -s /var /log - показать размер каталога /var/log du -sh /var /log - показать размер каталога /var/log (размер в Мб Кб) du -s /usr/share/* - показать размер всех каталогов внутри каталога /usr/share/ du -s /usr/share/* | sort -n - показать размер всех каталогов внутри каталога /usr/share/ и отсортировать по размеру (размер в Кб) du -h - показать занятое место в текущем каталоге du -sh * - Размер каталога (листинг файлов и подкаталогов) du -csh - Размер текущей директории du -ks * | sort -n -r - Сортировать по размеру (kbytes) du -h --max-depth=1 / - сколько занято место du /bin/rm ls -l /bin/rm du -h /bin/rm du /home/b14esh/ du -h /home/b14esh/ du -h /bin/ du -h /usr du -h /usr du -h -s /usr du -h -s /usr/* du -h -s /usr/* | sort du -h -s /usr/* | sort -n du -h --max-depth=1 /usr/* du -h --max-depth=1 /usr/* du -h --max-depth=1 /usr/ du -h --max-depth=1 /usr/ | sort -n du -s /usr/share/man/man* | sort -n -k1 -r | head -3 | cut -f 2 | cut -f 5 -d '/' - пример команды, есть каталог man, в нем куча каталогов man?, требуется отсортировать каталоги ls -l | sort -k5 -n | cut -c 13-21,55-200 history | cut -c 8-200 dd - !!! опасная программа \ читает и пишет блоками \ по умолчанию размер блока 512байт if - input file of - output file bs - block size (по умолчанию 512 байт) count - количество повторений dd if=что of=куда dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300 - например Nero добавляет к образу заголовок в 300кб, его можно обрезать с помощью dd dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' - создать "слепок" локального диска в файл на удалённом сервере используя ssh туннель dd if=/dev/hda of=/dev/fd0 bs=512 count=1 - создание копии MBR ( Master Boot Record ) с /dev/hda на флоппи-диск dd if=/dev/fd0 of=/dev/hda bs=512 count=1 - восстановить MBR с флоппи-диска на /dev/hda dd if=/dev/sda of=/tmp/backup - создание резервной копии содержимого жесткого диска в файл backup time dd if=/dev/ad4s3c of=/dev/null bs=1024k count=1000 time dd if=/dev/zero bs=1024k count=1000 of=/home/1Gb.file - Читаем и пишем 1GB в /home (/dev/ad4s3c) dd if=/etc/services of=testfile1 dd if=/dev/sr0 of=image.iso bs=2048 dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc dd if=/dev/vda of=/mnt/mbr.img bs=512 count=1 - сохранить загрузочную запись с диска vda в файл mbr.img dd if=/mnt/gentoo/mbr.img of=/dev/sda count=1 - восстанавливаем загрузчик из образа mbr.img на диск sda dd if=/dev/zero of=/dev/sdd bs=1048567 - затираем диск sdd нулями |
grep поиск по шаблону
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 |
cat /etc/services |grep ssh - покажет строки где есть ssh cat /etc/services |grep -v ssh - покажет все кроме строки с ssh regular expression - регулярные выражения Basic Regular Expression - BRE - по умолчанию в grep Extended Regular Expression - ERE - включается в grep параметром -E !!! в grep регулярные выражения не соответствуют общепринятыми регулярным выражениям в консоли * - повтор предыдущего символа ноль или более раз . - любой символ \ - экранирование \* - при экранировании символ * приобретает свои стандартные свойства, любое количество любых символов ? - повтор предыдущего символа ноль или более раз [rt] - диапазон r или t [^rt] - диапазон все кроме r или t ^ - вне диапазона начало строки ^yy $ - конец строки zz$ cat /etc/services |grep "^.*tcp.*amanda " cat /etc/services |grep "^amanda.* " cat /etc/services |grep ".*service$" cat /etc/services |grep ".*ftp.*" cat /etc/services |grep ".*http.*" cat /etc/services |grep ".*139.*" cat /etc/services |grep ".*80.*" cat /etc/services |grep ".*25.*" cat /etc/services |grep ".*SSL.*" cat /etc/services |grep ".*\?elnet.*" [[:alnum:]] - соответствует [a-zA-Z0-9] - \w [^[:alnum:]] - инверсия соответствует [^a-zA-Z0-9] \W [[:digit:]] - соответствует [0-9] \d [^[:digit:]] - соответствует [^0-9] \D [[:space:]] - пробелы \s [^[:space:]] - пробелы \S ip a s | grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" ifconfig | grep -E "(^|[[:space:]])[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}($|[[:space:]])" grep -E "[A-Za-z\.]@[A-Za-z]" x.txt grep -E "http://.*" grep -E "htt(p|ps)://.*" |
Процессы
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 |
PID PID PPID -----> fork() ------> PPID tty | | | | | wait() exec | | | | | | | PID Z <----- exit() <----- PPID таблица процессов PID - идентификатор процесса, 2байта, максимальное значение 65535, всегда уникально от 0 до 65535 PPID - Parent PID - родитель процесса init - PID 1 - дедушка всех процессов UID EUID GID EGID tty Z - zombie - процесс потерявший родителя top ps ps -u ps -au ps -aux ps -aux | less ps -aux | wc -l [] - в этих скобках модули ядра.... ps aux | less |
Управление пользователями
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
Суперпользователь - можно все Пользователь sudo su - adduser - интерактивная программа добавления пользователей \ удобно когда нужно добавить одного пользователя pw useradd - во freebsd useradd - универсальная работает во всех unix useradd -c "Test User" -m -u 8888 -g 8888 useradd -c "Test User" -m -G wheel useradd -c "Test User" -d /dev/null useradd -c "test user" -m -s /bin/bash test useradd -c "test user" -m -s /bin/fulse test useradd -D - показать значения используемые по умолчанию useradd -m имя пользователя useradd -m -с Ivan Ivanov,,,,iivanov useradd -u 1500 -s tcsh iivanov useradd -G users,cdrecord,dialout iivanov useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 - создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell'а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome useradd user1 - создать пользователя user1 usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 - изменить атрибуты пользователя passwd - задать \ сменить пароль \ текущий пользователь passwd user - установить пароль пользователю user passwd user1 - сменить пароль пользователя user1 (только root) usermod -L test - заблокировать пользователя test usermod -u test - разблокировать пользователя test usermod -d /server1/home/aborg/ -m aborg - перемещает домашний каталог пользователя со всем содержимым. Сначала указывается новый каталог, а затем имя пользователя usermod -s /bin/false foober - можно лишить пользователя доступа к командному процессору и все же лучше всего придерживаться варианта с passwd -l и -u usermod -I aborg anitab - сменить имя usermod -u 1200 anitab - сменить UID id username - посмотреть в каких группах пользователь chsh - пользователь может сменить шелл vigr - открывается редактор vi на файл /etc/group vipw - открывается редактор vi на файл /etc/passwd groupadd group_name - создать новую группу с именем group_name groupdel group_name - удалить группу group_name groupmod -n new_group_name old_group_name - переименовать группу old_group_name в new_group_name userdel aborg - удалить пользователя из всех системных файлов (/etc/passwd, /etc/shadow, /etc/group) userdel -r user1 - удалить пользователя user1 и его домашний каталог userdel -r aborg - удалить пользователя, его почтовый ящик, и дом каталог, из всех системных файлов (/etc/passwd, /etc/shadow, /etc/group) chage -E 2005-12-31 user1 - установить дату окончания действия учётной записи пользователя user1 pwck - проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow grpck - проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group Идентификация - установления подлинности \ предоставление логин\пароль Аутентификация - проверка логина\пароля Авторизация - проверка разрешений на файлы /etc/group - тут настройки групп пользователей /etc/passwd - тут настройки пользователя \ оболочка \ домашняя директория mark:x:1001:1001:mark,,,:/home/mark:/bin/bash [--] - [--] [--] [-----] [--------] [--------] | | | | | | | | | | | | | +-> 7. Login shell | | | | | +----------> 6. Home directory | | | | +--------------------> 5. GECOS | | | +--------------------------> 4. GID | | +-------------------------------> 3. UID | +-----------------------------------> 2. Password +----------------------------------------> 1. Username /etc/shadow - тут хранятся пароли mark:$6$.n.:17736:0:99999:7::: [--] [----] [---] - [---] ---- | | | | | |||+-----------> 9. Неиспользованный | | | | | ||+------------> 8. Срок годности | | | | | |+-------------> 7. Период бездействия | | | | | +--------------> 6. Период предупреждения | | | | +------------------> 5. Максимальный возраст пароля | | | +----------------------> 4. Минимальный возраст пароля | | +--------------------------> 3. Последнее изменение пароля | +---------------------------------> 2. Зашифрованный пароль +----------------------------------------> 1. Имя пользователя Зашифрованный пароль. Пароль использует формату $type$salt$hashed. $type является методом криптографического алгоритма хеширования и может иметь следующие значения: $1$ – MD5 $2a$ – Blowfish $2y$ – Eksblowfish $5$ – SHA-256 $6$ – SHA-512 Если поле пароля содержит звездочку ( *) или восклицательный знак ( !), пользователь не сможет войти в систему с использованием аутентификации по паролю. Другие методы входа, такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены |
Права
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 |
Если UID процесса файла совпадает с UID и GUID файла, то предоставляется доступ по UID файла. Если UID процесса не совпадает с UID но совпадает с GUID, то предоставляется права по GUID файла. Приложение исполняется с правами родительского процесса. 4 = r чтение 2 = w запись 1 = x выполнение chmod 777 test - изменит права на файл chmod 400 test - разрешили чтение владельцу файла chmod 0700 - drwx------ - Владелец может читать, записывать файлы в данный каталог, а также переходить в него. Все остальные пользователи не имеют к нему доступа chmod 0711 - drwx--x--x - Владелец обладает теми же правами. Все остальные могут открывать каталог, но не могут просматривать или изменять файлы в нем chmod go+r - drwxr--r-- - Добавили чтение для группы и остальных chmod 0777 - drwxrwxrwx - Полный доступ chmod a=rwx - drwxrwxrwx - Полный доступ chmod 0000 - Доступ полностью закрыт chmod a-rwx - Доступ полностью закрыт chmod ббб - Открывает права на чтение и изменение файла chmod go-rw - Не позволяет никому, кроме самого владельца, просматривать, вносить изменения или удалять файл chmod 644 - Только владелец может вносить изменения в файл или удалять его, но все могут его просматривать chown vasya /file - назначить пользователя vasya владельцем файла file chown -R vasya directory - рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий chown vasya:group /file - назначить владельца и группу для файла /file Для каталога r - разрешает читать содержимое, w - позволяет переименовывать содержимое, x - доступ к файлам umask 0066 - Создает каталоги с правами доступа drwx--x--x и файлы с правами доступа -rw------- umask 0077 - Создает каталоги с правами доступа drwx------ и файлы с правами доступа -rw------- umask 0022 - Создает каталоги с правами доступа drwxr-xr-x и файлы с правами доступа -rw-r--r-- umask 0777 - Создает каталоги с правами доступа d--------- и файлы с правами доступа ---------- SUID 4 - программа выполняется с правами хозяина ls -l /usr/bin/passwd -rwsr-xr-x 1 root root /usr/bin/passwd SGID 2- программа выполняется с правами группы файла. Для директорий - создаваемые файлы принадлежат группе, которой принадлежит директория Sticky 1 - в директории файл может удалить только его хозяин ls -ld /tmp drwxrwxrwt 9 root root 4096 дек 7 06:50 /tmp chmod 7777 ff1 - повесили все специальные bit SUID,SGID,Sticky и права 777 find /usr/bin -user root -type f -perm -4000 - найти все программы в каталоге /usr/bin использующие SUID bit chgrp - позволяет пользователю сменить группу на файл с условием если он состоит в этой группе |
Загрузка системы и ПО
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 |
0. Power On Self-Test (POST) 1. Master Boot Record (MBR) 2. Boot sector (/dev/hdaX или /dev/sdaX) 3. Загрузчик ОС (grub, lilo, ntloader...) 4. Ядро 5. Процесс init (PID=1) 6. Система инициализации (BSD, System V, Upstart) 7. Стартовые скрипты Ядро пытается загрузить процесс init, для этого: – Проверяет не указана ли опция init, и если указана запускает соответствующую программу – Если такой опции передано не было, то ядро пытается запустить /init – В случае неудачи с /init ядро пытается запустить /sbin/init – При отсутствии /sbin/init делается попытка запустить /etc/init – При отсутствии /etc/init делается попытка запустить /bin/init – Если /bin/init тоже отсутствует ядро пытается запустить /bin/sh – В случае очередной неудачи – выдается “kernel panic” /etc/rc.d - freebsd /etc/init.d - linux runlevel - показать уровень выполнения init 0 - остановка shutdown reboot init 6 - перезагрузка lsmod - показать модули ядра modprobe - управление модулями ядра modinfo apm modprobe -l modprobe apm modprobe -r nls_koi8-r uname - говорит какое ядро uname -r - покажет имя каталога модулей ядра uname -a - полная информация Пример установки нового модуля (например установка стороннего драйвера) uname -r - смотрим имя ядра текущего ls /lib/modules/4.15.0-126-generic/ - смотрим содержимое каталога модулей ядра (сюда обычно копируют новый модуль согласно инструкций) depmod -a - команда сообщит ядру пересмотреть содержимое каталога модулей ядра modprobe name_module - включение модуля ядра |
Сеть
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 |
URL - uniform resurce locator IP - internet protocol DNS - domain name service lo - loop back - закольцовывающий интерфейс 127.0.0.0/8 MTU - MAX TRANSFER UNIT - 1500 - максимальный размер пакета - фрейма ip a s - показать сетевые интерфейсы ifconfig - показать сетевые интерфейсы (отключенные не покажет) ifconfig -a - показать сетевые интерфейсы (отключенные покажет) ifconfig eth0 192.168.1.20 netmask 255.255.255.0 up - задаем IP адрес и маску, включаем интерфейс apt-get remove avahi-daemon - удалить avahi-daemon, это фигня ищет сетевые устройства и пытается их подключить apt-get remove network-manager - удалить network-manager, это фигня выполняет авто конфигурацию сетевых интерфейсов ifconfig eth0 192.168.1.20/24 up - задаем IP адрес и маску, включаем интерфейс netstat -rn - показать таблицу маршрутизации route - показать таблицу маршрутизации route add default gw 192.168.1.1 eth0 - создать маршрут по умолчанию ip route add default 192.168.1.1 eth0 - создать маршрут по умолчанию /etc/resolv.conf - список DNS серверов nameserver 8.8.8.8 man -k resolve host ya.ru ping - работает по протоколу ICMP ping ya.ru ping -c4 ya.ru - послать четыре пакета, для проверки доступности ya.ru ping -f 192.168.0.1 - флудим пакетами для тестирования сети ping -с1 -s1500 192.168.0.1 - посылаем один пакет размером 1500 байт traceroute www.kernel.org - смотрим маршрут до www.kernel.org TTL - TimeToLive, каждый пройденный маршрутизатор/коммутатор уменьшает на единицу TTL HOP - проход одного маршрутизатор/коммутатор, изначально измерялся в секундах traceroute -n www.kernel.org - смотрим маршрут до www.kernel.org, без преобразования имен nmap - сетевой сканер nmap 192.168.0.1 - сканируем хост 192.168.0.1 nmap 192.168.15.0/24 - сканируем сеть 192.168.15.0/24 nmap -O 192.168.0.99 - определяем операционную систему systemd-resolve --status systemd-resolve www.ya.ru /etc/network/interfaces - конфиг сетевых настроек по умолчанию для debian ----------------------- auto eno1 #iface eno1 inet dhcp iface eno1 inet static dns-nameserver 192.168.1.1 dns-nameserver 8.8.8.8 address 192.168.1.20 broadcast 192.168.1.255 netmask 255.255.255.0 gateway 192.168.1.1 ------------------------ dhclient - клиент DHCP dhclient eth0 - используем dhcp клиент на интерфейсе eth0 |
kill, сигналы
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 |
Сигнал может быть послан активному процессу. Сигнал может быть послан и принят от владельца процесса либо от root. Сигнал может быть послан ядром: завершился процесс потомка, сообщает родителю иди хорони аварийное завершение процесса, ошибки программирования Сигнал может быть послан с помощью комбинации клавиш. CTRL+C, CTRL+Z, CTRL+D Сигнал может быть послан kill. kill -l - показать все возможные сигналы 1) SIGHUP - повесить трубку - интерактивный процесс будет завершён, демон перечитает конфиг $$ - PID текущего процесса kill -1 14221 kill -HUP 14222 15) SIGTERM - завершение, многие программы могут его игнорировать(сигнал слабый, все на него чхали), отправляется по умолчанию kill 1444 kill -15 1425 kill -TERM 1426 2) SIGINT - interupt - прерывание процесса kill -2 1425 kill -INT 1426 CTRL+C 3) SIGQUIT - прерывание процесса kill -2 1425 kill -QUIT 1429 CTRL+Break 9) SIGKILL - убивание процесса, уничтожение, не перехватывается, процесс ничего и не узнает что его убили kill -9 12425 kill -KILL 2429 10) SIGUSR1 - сигнал программистов эстетов, вольны сами придумать ему применение в своей программе 12) SIGUSR2 - сигнал программистов эстетов, вольны сами придумать ему применение в своей программе 11) SIGSEGV - процесс влез не в свой участок памяти(партизан), не перехватывается, система даст по голове 19) SIGSTOP - приостановить процесс (job) CTRL+Z 18) SIGCONT - возобновить выполнение процесса (job) fg, bg vim p1 ------------- #!/bin/sh echo $0 # печатаем имя скрипта один раз при запуске while : # для системы двоеточие истина do sleep 1 # полезная работа спать одну секунду done ------------- jobs - покажет все работы fg %1 - запустить первую задачу на переднем плане, интерактивно bg %3 - запустить третью задачу на заднем плане, в фоне & - спец символ при использовании запустит программу в фоне, а также является разделителем команд ./p1 & ./p1 & ./p2 & ./p3 & kill %2 - завершить процесс sleep 5 ; date (sleep 5 date) & date |
Архивы и сжатие файлов
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 |
компрессоры commpessor !!! Всегда при сжатии удаляет исходный файл !!! Программа компрессор умеет сжимать и разжимать файл gzip .gz gunzip bzip2 .bz2 bunzip2 cd - перешли в домашний каталог cp /etc/services . - скопировали себе файл services для опытов gzip -v services - запаковали файл gunzip -v services.gz - распаковали файл ключ -с позволяет перенаправить сжатие\распаковку куда либо gunzip -cv services.gz > zxc1111.txt - распакует и перенаправит вывод в файл zxc1111.txt gunzip -vc services | less - распакует и перенаправит вывод в less gzip -vc services.txt | less - запакует и перенаправит вывод в less bzip2 -v services bunzip2 services.bz2 !!! Архиваторы !!! Архиваторы умеют сжимать файлы! сохраняя структуру каталогов! ar - старый архиватор, практически не используется cpio - есть проблемы с совместимостью от разных производителей дистрибутивов... tar - старый архиватор, используется часто, .tar tar c - create - создать t - test - проверить x - exctract - распаковать v - verbose - показать что делаешь z - gzip - сжать gzip .tar.gz .tgz Z - compress - сжать compress .tar.Z j - bzip2 - сжать bzip2 .tar.bz2 !!! По умолчанию ищет ленто протяжное устройство. /dev/st0 /dev/tape f arhive.tar.bz2 - указываем куда записывать архив Примеры создания архивов с помощью tar !!! Переходим в каталог где будем создавать архив, например в домашний каталог пользователя, командой cd tar [ключи] куда что !!! При создании архива убирается начальный слеш, это хорошо видно при тесте архива tar cvf a.tar /etc - создание архива каталога /etc с именем a.tar в текущем каталоге tar -cvf a.tar /etc - создание архива каталога /etc с именем a.tar в текущем каталоге tar -c -v -f a.tar /etc - создание архива каталога /etc с именем a.tar в текущем каталоге tar -c -v -z -f etc.tar.gz /etc - создать архив -c, -v показывать что делается, -z сжать gzip, -f куда архивировать etc.tar.gz в текущем каталоге, последним параметром указываем что архивировать /etc tar -cvzf etc.tar.gz /etc - создать архив -c, -v показывать что делается, -z сжать gzip, -f куда архивировать etc.tar.gz в текущем каталоге, последним параметром указываем что архивировать /etc tar -cvjf etc.tar.bz2 /etc - создать архив -c, -v показывать что делается, -j сжать bzip2, -f куда архивировать etc.tar.bz2 в текущем каталоге, последним параметром указываем что архивировать /etc tar -cvzf back-etc.tar.gz /etc echo `date +%Y-%m-%d` - показать текущий год-месяц-дату echo `date +%Y-%m-%d-%H-%M` - показать текущий год-месяц-день-время tar -cvzf etc.`date +%Y-%m-%d`.tar.gz /etc tar -cvzf etc.`date +%Y-%m-%d-%H-%M`.tar.gz /etc Проверка архива а также поиск нужных файлов в архиве tar -tf etc.tar.bz2 tar -tf etc.tar.gz | grep services - ищем нужный файл services tar -tf back-etc.tar.gz | grep interfaces - ищем нужный файл interfaces Примеры распаковки !!! Переходим в каталог где будем разворачивать архив, например в домашний каталог пользователя, командой cd tar -xf etc.tar.bz2 etc/services - достать из архива etc.tar.bz2 один файл services (при тестировании мы точно узнали имя файла и его путь), будет создан каталог etc файлом services в текущем каталоге tar -xf back-etc.tar.gz etc/network/interfaces - достать из архива файл interfaces tar -xf back-etc.tar.gz -распаковать файл back-etc.tar.gz в текущем каталоге, будет создан каталог etc в текущем каталоге |
Управление пакетами:
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 |
apt apt-get apt-cache aptitude dpkg apt-get update - скачивание списка пакетов apt-get upgrade - обновление всех пакетов apt-get install name_package - установка пакета apt-get remove name_package - удаление пакета, конфиг остается apt-get purge name_packege - удаление пакета месте с конфигом apt-get autoremove - удаление не нужных пакетов \ apt-cache search name_packege - поиск пакета apt-get install w3m - установить консольный браузер w3m apt-get install lynx - установить консольный браузер lynx apt-get install links - установить консольный браузер links dpkg -l - покажет все установленные пакеты dpkg -l name_package - покажет информацию о пакете dpkg -l links - покажет информацию о пакете links dpkg -l wget - покажет информацию о пакете wget dpkg -l dovecot* - покажет информацию о пакетах с именем dovecot* dpkg -l dovecot* | grep ^ii - покажет информацию о пакетах с именем dovecot*, отфильтруем строки начинающиеся на ii dpkg -S /etc/apparmor - узнать какому пакету принадлежит каталог /etc/apparmor dpkg -S /etc/apparmor/subdomain.conf - узнать какому пакету принадлежит файл /etc/apparmor/subdomain.conf apt-get -y remove w3m lynx links - ничего не спрашивать (-y) удалить пакеты w3m, lin xи links /var/cache/apt/archives/ - каталог по умолчанию для скаченных пакетов apt-get clean - производит очистку каталога /var/cache/apt/archives/ |
Установка/сборка пакетов из исходников
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 |
!!! apt install gcc make- установим пакет для сборки пакетов !!! 0. В первую очередь после загрузки тарбола нужно прочитать два файла README И INSTALL !!! 1. Во вторую очередь запустить ./configure --help и посмотреть опции подготовки пакета к сборке !!! 2. Установка пакета происходит в три команды: ./configure --параметры, make, make install !!! Пример установки программы links из исходников обычному пользователю http://links.twibright.com - сайт разработчика links wget http://links.twibright.com/download/links-2.21.tar.gz - скачиваем дистрибутив tar xf links-2.21.tar.gz cd links-2.21/ less README - читаем в первую очередь less INSTALL - читаем про установку !!! Не стоит устанавливать программы из исходников в каталоги по /bin, /usr/bin, и т.д., нужно задать prefix установки или использовать по умолчанию /urs/local. !!! Пакетный менеджер может сильно удивится, от разности версий файлов, и может привести к различным проблемам. ./configure --help - запускаем что бы посмотреть помощь по сборке пакета --prefix=PREFIX - позволяет указать каталог установки пакета ./configure --prefix=~ - подготавливаем пакет к сборке, указываем что ставить будем в домашний каталог пользователя --prefix=~ make - производим сборку программы make install - производим установку программы ~/bin/links - проверяем работу программы в домашнем каталоге пользователя !!! Программа make не будет производить сборку где уже производилась сборка !!! нужно находится в каталоге скаченного тарбола make clean - очищает сборку, конфиг не трогает make distclean - очищает сборку полностью, каталог тарбола будет как будто мы его только что распаковали !!! нужно находится в каталоге скаченного тарбола make uninstall - удаление программы |