В большинстве ваших исследований мира UNIX вы будете общаться с ним через оболочку shell. Shell - это просто программа, которая воспринимает введенное пользователем, (т.е. команды, которые вы напечатаете) и транслирует это в команды системе. Это можно сравнить с программой COMMAND.COM под MS-DOS, которая делает нечто похожее. Shell - это лишь один из интерфейсов UNIX. Существует много различных интерфейсов, таких как X Window System, которая позволяет выполнять команды используя мышь и клавиатуру в сочетании.
Как только вы вошли, система запускает shell и вы можете вводить для него команды. Вот короткий пример. Как раз Larry вошел в систему и система вновь выдала подсказку:
mousehouse login: larry Password: larry's password Welcome to Mousehouse! /home/larry#
``/home/larry#'' это подсказка shell, показывающая, что он готов принимать команды. (Подробнее про подсказкy позже). Давайте попросим систему сделать что-нибудь интересьненькое:
/home/larry# make love make: *** No way to make target `love'. Stop. /home/larry#
Хм, как оказалось, "make" - это имя существующей в системе программы и shell пытался выполнить эту команду. (Жаль, но система отнеслась к просьбе недружественно).
Это подводит нас к жгучему вопросу: Что такое команды? Что происходит, когда вы вводите ``make love''? Первое слово командной строки ``make'' это имя команды, которую предполагается выполнить. Все остальное в командной строке воспринимается как аргументы команды.
Примеры:
/home/larry# cp foo bar
Здесь имя команды ``cp'', а аргументы ``foo'' и ``bar''.
Когда вы вводите команду, shell делает несколько вещей. Во-первых, смотрит на то, что может (должно) быть именем команды и является ли это внутренней для shell командой. (Внутренняя, это команда, которую shell знает как выполнять. Существует ряд таких команд, мы о них поговорим позже). Shell также проверяет, не является ли команда синонимом другой или требуется подстановка имени. Если этого не надо делать, shell ищет соответствующую этому имени программу на диске. Если shell находит такую программу, он ее выполняет, передавая ей аргументы из командной строки.