Разделы презентаций


Занятие 09 МДК.02.01 Программное обеспечение компьютерных сетей 3-курс

Содержание

Взаимодействие пользователя с операционной системой: командные интерпретаторы

Слайды и текст этой презентации

Слайд 1Занятие 09
МДК.02.01 Программное обеспечение компьютерных сетей 3-курс

Занятие 09МДК.02.01 Программное обеспечение компьютерных сетей 3-курс

Слайд 2 Взаимодействие пользователя с операционной системой: командные интерпретаторы

Взаимодействие пользователя с операционной системой: командные интерпретаторы

Слайд 3Взаимодействие пользователя с операционной системой: командные интерпретаторы
Система UNIX, как и

любая другая развитая современная опе­рационная система, имеет огромное количество команд.
Они

позво­ляют осуществлять множество операций с объектами системы, такими как пользователи, файлы, устройства, управлять их поведением и настраивать систему по своему усмотрению (в определенных пределах).
Ранее мы уже использова­ли многие команды UNIX, предполагая, что все они вводятся из так называемой командной строки.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Система UNIX, как и любая другая развитая современная опе­рационная система,

Слайд 4Взаимодействие пользователя с операционной системой: командные интерпретаторы
Интуитивно этот

процесс понятен: из приглашения командной строки вводится команда и

на экране консоли отображается или не отображается результат ее выполнения.
С их помощью можно выполнять большинство действий по настройке, диагностированию и управлению систе­мой.
Команды операционной системы являются "кирпичиками", из которых строятся любые, часто очень сложные и изощренные программы.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Интуитивно  этот  процесс  понятен: из приглашения командной

Слайд 5Взаимодействие пользователя с операционной системой: командные интерпретаторы
Далее мы рассмотрим более

подробно, как выполняются команды операционной системы и как на их

основе создавать программы, которые чаще всего называются командными файла­ми или командными сценариями.
Если провести аналогию с операционной системой MS-DOS, то командные файлы там имеют расширение bat и состоят из команд, интерпретируемых ко­мандным процессором command.com определенным образом.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Далее мы рассмотрим более подробно, как выполняются команды операционной системы

Слайд 6Взаимодействие пользователя с операционной системой: командные интерпретаторы
Команды UNIX не выполняются

сами по себе, а только в кон­тексте определенной

командной оболочки, которую называют интерпретатором команд.
Интерпретатор команд проверяет и анализирует введенные команды и их аргументы, анализирует их синтаксис, корректность введенных ключей и т. д.
После ус­пешного завершения проверки интерпретатор запускает соответ­ствующую программу, т. е. создает в UNIX процесс и передает ему управление.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Команды UNIX не выполняются сами по себе, а только в

Слайд 7Взаимодействие пользователя с операционной системой: командные интерпретаторы
Командные интерпретаторы имеют общее

название shell.
Поми­мо исполнения команд, интерпретатор shell выполняет и другие

операции:
• конвейеризацию команд;
• переназначение ввода/вывода;
• генерацию имен файлов;
• контроль среды окружения.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Командные интерпретаторы имеют общее название shell. Поми­мо исполнения команд, интерпретатор

Слайд 8Взаимодействие пользователя с операционной системой: командные интерпретаторы
Значение интерпретатора для пользователей

UNIX трудно переоценить.
Командный интерпретатор позволяет выполнять не только

отдельные команды, но и решать намного более слож­ные задачи, которые реализуются на основе командных фай­лов.
В дальнейшем выражения "командный файл", "командный скрипт" и "командный сценарий" будут использоваться как си­нонимы и обозначать исполняемый файл, состоящий из ко­манд в виде текстовых строк.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Значение интерпретатора для пользователей  UNIX трудно переоценить. Командный интерпретатор

Слайд 9Взаимодействие пользователя с операционной системой: командные интерпретаторы
В настоящее время наиболее

часто используются четыре основ­ные разновидности shell:
• Bourne shell

(sh) — является оригинальным командным ин­терпретатором и включается во все без исключения дистрибу­тивы операционной системы UNIX;
• С shell (csh) — разработан в Калифорнийском университете (г. Беркли). Особенностью этого интерпретатора является возможность интерактивной обработки shell-окружения;
• Korn shell (ksh) — разработан Дэвидом Корном и включает целый ряд дополнительных возможностей по сравнению с Bourne shell;
Взаимодействие пользователя с операционной системой: командные интерпретаторы В настоящее время наиболее часто используются четыре основ­ные разновидности shell:

