Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционная система Unix.doc
Скачиваний:
1
Добавлен:
01.05.2019
Размер:
3.25 Mб
Скачать

15. Язык Shell

Shell

Существует 2 режима работы:

1)Пакетный режим - при ошибке выполнение завершается.

2)Интерактивный - во время ошибки не завершает работу и предлагает пользователю ввести команду

Этапы обработки строки интерпретатором

Механизмы экранирования:

Мягкое экранирование " "

Жесткое экранирование ' '

Этапы выполнения:

1)$ подстановка значения переменной

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

Специальные параметры языка С:

? код завершения программы

* последовательность значений всех позиционных параметров начиная с 1, как одно значение

# количество позиционных параметров

@ последовательность всех значений последовательности позиционых параметров, но при подстановке поледовательность рассматривается как множество

2)alias замена команды другой командой

3)Подстановка вывода команды:

$(<команда>)

если присвоить результат переменной то он разобьется на несколько обьектов вычисляя промежутки и удаляя пустые, обозночения промежутков берется из переменной IFS

5)Подстановка имен файлов: каждое слово в командной строке анализируется на мета символы, если хотябы один найден то слово заменяется на лексиграфически упорядоченной последовательностью найденых имен файлов разделенными пробелами.

* любая последовательность символов

? любой одиночный символ

[<символы>] любой символ из последовательности

6) Удаление экранирующих символов

15. Группировка комманд

Отдельные команды могут быть сгруппированы конвейером "|", стандартный вывод переправляется на стандартный ввод следующей команды.

&& - последовательный запуск команд если предыдущая завершилась успешно

; - последовательный запуск команд

& - асинхронный запуск команды

|| - выполнение команд если предыдущий с кодом завершения не 0 (неудача)

Оператор цикла с перечислением

for <name> [in <list>]

do

<oper>

done

Переменная принимает последовательность слов из списка и для каждого выполняет цикл, если списка нет то берутся значения позиционных параметров.

case <name> in

<tample>) <oper>;;

esac

elif <list com>

then <list com>

else <list com>

fi

cut разбивка файла на поля:

-с (список) (файл)...

-f столбец

paste - слияние строк файла

tr -транслитерация, замена символов, удаление символов

grep - поиск по регулярному выражению

fgrep - упрощенный аналог, поиск подстроки, можно указать конкретный файл с образцами строк для поиска

egrep - поиск по шаблонам которые можно поместить в файл, можно регулярное выражение задавать списком как опции

se56d - пакетный редактор файлов или фильтр для вывода. Указываются набор строк, например номера, затем задается код команды и ее аргументы. Команды: a\ <text> , i\ <text>, c\ <text>, d\, p\, q\, r <file> - вставляем строчки из файла,w <file> записываем строчки в файл.

16. Средства разработки программ.

Этапы программирования на С:

1) исх. модуль производят предпроцессинг

2)компиляция в .асс

3)это собирается в исходный модуль

4)компонуется исполняемый модуль в процессе которого подсоединяются коды библиотек.

Библиотеки по умолчанию находятся в /usr/include, при желании можно указать конкретный каталог в директиве #include

при сборке флагом -l можно указать доп. библиотеки.

Статические библиотеки создаются с помощью ar.

Динамические библиотеки создаются компановщиком с помощью ключа shared, для использования получившейся библиотеки ее необходимо скопировать в usr/local/lib после чего в etc/id.so.conf нужно определить нахождение библиотек, после изменения состава библиотек необходимо запустить утилиту ldconfig

Утилита make

Отслеживает изменения в файлах проекта и компанует только те что изменились или зависят от изменений, структура проетка описывается в файле makefile

Синтаксис

<список целевых файлов>:<список зависимых файлов>;[команда]

Анализируются зависимости и при модификации файлов происходит выполнение команд

В этом файле допускаются макросы

<имя>=<значение>

Указываются метки например make install выполнит с метки install

Сценарий ./configure делает диагностику, докачивает пакеты и формирует make файл

setpgrp() - создание новой группы

setsid() - создание нового сеанса, для создания фонового процессора.

Демон создает .pid через который можно узнать ид процесса, т.е. мы должны всегда создавать его для фоновых процессов.