> Лекция пятая -- Linux как операционная среда (Часть 2) Коротко излагается содержание глав @учебника ``Введение в ОС Linux''|http://heap.altlinux.ru/alt-docs/textbooks/LinuxIntro.george/index.html@. Без демонстрации примеров особого смысла не имеет. > Принципы устройства Linux >> Краткое содержание предыдущей серии . Всё можно понять . Все мы -- процессы . Все они -- файлы . Все наши файлы -- текстовые . Всё делает оболочка с помощью утилит >>> О примерах 0 Примеры запускаются в терминале на соседнем рабочем столе 0 Пример: @посмотреть рабочие столы|run://showworkspaces@ 0 <Внимание!> В примерах нет и тысячной доли возможностей Linux! > Смешение языцей >> Текст как посредник между человеком и системой Для эффективной работы файлы должны быть <текстовые> . Системные настройки -- @^/etc^|run://ls /etc;;file /etc/p*@, пользовательские настройки -- @^.{файл}^ в домашнем каталоге|run://ls .??*;;file .??*@ . Системные старт/стопные сценарии @^/etc/init.d^|run://ls /etc/init.d/;;file /etc/init.d/n*@ . Утилиты обработки текста (например, ^info coreutils^) .. Строчные: ^cat^, ^tac^, @^tail^|run://tail /etc/passwd@, ^head^, @^sort^|run://sort /etc/passwd@, @^grep^|run://grep linux /etc/passwd@, ... .. Работа со словами: @^wc^|run://wc /etc/passwd@, @^cut^|run://cut -d: -f1,5 /etc/passwd@, ... .. Посимвольные: @^tr^|run://tr 'aeui' 'eaiu' < /etc/passwd@, @^iconv^|run://cal \| iconv -f koi8-r -t cp1251@, ... Синтаксис этих файлов <разный>. > Утилиты >> Промежуточный итог: Linux как операционная среда Среда работы в Linux: . Общее пространство имён: файловая система . Общий инструментарий: ФС+текст+процессы . Каждая подзадача имеет инструмент решения . Много инструментов решения одной задачи . Информационная подсистема man/info Детали налицо, необходим <конструктор>. > Триединая оболочка >> Человек не должен работать. Работать должна машина. Человек должен думать. Задачи: . Унификация ручного управления и программы . Взаимодействие с утилитами . Краткость и простота Триединство: 1 Высокоуровневый язык программирования 1 Интерпретатор командной строки 1 Оболочка -- каркас конструктора Имеется <несколько видов> shell. Самая популярная -- ^bash^. > Интерпретатор >> Быстрота + качество = удобство . Входные и выходные сценарии: ^.bash_profile^, ^.bashrc^, ^.bash_logout^ . @Привязка к клавишам|run://bind -P \| head -20@, ^.inputrc^ . @Сокращения|run://alias;;ll t*@, @задание сокращений|run://alias lm='ls -m';;lm@ . @Достраивание|run://ls te Op ;@ . @Шаблоны для имён файлов|run://cp /proc/cpuinfo Doc1;;ls;;echo D*;;ls D*@ . @Окружение|run://set@, пример: @переменные PATH и LANG|run://echo $PATH;;echo $LANG;;date;;LANG=POSIX date@, @настройка подсказки|run://PS1='OpenLectory > ';;ls;;@ > Конструктор >> Утилиты + оболочка = решение задачи . Взаимодействие по вводу и выводу: @">"|run://date > File;;ls;;cat File@, @"<"|run://tr '[0-9]' 'Z' < File@, @канал|run://cal \| sort -r \| grep 3@ и т. д. . Взаимодействие по управлению:утилита ^kill^, @запуск фонового процесса|run://tclock &;;sleep 5;;kill $!@. . Анализ результатов работы: @подстановка|run://A=`date`;;echo $A@, @код ошибки|run://ls;;echo $?;;ls QWE;;echo $?@ -- это @условие в условных операторах|run://if ls .bash_profile; then echo YES; else echo NO; fi;;if ls Nonexistent; then echo YES; else echo NO; fi@ . Простота наиболее частых действий: .. Окружение представлено в переменных .. Утилиты запускаются по имени .. Минимализм при работе с потоками данных .. ...и т. д. > Главы учебника +2 Опять скажу: никто не обнимет необъятного! +3 _К. Прутков_ @Учебник ``Введение в ОС Linux''| /usr/share/doc/alt-docs/modules/LinuxIntro.george/index.html@, главы 8,9,13.