Программирование на языке Shell в системе UNIX. Примеры программирования

1. ВВЕДЕНИЕ

Среди операционных систем особое место занимает Unix. Беспрецедентным является

то, что ОС Unix может работать практически на всех выпускаемых платформах. UNIX

- это стандарт де факто открытых и мобильных операционных систем. (поскольку

название UNIX запатентовано компанией AT&T - различные юниксы называются

различно: SCO UNIX, BSDI, Solaris, Linux, DG/UX, AIX и т.д.).

Это не только многозадачная, но и многопользовательская система. Она

обеспечивает современный пользовательский интерфейс на базе системы X Window и

межмашинную связь на базе протоколов TCP/IP и т.п.

ОС Unix была создана Кеном Томпсоном и Деннисом Ритчи в Bell Laborotories

(AT&T). Широко распространяться Unix/v7 (версия 7) начала в 79 - 80-м годах.

Вручение создателям Unix в 1983 году Международной премии А.Тьюринга в области

программирования ознаменовало признание этой системы мировой научной (computer

science) общественностью. Что также беспрецедентно.

ОС Unix стоит на трех китах: язык Си, файловая система, командный язык. В

дальнейшем к ним добавились система X Window и протоколы TCP/IP.

2. ПРОСТЕЙШИЕ СРЕДСТВА SHELL

Командный язык shell (в переводе - раковина, скорлупа) фактически есть язык

программирования очень высокого уровня. На этом языке пользователь осуществляет

управление компьютером. Обычно, после входа в систему вы начинаете

взаимодействовать с командной оболочкой. Признаком того, что оболочка (shell)

готова к приему команд служит выдаваемый ею на экран промптер. В простейшем

случае это один доллар ("$").

Shell не является необходимым и единственным командным языком (хотя именно он

стандартизован в рамках POSIX [POSIX 1003.2] - стандарта мобильных систем).

Например, немалой популярностью пользуется язык cshell, есть также kshell,

bashell и другие. Более того, каждый пользователь может создать свой командный

язык. Может одновременно на одном экземпляре операционной системы работать с

разными командными языками.

shell - это одна из многих команд UNIX. То есть в набор команд оболочки "shell"

входит команда "sh" - вызов интерпретатора "shell". Первый "shell" вызывается

автоматически при вашем входе в систему и выдает на экран промтер. После этого

вы можете вызывать на выполнение любые команды, в том числе и снова сам "shell",

который вам создаст новую оболочку внутри прежней.

Так например, если вы подготовите в редакторе файл "file_1":

echo Hello!

то это будет обычный текстовый файл, содержащий команду "echo", которая при

выполнении выдает все написанное правее ее на экран. Можно сделать файл "file_1"

выполняемым с помощью команды "chmod 755 file_1". Но его можно выполнить, вызвав

явно команду "sh" ("shell"):

sh file_1

или

sh < file1

Файл можно выполнить и в текущем экземпляре "shell". Для этого существует

специфическая команда "." (точка), т.е.

. file_1

Поскольку UNIX - система многопользовательская, вы можете даже на персональном

компьютере работать параллельно, скажем, на 12-ти экранах (переход с экрана на

экран ALT/функциональная клавиша), имея на каждом экране нового (или одного и

того же) пользователя со своей командной оболочкой. Можете и в графическом

режиме X-Window также открыть большое число окон, а в каждом окне может быть

свой пользователь со своей командной оболочкой...

Стержневым элементом языка shell является команда.

2.1. Структура команд

Команды в shell обычно имеют следующий формат:

<имя команды> <флаги> <аргумент(ы)>

Например:

ls -ls /usr/bin

Где ls - имя команды выдачи содержимого директория,

-ls - флаги ( "-" - признак флагов, l - длинный формат, s - об'ем файлов в

блоках),

/usr/bin - директорий, для которого выполняется команда.

Эта команда выдаст на экран в длинном формате содержимое директория /usr/bin,

при этом добавит информацию о размере каждого файла в блоках.

К сожалению, такая структура команды выдерживается далеко не всегда. Не всегда

перед флагами ставится минус, не всегда флаги идут одним словом. Есть

разнообразие и в представлении аргументов. К числу команд, имеющих экзотические

форматы, относятся и такие "ходовые" команды, как сс – вызов компилятора языка

С, tar – работа с архивами, dd – копирование файла с преобразованием, find –

поиск файлов и ряд других.

Как правило, первое слово shell воспринимает, как команду. Поэтому в командной

строке

cat cat

первое слово будет расшифровано shell, как команда (конкатенации), которая

выдаст на экран файл с именем "cat" (второе слово), находящийся в текущем

директории.


Информация о работе «Программирование на Shell»
Раздел: Информатика, программирование
Количество знаков с пробелами: 39235
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
89611
3
4

... не зависимый от языка способ создания кода и привязки его к запросам Web-страниц, — .NET Web Forms — управляемую событиями программную модель взаимодействия с элементами управления. Она дела­ет программирование Web-страниц аналогичным программи­рованию форм Visual Basic. ASP.NET содержит развитые сред­ства управления сеансами и функции защиты. Она надежнее, и производительность ее значительно выше ...

Скачать
9700
0
0

... "проверки заразности" (taint checks) в Perl? Как их включить? Как мы видели, одна из наиболее часто встречающихся проблем с безопасностью при программировании CGI - передача оболочке ОС пользовательских переменных без их проверки. Perl предлагает механизм проверки "заразности", который не позволяет этого делать. Любая переменная, которая проинициирована данными за пределами программы (включая ...

Скачать
43471
0
3

льный для каждого маршрута): "c: Курсовая моя < название маршрута > .txt" В таких файлах информация представлена например в следующем виде: автобус, 512 водитель, Батуров П.П. кондуктор, Иванова И.И. автобус, 513 водитель, Рябова Т.И. кондуктор, Шишкова Ю.М. автобус, 514 водитель, Продидж Н.Н. кондуктор, Мартысюк С.С. остановка, , 405, 4680 остановка, , 915, 2730 остановка, , ...

Скачать
374863
43
0

... интерфеса и интерфейса локольной сети ·     Предложение о выборе вариантов загрузки При этом возможен вариант запгрузки как с SCSI устройства (диск, CDROM, лента, …) так и через локальную сеть. Загрузочный диск должен быть предварительно сконфигурирован. Так как обьем Boot ROM не может быть большим, в его задачи входит загрузка вторичного загрузчика ...

0 комментариев


Наверх