Слайд 10Взаимодействие пользователя с операционной системой: командные интерпретаторы
• Bourne Again

shell (bash) — разработан Фондом свободно рас­пространяемых программных продуктов (Free

Software Foun­dation) аккумулирует в себе возможности оболочек С shell и Korn shell, что обусловило его широкую популярность среди системных администраторов.
Он является наиболее продви­нутым интерпретатором по сравнению с остальными и слу­жит очень мощным инструментом программирования задач системного администрирования.
В этом разделе мы будем под­робно рассматривать именно возможности bash, хотя боль­шинство командных файлов без каких-либо изменений будут работать и в других оболочках.
Взаимодействие пользователя с операционной системой: командные интерпретаторы •  Bourne Again shell (bash) — разработан Фондом свободно

Слайд 11Взаимодействие пользователя с операционной системой: командные интерпретаторы
Наряду с термином "ин­терпретатор"

мы будем использовать другое определение — "командная оболочка".
Оба эти

выражения являются синонимами и употребляются в одина­ковом контексте.
Одна и та же операционная система позволяет работать сразу с несколькими командными оболочками и переходить от одной командной оболочки к другой.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Наряду с термином

Слайд 12Взаимодействие пользователя с операционной системой: командные интерпретаторы
Возможна и одновременная ра­бота

пользователя в нескольких экранах со своими командными оболочками.
Любой

пользователь, работающий в операционной системе UNIX, оперирует командами того интерпретатора, который для него установлен либо в файлах инициализации, или по умолча­нию в файле /etc/passwd.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Возможна и одновременная ра­бота пользователя в нескольких экранах со своими

Слайд 14Взаимодействие пользователя с операционной системой: командные интерпретаторы
Как видно из рисунка,

для пользователя user1 при входе в сис­тему по

умолчанию будет определен интерпретатор bash, в то время как для пользователя user2 интерпретатором по умолча­нию будет ksh.
Если нужно изменить тип командного интерпре­татора, то следует модифицировать соответствующим образом файлы инициализации пользователей user1 и user2.
В практическом аспекте командный интерпретатор shell является языком программирования очень высокого уровня.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Как видно из рисунка, для пользователя user1 при входе в

Слайд 15Взаимодействие пользователя с операционной системой: командные интерпретаторы
Работу с командным интерпретатором

можно начинать после входа пользо­вателя в систему,

при этом оболочка отображает приглашение (prompt) к вводу команды в виде одного из символов:
$,
#,
>
или др., за которым обычно следует пробел.
Команды пользователя вводятся сразу же после этого пробела.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Работу с командным интерпретатором можно начинать после входа пользо­вателя

Слайд 16Взаимодействие пользователя с операционной системой: командные интерпретаторы
Анализ особенностей командного интерпретатора

проведем на примерах, разработанных в командном интерпретаторе bash.
Ис­ходные тексты

командных файлов, представленных здесь, легко адаптируются для работы в любой из версий UNIX.
Взаимодействие пользователя с операционной системой: командные интерпретаторы Анализ особенностей командного интерпретатора проведем на примерах, разработанных в командном

Слайд 17Элементы языка shell

Элементы языка shell

Слайд 18Элементы языка shell
Как и любой язык высокого уровня, командный

интерпретатор shell имеет определенный синтаксис.
В

состав языка входит целый ряд операторов и символов, имеющих специальное зна­чение.
В следующей таблице приводится полный перечень всех специальных сим­волов, используемых в командных интерпретаторах.
Элементы языка shell  Как и любой язык высокого уровня, командный интерпретатор shell  имеет  определенный

Слайд 21Элементы языка shell
Рассмотрим использование специальных символов на практиче­ских

примерах.
Следующая командная строка демонстрирует

использование точки с запятой:
# who;ls -l
root :0 Sep 29 09:32
root pts/0 Sep 29 09:57 (:0.0)
total 34
drwxr-xr-x 8 root root 4096 Oct 11 23:43 tmp
-rw-r—r— 1 root root 20633 Sep 3 12:50 in­stall. log
Элементы языка shell  Рассмотрим использование специальных символов на практиче­ских  примерах.  Следующая  командная

