Комадный интерпретатор
В Unix практически всегда входят два командных интерпретатора - sh (shell)
и csh (C-подобный shell). Кроме них еще бывают bash (Bourne), ksh (Korn),
и другие. Не вдаваясь в подробности, приведу общие принципы:
Все команды, кроме изменения текущей директории, установки переменных окружения
(environment) и операторов структурного программирования - внешние программы.
Программы эти как правило располагаются в каталогах /bin и /usr/bin.
Программы системного администрирования - в каталогах /sbin и /usr/sbin.
Команда состоит из имени запускаемой программы и аргументов. Аргументы
отделяются от имени команды и друг от друга пробелаим и табуляциями.
Некоторые спецсимволы интерпретируются самим shell'ом.
Спецсимволами являются " ' ` \ ! $ ^ * ? < > | & ; (еще какие?).
В одной командной строке можно дать несколько команд. Команды могут быть разделены ; (последовательное выполнение команд), & (асинхронное одновременное выполнение команд), | (синхронное выполнение, стандартный вывод stdout первой команды будет подан на стандартный ввод stdin второй).
Кроме того, можно брать стандартный ввод из файла, включив в качестве одного из аргументов "<файл" (без кавычек); можно направить стандартный вывод в файл, используя ">файл" (файл будет обнулен) или ">>файл" (запись будет произведена в конец файла). Сама программа не получит этого аргумента; чтобы узнать, что ввод или вывод переназначены, программа должна сама предпринять некоторые весьма нетривиальные телодвижения.