ФАК по Юниксам
Спецвыпуск Хакера, номер #005, стр. 005-010-1
Noah (noah@inbox.ru)
Delta (delta@xakep.ru)
Avalanche (kolyan@rnc.ru)
Да! Вопросы, вопросы, вопросы. По-другому не бывает. Когда в твоей жизни появляется новая девушка, то возникает естественный вопрос - "какая у нее грудь на ощупь?", а когда появляется новая операционная система - вопросы, вроде "я только что все сделал, как мне все вернуть обратно?" и "пустите меня, где тут выход?". Короче: вопросы - это всегда нормально. Вопросы разные: простые, сложные, не очень сложные... Вот, короче, и знакомство с новой осью у тебя началось с вопросов. Задавай, пингвиныч! А мы, соответственно, попробуем тебе поотвечать.
1. Что такое shell?
Дословно shell переводится как "оболочка". Это программа, которая принимает команды юзера из командной строки, преобразует их в понятную для операционки форму и выводит ответ операционки в понятной для юзера форме :). Другое название shell - командный интерпретатор. Вот несколько наиболее юзабельных shell'ов: bash, sh, csh, tcsh, psh. Отличаются они тем, что у каждой shell свой язык для написания скриптов (у родственных шеллов они почти одинаковые, как у bash и sh).
Еще они отличаются по функциональности: некоторые позволяют редактировать вид командной строки. Почти у каждого шелла есть свои встроенные переменные. Если не знаешь, какой у тебя шелл, вводи команду echo $SHELL. Если хочешь поменять свой дефолтовый шелл, вводи команду chsh.
2. Что такое shell-скрипт?
Скрипт шелла (или сценарий) - это интерпретируемая прога, написанная на языке того или иного шелла. Вспомни перл: там тоже исходник не компилируется, а интерпретируется. В нашем случае в роли интерпретатора выступает шелл. Шелл-языки обычно обладают свойствами обычных структурно-ориентированных языков (си, паскаль и т.п.). То есть в них имеются типичные структуры выбора (if), повторения (while). Например, язык шелла Csh очень похож на язык программирования C. Зачем это нужно? Ну, простой пример: тебе надо каждый раз при входе в систему набирать какую-нибудь команду - так вот, чтоб не настукивать ее руками, ты пишешь небольшой скрипт, ставишь ему атрибут выполняемого файла и прописываешь его в файле автозапуска.
3. Что такое консоль?
Консоль, или системная консоль, - это клава и монитор, подключенные непосредственно к машине, где установлена система (ось). Вот если ты себе поставил линуху, то твои клава и монитор вместе составляют консоль. Также консолью (консольным режимом) называют текстовый режим работы с nix-осями.
4. Что такое терминал?
Так как все nix'ы - многопользовательские оси, к одному компу можно подключить не только один монитор и одну клаву (консоль), а несколько, через последовательные порты. Вот эти вот пары мониторов и клав и называются терминалами. Не путать с системной консолью! Она одна, и за ней обычно восседает админ :).
5. А что такое виртуальные консоли?
Для удобства юзеров в nix'ах реализован механизм виртуальных консолей.
Это дает тебе следующие преимущества: ты можешь залогиниться в систему одним именем, начать какую-то работу, потом нажать Alt+F2, снова