13. Работа в командной строке. Сриптовое программирование в ОС Linux.

 

Важнейшим из пользовательских процессов является командная оболочка (она же командный интерпретатор, или просто shell). Именно она обеспечивает взаимодействие пользователя с системой в текстовом режиме, позволяя вводить команды. Не нужно, увлекшись удобствами графического интерфейса, недооценивать командную строку. Во-первых, многие административные задачи могут быть выполнены только оттуда; во-вторых, командная строка — самое удобное средство автоматизации рутинных процедур.

Командой в Linux считается все, что может быть исполнено: исполняемые файлы, встроенные команды оболочки, псевдонимы команд, пользовательские функции, файлы сценариев (скрипты) — заранее подготовленные последовательности команд в текстовом виде.

Для Linux разработано много командных интерпретаторов. Вот несколько из них:

sh Bourne shell, оболочка Борна, стандарт для многих UNIX-по-

добных систем;

bash . . . Bourne Again shell, еще одна оболочка Борна;

csh С shell, оболочка Си: синтаксис ее командного языка похож на

синтаксис языка С;

Список всех установленных в системе программ-оболочек находится в файле / e t c / s h e l l s. (/etc - Каталог для системных конфигурационных файлов. Здесь хранится информация о специфических настройках данной системы: информация о зарегистрированных пользователях, доступных ресурсах, настройках различных программ).

Примеры команд:

login запрос от пользователя имени и пароля (запрос от системы к пользователю) для входа в систему( по умолчанию, при наборе пароля, он не отображается).

shutdown останавливает систему и предотвращает повреждение файловой системы при этом, носпользуется только при работе в консольном режиме.

halt быстрое и корректное выключение системы.

reboot корректное выключение с последущей загрузкойерезагрузка.

vmstat выдаёт сведения о процессах, памяти и загруженности центрального процессора.

date отображает текущие дату и время, по системным часам ядра.

pwd отображает полный путь к текущему каталогу.

uname выводит информацию об используемой операционной системе (при вводе дополнительных параметров команды , выдаёт довольно много информации).

history показывает пронумерованный список команд, которые Вы выполняли в этом и предыдущем сеансе. Если в списке историии их довольно много, то увидите последние.

kill завершить процесс (необходимо указать какой).

Скриптовое программирование в ОС Linux

Некоторые возможности bash: редактирование и автозаполнение; история и повторный ввод команд; контроль заданий; функции shell и псевдонимы; массивы; математические операции; кавычки ANSI C; раскрытие "~"; раскрытие "{}"; работа с подстроками; раскрытие косвенных переменных; расширенные возможности ввода-вывода; контроль встроенных команд; помощь; стек для хранения каталогов; режим совместимости с POSIX; интернационализация; определение времени выполнения команды.

В настоящее время командная оболочка bash (bash shell) входит во многие системы Linux и UNIX и является наиболее распространенной оболочкой в Linux.

Одно из достоинств функций и скриптов shell состоит в возможности изменить поведение единственной функции или скрипта путем передачи этой функции или скрипту параметров.

теперь мы можете определить простую функцию, чтобы сказать, сколько параметров она содержит, и отобразить их

Параметры функции

[~]$ testfunc () { echo "$# parameters"; echo "$@"; }

[~]$ testfunc

0 parameters

[~]$ testfunc a b c

3 parameters

a b c

[~]$ testfunc a "b c"

2 parameters

a b c

Скрипты shell обращаются с параметрами таким же образом, как и функции.

Параметры скрипта shell

[~]$ cat testfunc.sh

#!/bin/bash

echo "$# parameters"

echo "$@";

[~]$ ./testfunc.sh a "b c"

2 parameters

a b c

shell может ссылаться на список передаваемых параметров типа $* или $@ и что от того, заключены эти выражения в кавычки или нет, зависит, как они интерпретируются. Используете ли вы $*, "$*", $@ или "$@", мы не увидим больших различий в выводе приведенной выше функции, но в более сложном варианте различия будут значительны, поскольку мы хотим проанализировать параметры или, возможно, передать какие-то из них другой функции или скрипту.

 

 

Hosted by uCoz