Слайд 22Элементы языка shell
-rw-r—r— 1 root root 20633 Sep 3

12:50 in­stall .log.syslog
-rw-r—r— 1 root root 141 Sep 2

14:13 textfile

В этом примере последовательно выполняются две команды — who и ls –l.
Первая команда отображает на экране пользователей, работающих в системе.
Вторая команда отображает список файлов и ката­логов.
Элементы языка shell  -rw-r—r— 1 root root 20633 Sep 3 12:50 in­stall .log.syslog -rw-r—r— 1 root

Слайд 23Элементы языка shell
Последовательность символов && (двойной

амперсанд) читает код завершения первой команды, и

если он равен 0 (успешное завершение), то будет выполнена вторая команда.
Например:
# test -d ./tmp && echo tmp is a directory
tmp is a directory
При этом сообщение выводится только в том случае, если объ­ект файловой системы /tmp является каталогом (в данном случае это так).
Элементы языка shell  Последовательность  символов  &&  (двойной  амперсанд)  читает  код

Слайд 24Элементы языка shell
Если изменить условие и выполнить проверку объекта

tmp как файла, то команда и результат будут другими:
#

test -f ./tmp && echo tmp is a directory
Никакого вывода на экран консоли в этом случае мы не полу­чим.
Это происходит потому что результатом выполнения команды test является число, отличное от нуля.
Так как /tmp не является файлом.
Элементы языка shell  Если изменить условие и выполнить проверку объекта tmp как файла, то команда и

Слайд 25Элементы языка shell
Если в командной строке набрать команду test

с опцией –е (выполняет проверку на существование файла):
# test -e

install.log && echo File install.log exists
File install.log exists

