
1_Unix_komandy_skripty.pptx
- Количество слайдов: 34
ПРИЛОЖЕНИЯ UNIX СИСТЕМ
UNIX – это семейство многопользовательских, многозадачных ОС. Компьютер, работающий под управлением UNIX, может решать одновременно несколько задач, которые принадлежат разным пользователям. Управление этими задачами производится с различных терминалов, присоединенных к UNIX – серверу. Перед началом работы с ОС необходимо произвести процедуру присоединения к серверу, при которой пользователь должен указать имя машины и пользовательский пароль. UNIX относится к сетевым операционным системам.
Сетевые операционные системы - системные программные средства, управляющие процессами в компьютерных сетях, объединенные общей архитектурой, определенными коммуникационными протоколами и механизмами взаимодействия вычислительных процессов. Предназначены для эффективного решения задач распределенной обработки данных, т. е. обработки данных на нескольких компьютерах, объединенных сетью (локальной или глобальной). Требования к СОС: 1) единая системная архитектура; 2) обеспечение требуемого высокого уровня прозрачности; 3) высокоуровневая и высоконадежная файловая система.
Единая системная архитектура. Понятие "системная архитектура" охватывает следующие вопросы: – распределение функций между узлами сети; – принципы построения коммуникационных протоколов; – методы выполнения отдаленных операций типа "клиент–сервер"; – структуру сетевой файловой системы; – уровни прозрачности доступа к сети; – принципы защиты данных; – свойства общесетевого адресного пространства. Файловая система определяет производительность и надежность всей системы в целом.
ФАЙЛОВАЯ СИСТЕМА И ОСНОВНЫЕ КОМАНДЫ LINUX
ФАЙЛОВАЯ СИСТЕМА Файловая система (ФС) — это часть ОС, включающая: - совокупность всех файлов на диске; - наборы структур данных, используемых для управления файлами; - комплекс системных программных средств, реализующих операции над файлами (создание, уничтожение, чтение, запись, именование и поиск файлов). Файл — это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные.
Структура ФС организована на физическом и логическом уровнях. q Физический уровень задаёт машинное представление информации на носителях (в основе – inode (индексный дескриптор)); q Логический уровень описывает форму, в которой ФС доступна прикладным программам и пользователям (иерархическая структура в виде дерева каталогов, символьные имена файлов, команды работы с файлами).
Иерархия каталогов в Linux / - Корневой каталог bin - Файлы основных команд (утилит) boot - Файлы загрузки системы dev - Файлы устройств etc - Файлы конфигурации системы home - Домашние каталоги пользователей lib - Основные разделяемые библиотеки mnt - Точка монтирования для временно подключаемых файловых систем root - Домашний каталог суперпользователя opt - Дополнительные пакеты ПО sbin - Основные системные исполняемые файлы tmp - Временные файлы usr - Все установленные пакеты программ, справочная документация var - Переменные данные (журналы ОС, кэш-файлы)
Типы файлов Linux • Обычный файл (-): Блок информации, текст, программа; • Каталог (d): информация о других файлах и каталогах; • Специальный файл устройства (b, c): Обеспечивает доступ к физическому устройству. Реализует программный обмен информацией с устройствами; Именованный канал (FIFO): Системная структура для обмена данными между процессами; Символическая ссылка (l): Указатель на файл. Сокет: Системная структура для сетевого или межпроцессного взаимодействия. • • •
Права доступа к файлу Три базовых класса доступа к файлу: • User access (u) -для владельца-пользователя; • Group access (g)-для членов группы, являющейся владельцем файла; • Other access (о) -для остальных пользователей (кроме root). Три типа прав доступа для каждого класса: ü на чтение (read - r); ü на запись (write - w); ü на выполнение (execute - х). Операции изменения прав: '+' — добавить право, '-' — удалить, '=' — присвоить. Символ «-» - права нет, «r, w, x» - право есть.
Команды работы с файлами $ команда_-ключи_параметры Ключи – символы, уточняющие значение команды. Параметры – имена файлов. man команда Вывести на экран справку ОС UNIX по команде и её ключам. ls -ключи имя Просмотр содержимого каталога (списка файлов). ls –l /usr/sbin – получить подробную информацию о содержимом каталога /usr/sbin с атрибутами файлов; ls –l *. c – получить сведения о файлах текущего каталога, имена которых заканчиваются на «. с» .
Атрибуты файлов: тип файла (каталог, обычный, ссылка и т. д. ); режим доступа (); число жёстких ссылок (дополнительных имён); «владелец» файла; группа-владелец» ; размер файла в байтах; дата и время создания или последней модификации; имя файла.
cd каталог Смену текущего каталога на указанный. cd /usr/sbin – перейти в каталог /usr/sbin; cd. . – перейти в каталог выше; cd text – перейти в каталог text, расположенный в текущем каталоге. cd ~ - перейти в свой домашний каталог. mkdir каталог Создание каталога с указанным именем. mkdir test mkdir /home/john/programs pwd Выдает полное имя текущего каталога. rmdir каталог Удаление указанного каталога.
touch файл Создать файл с указанным именем (1 -й способ). touch а 1 – создать пустой файл а 1. cat файл Выдает содержимое указанного файла на экран. cat a 1 – посмотреть содержимое файла а 1. cat_> файл – 2 -й способ создания файла. (CTRL+c (z) – прекращение работы с командой. ) head, tail –n файл Посмотреть только первые n строк (head) или последние n строк (tail) файла. cp файл(ы) куда Копирование файла в указанный файл или каталог. cp ~/а 1 а 2– копирование файла а 1 в файл а 2; cp а 1 /home/john/D 1 – файла а 1, в указанный каталог D 1.
mv файл(ы) куда Переименование или перемещение файлов. mv a 1 a 2 – переименовать файл а 1 в а 2. mv a 1 ~/D 1 – переместить а 1 в каталог D 1 rm файл(ы) Удаление указанного файла или группы файлов, заданных шаблоном имени. rm а 1– удаление файла а 1; rm -r * - удаление всех файлов текущего каталога. ln файл имя ссылки Создание жёсткой ссылки на указанный файл с указанным именем. ln а 1 D 1/D 2/a 1_h – создать жёсткую ссылку с именем a 1_h в каталоге D 2 на файл а 1. ln –s файл имя ссылки Создание символической ссылки.
vi файл Редактирование файла. (если указанный файл существует, он будет открыт в редакторе, иначе редактор создаст новый файл с заданным именем) Клавиша i – режим редактирования; ESC – выход из режима редактирования; : w – сохранение текущего файла; : w file – сохранение файла под именем file; : wq - сохранение файла и выход из vi; : r file - вставить в текущий файл содержимое файла file.
chmod mode file Изменяет права доступа к файлу chmod g-wx а 1 – у группы забрать права на запись и исполнение файла а 1. chmod a+w а 1 – всем добавить право на запись chmod go=r а 1 – для файла а 1 присвоить права только для группы и остальных на чтение. chmod 777 а 1 – у всех все права. grep образец файл Поиск образца в строках текста файла. grep 3 * - найти 3 в строках всех файлов текущего каталога. grep vova a 1 – показать строки файла а 1 с «vova» .
cut –fn -d<разделитель> файл Вывести содержимое n-го столбца файла с указанным разделителем. cut –f 2 -d” ” а 1 – вырезать 2 -й столбец файла а 1, отделённый пробелом. sort файл Сортирует строки файла (по алфавиту). -r -сортирует в обратном порядке; -o файл - сохраняет результат сортировки в выходном файле; -u -выводит повторяющие строки только один раз; -n -сортирует по числовому коду символа; -kn -по указанному номеру поля (столбцу). sort -r a 1 –o a 2 – отсортировать файл а 1 в обратном порядке, результат вывести в файл а 2.
find имя Поиск файла (каталога) в файловой системе. wc -ключ [файл] Подсчет символов, строк и слов. -l – количество строк, -w – количество слов, -с – количество символов. wc –l /etc/passwd – вывести число строк в файле /etc/passwd (число зарегистрированных в системе пользователей). еcho параметры Выдает на экран свои параметры. еcho Hello – выдать на экран «Hello» .
Перенаправление стандартного вывода Используется знак >: cat a 1 - вывод на экран; cat a 1 > a 2 - вывод в файл a 2; cat a 1 >> a 2 - добавить в конец файла a 2 содержимое файла а 1. Перенаправление стандартного ввода Используется знак <: mail - ввод сообщения с экрана; mail < mes - ввод сообщения из файла mes. Соединение команд конвеером (pipe) Обозначается знаком |. Результат выполнения одной команды переходит на выполнение другой команды.
who | wc -l - подсчет числа активных пользователей; ls -l /tmp | grep maryann | sort –u | lpr листинг поиск записей сортировка печать Стандартный поток ошибок Сообщения об ошибках, возникающих при выполнении команд, выводятся на экран. Поток ошибок обозначается 2. Его можно перенаправить в какой-либо файл. grep 3 * 2> ~/error – сообщения о том, что в каких-то файлах не найдены строки с 3, отправлены в файл error домашнего каталога. ls –l D 1 2>error.
Командный интерпретатор SHELL Shell (oболочка) в Linux - это программа, воспринимающая ввод команд от пользователя и выполняющая их. Cкрипт - программа на языке shell (script) (исполняемый файл, содержащий команды). Создание скрипта: 1) cat > имя_скрипта 2) vi имя_скрипта Созданный скрипт должен иметь право на исполнение: chmod a+x имя_скрипта Запуск скрипта: 1) sh имя_скрипта 2). /имя_скрипта
Средства группировки команд: ; - последовательное выполнение команд; & - фоновое выполнение предыдущей команды; && - выполнение последующей команды при условии нормального завершения предыдущей; || - выполнение последующей команды при ненормальном завершении предыдущей. Для группировки команд также могут использоваться фигурные "{}" и круглые "()" скобки. k 1 && k 2; k 3 команда "k 2" будет выполнена только при успешном завершении "k 1"; "k 3” - в любом случае. {k 1; k 2} & В фоновом режиме будет выполняться последовательность команд "k 1" и "k 2".
Shell-переменная. Имя shell-переменной - это начинающаяся с буквы последовательность букв, цифр и подчеркиваний. Значение shell-переменной - строка символов. Для присваивания значений переменным может использоваться оператор присваивания "=". При обращении значению shell-переменной необходимо перед именем ставить символ "$". Например: var 2=13 echo $var 2 выдаст на экран 13, echo var 2 выдаст на экран var 2.
Позиционные параметры и специальные переменные. В скрипт могут быть переданы параметры. Используются позиционные параметры (существенна очередность их следования). Интерпретатор shell автоматически присваивает значения следующим переменным (параметрам): $0 – имя скрипта; $1. . $9 – позиционные параметры; $? - Результат предыдущей команды (0 -успешно, 1 -нет); $$ - номер процесса; $! - номер фонового процесса; $# - число позиционных параметров в скрипте; $* - перечень параметров, как одна строка; $@ - перечень параметров, как совокупность слов.
Пример: vi script_1 ls –l $1 | wc –l; echo $2 | wc –w chmod a+x script_1 sh script_1 D 1 a 1 Скрипт подсчитывает число файлов в каталоге, указанном в параметре $1 и число слов в файле, указанном в параметре $2. Значение параметров $1 и $2 задаются при запуске скрипта через пробел.
Условный оператор "if" Оператор "if" имеет структуру if [ условие ] then список [elif условие then список] else список fi Условия записываются в форме ключей -gt (>), -lt (<), -le (<=), -ge (>=), -eq (=), -ne (не равно). Пример: if [ $1 –ne $2 ] then cat a 1 else echo a 1 fi
Оператор выбора "case" имеет структуру: case переменная in шаблон) список команд; ; . . . esac Пример: case $i in 1) sort a 1; ; 2) sort –r a 1; ; *) cat a 1; ; esac При запуске sh script 1 выполняется сортировка а 1, при - sh script 2 - сортировка а 1 в обратном порядке, при - sh script 3 – вывод содержимого а 1.
Оператор цикла с перечислением "for" имеет структуру: for переменная [in список значений] do список команд done Пример: for i in * do cat $i done -вывести все файлы текущего каталога
Оператор цикла с истинным условием. Оператор цикла "while" имеет структуру: while [ условие ] do список команд done - Список команд в теле цикла (между "do" и "done") повторяется до тех пор, пока сохраняется истинность условия. - При первом входе в цикл условие должно выполняться. - Начальное истинное значение задаётся перед циклом.
Оператор цикла с ложным условием. Оператор цикла "until" имеет структуру: until [ условие ] do список команд done - Список команд в теле цикла (между "do" и "done") повторяется до тех пор, пока сохраняется ложность условия. - При первом входе в цикл условие не должно выполняться. - Начальное значение условия задаётся перед циклом.
Пример 1: x=0 while [ $x –lt 5 ] do cat a 1 x=`expr $x + 1` done Выводится содержимое файла а 1 на экран 5 раз. Пример 2: x=0 until [ $x –eq 1 ] do cat a 1 echo ‘show again? ’ read x done Пока x не равен 1, на экране – содержимое а 1. Значение х задаётся с клавиатуры.
Функция в shell. Функция позволяет подготовить список команд для последующего выполнения. Описание функции имеет вид: имя() { список команд } имя - Функция используется для выполнения действия рекурсивно.
Пример: fn() { for i in * do if [ -d $i ] then cd $i; fn; cd. . else grep 3 $i && echo $i fi done } fn Рекурсивный поиск (в каталоге и подкаталогах) файлов, содержащих строки с цифрой 3.