Shell¶
Способы человеко-машинного взаимодействия (интерфейса):¶
- текстовый
- графический (2D, 3D, ...)
- тактильный
- телепатический
- ...
Текстовый — наименьший "inpedance mismatch", следовательно наиболее простая разработка.
Shell — это интерфейс ОС, который дает доступ к сервисам ее ядра.¶
Примеры¶
Shell есть в любой ОС. Даже в стандарте POSIX: Shell Command Language
- korn shell (ksh) — POSIX shell
- другие shell Unix: bash, csh, zsh
- shell Windows: CMD.EXE, PowerShell
Основные концепции¶
Окружение¶
Окружение — это контекст текущего процесса Shell. В Unix оно определяется переменными окружения. Вообще говоря, у любого процесса есть определенные ресурсы: общие (разделяемые) и индивидуальные. Окружение относится к индивидуальным, в то время как файловая система — к разделяемым.
$ env ... $ echo $PATH ... $ PATH=/tmp ... $ env bash: env: command not found $ export PATH=/tmp ... $ source PATH=/tmp ...
Синтаксис¶
Команды/программы¶
Case studies¶
init-скрипты¶
make¶
Программа make — это простейший сборщик программ. По сути, она выполняют функцию обработчика иерархии целей, заданных в Makefile. Пример Makefile — см. файл-приложение. Формат записи в Makefile:
<цель>: <другие цели, от которых зависит эта>
<набор shell-команд>