bash Cookbook / bash: Сборник рецептов: Chapter 1. Beginning bash / Глава 1. Основы bash
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Что такое оболочка и зачем она вам нужна? bbrodriges 25.12.08 в 11:47 Что такое shell, и зачем он нужен? (анонимно) 31.08.09 в 03:47 |
|
|
Все последние операционные системы (т.е., выходившие примерно с 1970х) имеют некоторый пользовательский интерфейс - то, каким образом операционной системе подаются команды на выполнение. В большинстве операционных систем этот командный интерфейс встроен в них, и он является единственным способом общаться с компьютером. Кроме того, командный интерфейс операционной системы позволяет вам выполнять команды, и только. В конце концов, может нам больше ничего и не надо? alz 07.05.09 в 15:55 |
||
|
ОС Unix популяризировала идею отделения оболочки (та часть системы, которая позволяет печатать команды) от всего остального: системы ввода/вывода, планировщика, управления памятью и других вещей, которые за пользователя делает ОС (и с чем большинство пользователей иметь дела не хотят). pif 06.02.09 в 08:42 В ОС Unix популяризировали идею отделения оболочки (часть системы, позволяющую вводить команды) от всего остального: системы ввода/вывода, планировщика, управления памятью и других вещей, которые делает ОС сама (о чём большинство пользователей заботиться не должны).
(анонимно) 31.08.09 в 03:52 |
||
|
Но это было началом революции. Оболочка была просто одной из программ, работающих в Unix, и если стандартная вам не нравилась, можно было создать собственную. Так к концу первого десятилетия Unix было по крайней мере две конкурирующих оболочки: Bourne Shell и sh (потомок Thomson shell), плюс C shell, csh. К концу второго десятилетия Unix было еще несколько альтернатив: Korn shell (ksh), и первые версии bash. К концу третьего десятилетия Unix было около десятка различных оболочек. pif 06.02.09 в 09:49 Но это стало началом революции. Оболочка - просто одна из программ, работающих в Unix, и если стандартный shell вам не нравится, можно создать собственную. К концу первого десятилетия Unix в ней было уже две конкурирующих оболочки: Bourne Shell и sh (потомок Thomson shell), плюс C shell, csh. К концу второго десятилетия Unix стало еще больше альтернатив: Korn shell (ksh), и первые версии bash. К концу третьего десятилетия Unix создано около десятка различных оболочек. (анонимно) 31.08.09 в 03:56 |
||
|
Вероятно, Вы не сидите ровно, говоря: "А не использовать ли мне csh? Или bash? Или ksh, чёрт возьми!" Вы, возможно были бы счастливы иметь одну стандартную оболочку в своей Linux (BSD, Mac OS X, Solaris или HP/UX). Но независисмость оболочки от системы облегчает работу программистам (например Брайану Фоксу, создателю bash, и Чету Рамею, нынешнему заведующему развитием bash) писать лучший и лучший shell - можно создавать новые оболочки без изменения самой ОС. Очень легко достать новый shell, так как не нужно уговаривать производителя добавить в его поставку новый shell, всё, что надо, это установить в систему новый shell как и любую другую программу. (анонимно) 31.08.09 в 04:24 |
||
|
Пока это для некоторых - пустые звуки. Всё, что им надо - дать команду и чтобы она выполнялась. И они правы - shell всего лишь позволяет Вам набрать команды, остальное не должно быть неинтересно. Однако, два фактора движут эволюцию shell в Unix: пользовательский зуд и программирование. В результате современный shell позволяет больше, чем простой ввод команд. (анонимно) 31.08.09 в 04:34 |
||
|
Современные оболочки очень удобны. К примеру, они запоминают команды, которые вы напечатали, и позволяют вам использовать их снова. Современные оболочки также позволяют вам изменять их команды, так что они могу быть все время разными. Еще современные оболочки позволяют вам назначать собственные командные и клавиатурные сокращения и другие возможности. Для опытных пользователей ввод команд (к примеру с клавиатурными сокращениями и автодополнением команд) намного более результативен и эффективен, чем перетаскивание вещей в красивом оконном интерфейсе. bbrodriges 25.12.08 в 16:00 Современные оболочки очень удобны. К примеру, они запоминают команды, которые набирались ранее, и позволяют использовать их снова. Современные оболочки также позволяют менять эти команды, и они могут быть всякий раз иными. Ещё современные оболочки позволяют назначить собственные командные и клавиатурные сокращения и имеют другие возможности. Для опытных пользователей ввод команд (к примеру с клавиатурными сокращениями и автодополнением команд) намного результативнее и эффективнее, чем перетаскивание чего-либо мышью по красивому оконному интерфейсу. (анонимно) 31.08.09 в 04:39 |
||
|
Но кроме простого усовершенствования ввода, оболочка ещё позволяет программировать. Множество последовательностей команд требуется выполнять снова и снова. И Вы набираете их снова и снова. Однако, делая что-либо второй раз, Вы должны спросить себя: "А не написать ли мне программку, которая будет это делать за меня?" Можно. Shell также суть и язык программирования, специально созданный для работы с системными командами компьютера. Например, если нужно сконвертировать тысячу файлов mp3 из файлов wav, то пишем программу на shell (т.е. скрипт). Если нужно упаковать все системные журналы, можно написать скрипт для этого. Всегда, когда требуется делать повторяющиеся задания, пишем скрипт. Конечно, существуют более мощные (способные) скриптовые языки - Perl, Pithon, Ruby, но оболочка Unix shell (в зависимости от того, какую именно используете) - самое верное для начинания. После того, как Вы освоили простой ввод команд, зачем усложнять? (анонимно) 31.08.09 в 04:54 |