Так как было выведено сообщение:
File install.log exists (файл install.log существует)
то это означает, что после выполнения проверки оказалось, что файл install.log действительно существует в текущем каталоге.
Элементы языка shell  Если в командной строке набрать команду test с опцией –е (выполняет проверку на

Слайд 26Элементы языка shell
Следующая команда выводит на экран содержимое файла

textfile только в том случае, если этот файл имеет установленный

атри­бут для чтения:
# test -r textfile && cat textfile

Если атрибут для чтения действительно установлен, то на экран выводится содержимое файла textfile.
Если атрибут для чтения не установлен, то на экран ничего не выводится.

Элементы языка shell  Следующая команда выводит на экран содержимое файла textfile только в том случае, если

Слайд 27Элементы языка shell
Результат, противоположный тому, который получается при ис­пользовании

&&, дает оператор ||.
Если из двух команд, разде­ленных этим

оператором, первая команда завершается с ненуле­вым результатом (т. е. неудачно), то выполняется вторая команда.
Успешно выполненная первая команды (с нулевым кодом завершения) запретит выполнение второй. Например:
# test -f /.tmp || echo tmp is a directory
Здесь на экран консоли будет выведена строка
tmp is a directory
Элементы языка shell  Результат, противоположный тому, который получается при ис­пользовании &&, дает оператор ||. Если из

Слайд 28Элементы языка shell
Аналогично, команда
# test -х textfile ||cat

textfile

отображает содержимое файла textfile, поскольку для этого файла не

установлен атрибут исполнения (смотри предыдущий пример, где для этого файла установлен атрибут чтения).
Следовательно, результат выполнения команды test -x будет ненулевым.
Далее на экране появится содержимое файла textfile.

Элементы языка shell  Аналогично, команда # test -х textfile ||cat textfile отображает содержимое файла textfile, поскольку

Слайд 29Элементы языка shell
Комбинация операторов && и || позволяет создавать

довольно замысловатые алгоритмы обработки, например:
# test -e textfile &&

test -r textfile && cat textfile

Эта команда выводит на экран содержимое файла textfile (то есть выполняется команда cat textfile) только при одновременном выполнении двух условий:
• файл существует (test -e);
• файл имеет доступ по чтению (test -r).
Элементы языка shell  Комбинация операторов && и || позволяет создавать довольно замысловатые алгоритмы обработки, например: #

Слайд 30Элементы языка shell
Альтернативой приведенной может служить команда:
# test

-e textfile && test -x textfile || cat textfile

Поскольку

команда test -e завершается успешно, то будет вы­полнена следующая за ней команда test -x, которая завершает­ся с ненулевым кодом (так как у файла существует атрибут для чтения, а не на выполнение).
Результат с ненулевым кодом разрешает выполнение команде cat textfile.
Далее на экране появится содержимое файла textfile.

Элементы языка shell  Альтернативой приведенной может служить команда: # test -e textfile && test -x textfile

Слайд 31Элементы языка shell
Следующая командная строка ничего на экран не

выводит:
# test -e textfile && test -x textfile &&

cat textfile

В этой цепочке вторая команда test -x завершится неудачно.
Это не позволяя выполниться команде cat textfile.
Создавая такие программные конструкции, следует помнить, что конечный результат зависит от результатов выполнения каждой из команд такой цепочки.
Элементы языка shell  Следующая командная строка ничего на экран не выводит: # test -e textfile &&

Слайд 32Элементы языка shell
Если команда должна выполняться как фоновый процесс,

то в ее конце нужно указать символ амперсанда &.
Обычно

запуск в фоновом режиме нужен для того, чтобы освободить консоль для запуска других программ, особенно если запускаемая программа выполняется достаточно длительное время.
Выполнение команды в фоновом режиме сопровождается выво­дом на экран идентификатора (PID) процесса, соответствующего выполняемой команде, при этом система, запустив фоновый процесс, вновь выходит на диалог с пользователем.
Элементы языка shell  Если команда должна выполняться как фоновый процесс, то в ее конце нужно указать

Слайд 33Допускается запускать в фоновом режиме несколько

команд, разделенных точкой с запятой.
Например:
#

who;ls -l;pwd&
root :0 Jan 17 09:32
root pts/0 Jan 17 09:57 (:0.0)
[1]+ Done
total 56
-rw-r--r-- 1 root root 1544 Dec 1 12:54 install.log
-rw-r--r-- 1 root root 479 Jan 17 09:40 textfile
[1] 5211
После выполнения указанной цепочки команд в системе будет работать фоновый процесс с идентификатором 5211.
Допускается запускать  в  фоновом  режиме  несколько  команд,  разделенных  точкой с

Слайд 34Элементы языка shell
Очень мощным средством командного интерпретатора shell яв­ляется

переназначение ввода/вывода, расширяющее возможно­сти стандартного ввода/вывода.
Стандартный ввод

обозначается в операционной системе UNIX как stdin (standard input) и осуществляет операцию ввода данных с клавиатуры терминала, а стандартный вывод stdout (standard output) выполняет вывод данных на экран терминала.
Кроме то­го, диагностические сообщения и сообщения об ошибках на­правляются в стандартное устройство ошибок, обозначаемое как stderr (standard error).
Элементы языка shell  Очень мощным средством командного интерпретатора shell яв­ляется переназначение  ввода/вывода,  расширяющее возможно­сти

Слайд 35Элементы языка shell
Операционная система UNIX обладает механизмами, позволяющими перенаправить

результаты работы любой команды, предназначенные для стандартного ввода/вывода, на другое

уст­ройство или в файл.
Вначале рассмотрим операцию переназначения вывода.
Поскольку любые устройства операционной системы UNIX являются фай­лами, то принято говорить о переназначении вывода в файл, для чего служит оператор >.
Элементы языка shell  Операционная система UNIX обладает механизмами, позволяющими перенаправить результаты работы любой команды, предназначенные для

Слайд 36Элементы языка shell
Если, например, нужно записать содержимое текущего каталога

в файл с именем list_dir, то следует ввести команду
#

ls -l > list_dir
выполняющую два действия:
• создание, если не существует, и открытие файла с именем list_dir в текущем каталоге процесса;
• запись выводимых командой ls данных в файл list_dir, при этом предыдущее содержимое файла (если он был непустой) затирается.
После выполнения команды файл list_dir будет содержать спи­сок файлов и каталогов, находящихся в текущем каталоге.
Элементы языка shell  Если, например, нужно записать содержимое текущего каталога в файл с именем list_dir, то

Слайд 37Элементы языка shell
Переназначение вывода используется очень часто.
Вот несколь­ко

типичных примеров применения этой операции:
• запись текстовых строк

в файл;
• операции архивирования данных.
Для записи текста в файл используется команда echo, например:
# echo String to be written in file > textfile
При использовании >, файл будет перезаписан.
Элементы языка shell  Переназначение вывода используется очень часто. Вот несколь­ко типичных примеров применения этой операции: •

Слайд 38Элементы языка shell
Пример создания архива:
# find tmp -print

| cpio -ovB > tmp_arch
Здесь команда find передает по

программному каналу данные программе cpio, которая записывает их в архивный файл tmp_arch, используя переназначение вывода.
Еще один пример переназначения стандартного вывода:
# cpio -it -I tmp_arch > list_arch
Здесь команда cpio записывает список файлов, содержащихся в архиве tmp_arch, в файл list_arch.
Элементы языка shell  Пример создания архива: # find tmp -print | cpio -ovB > tmp_arch Здесь

Слайд 39Элементы языка shell
К операторам переназначения вывода

относится и >>, как и

оператор >, он используется для добавления данных в уже сущест­вующий файл.
При этом информация записывается в конец файла, не затирая предыдущую информацию.
С помощью этого оператора можно добавить в файл textfile, соз­данный в одном из предыдущих примеров командой echo, сле­дующую строку:
# echo String to be added to the file >> textfile
Оператор переназначения >> можно использовать и как замену >.
Элементы языка shell  К  операторам  переназначения  вывода  относится  и  >>,

Слайд 40Элементы языка shell
Вывод на стандартное устройство ошибок также можно

переназначить, но при этом следует использовать выражение 2>.
Рас­смотрим пример. Попытаемся

выполнить команду ls с несуществующей опцией -у, перенаправив при этом вывод в файл ls.LOG:
# ls -у 2> ls.LOG
После выполнения команды файл ls.LOG может содержать примерно следующее:
# cat ls.LOG
Is: invalid option -- у
Try `ls --help` for more information.
Элементы языка shell  Вывод на стандартное устройство ошибок также можно переназначить, но при этом следует использовать

Слайд 41Элементы языка shell
Нужно всегда помнить, что если файл, в

который переназнача­ется вывод, уже существует, то его предыдущее содержимое те­ряется.


Если нужно сохранить содержимое файла, лучше ис­пользовать оператор >>.
Программы, использующие для получения данных стандартный ввод, могут принимать их из файла через оператор переназначения ввода <.
Например, для подсчета количества строк, слов и символов в файле textfile можно применить команду:
# wc < textfile
Элементы языка shell  Нужно всегда помнить, что если файл, в который переназнача­ется вывод, уже существует, то

Слайд 42Элементы языка shell
Операция переназначения ввода используется и в более

слож­ных операциях, например, разархивирования данных:
# cpio -ivB < tmp_arch


Здесь команда cpio получает ввод из файла архива, созданного в одном из предыдущих примеров командой find, восстанавливая полный путь к файлу в процессе разархивирования.



Элементы языка shell  Операция переназначения ввода используется и в более слож­ных операциях, например, разархивирования данных: #

Слайд 43Элементы языка shell
Ввод и вывод одной и той же

команды могут быть переназначе­ны одновременно, как в этом примере:
#

echo String > output
# cat < output > input
Команда echo записывает текстовую строку в файл output.
В сле­дующей строке команда cat получает данные из файла output и записывает их в файл input.
После выполнения этих двух команд файл input будет содержать строку String.


Элементы языка shell  Ввод и вывод одной и той же команды могут быть переназначе­ны одновременно, как

Слайд 44Список литературы:
Unix и Linux: руководство системного администратора, 4-е издание, 2012,

Э. Немет, Г. Снайдер, Т. Хейн, Б. Уэйли
Для начинающих работать

в UNIX, Ф.И. Торчинский.
Организация UNIX систем и ОС Solaris 9, Торчинский Ф.И., 2-е издание, исправленное, 2016.


Список литературы:Unix и Linux: руководство системного администратора, 4-е издание, 2012, Э. Немет, Г. Снайдер, Т. Хейн, Б.

Слайд 45Благодарю за внимание!
Преподаватель: Солодухин Андрей Геннадьевич
Электронная почта: asoloduhin@kait20.ru


Благодарю за внимание!Преподаватель: Солодухин Андрей ГеннадьевичЭлектронная почта: asoloduhin@kait20.ru

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика