Литвек - электронная библиотека >> Дэвид Тейнсли >> Руководства и инструкции и др. >> Linux и UNIX: программирование в shell. Руководство разработчика. >> страница 101
обновление каждые 60 секунд

echo "<meta http‑equiv="Refresh" content="60;URL=http:/"linux.pc/cgi‑bin/dfspace.cgi">"

echo "<HTML>"

echo "<HR>"

echo "<A NAME="LINUX. PC Filesystems">LINUX. PC Filesystems</A>"

echo "<TABLE align="center" cellspacing="20" border=9 width="40%"

cols="2">"

echo "<TH align="center">- Capacity % -</TH>"

echo "<TH align="center">- File System -</TH>"

# получение вывода из df, но сначала фильтруется нужная информация!

df | sed 1d | awk '{print $5"\t"$6}' | while read percent mount

do

echo "<TR><TD align="center"><B>$percent</B></TDXTD align="center">$mount</TD>

</TR>"

done

echo "</TABLE>"

echo "</HTML>"

При вводе URL

http://<имя_сервера>/cgi‑bin/dfspace.cgi

в окне броузера отображается вывод, показанный на рис. 29.15. В вашем случае могут наблюдаться отличия.

Linux и UNIX: программирование в shell. Руководство разработчика.. Иллюстрация № 22

Рис. 29.15. Использование вывода команды df для генерирования таблиц

29.6. Заключение

Сценарии cgi обеспечивают создание весьма привлекательного пользовательского интерфейса. Страницы HTML могут использоваться в качестве интерфейса для всех распространенных задач, выполняющих обработку информации.

Создаваемые сценарии могут применяться для мониторинга, создания интерфейса, запросов к базам данных и решения других задач. Язык HTML является стандартным форматом для создания документации, поставляемой вместе с программным обеспечением.

ПРИЛОЖЕНИЕ А Коды ASCII


Символ Десятичное значение Шестнадцатеричное значение Восьмеричное значение Ctrl-@ (NUL) 0 00 000 Ctrl‑A 1 01 001 Ctrl‑B 2 02 002 Ctrl‑C 3 03 003 Ctrl‑D (EOT) 4 04 004 Ctrl‑E 5 05 005 Ctrl‑F 6 06 006 Ctrl‑G (BEL) 7 07 007 Ctrl‑H (BS) 8 08 010 Ctrl‑I (TAB) 9 09 011 Ctrl‑J (NL) 10 0А 012 Ctrl‑K 11 0B 013 Ctrl‑L (FF) 12 0C 014 Ctrl~M (CR) 13 0D 015 Ctrl‑N 14 0Е 016 Ctrl‑O 15 0F 017 Ctrl‑P 16 10 020 Ctrl‑Q 17 11 021 Ctrl‑R 18 12 022 Ctrl‑S 19 13 023 Ctrl‑T 20 14 024 Ctrl‑U 21 15 025 Ctrl‑V 22 16 026 Ctrl‑W 23 17 027 Ctrl‑X 24 18 030 Ctrl‑Y 25 19 031 Символ Десятичное значение Шестнадцатеричное значение Восьмеричное значение Ctrl‑Z 26 1A 032 Ctrl -[ (ESC) 27 1B 033 Ctrl-\ 28 1С 034 Ctrl-] 29 1D 035 Ctrl-^ 30 1E 036 Ctrl-_ 31 1F 037 Пробел 32 20 040 ; 33 21 041 " 34 22 042 # 35 23 043 $ 36 24 044 % 37 25 045 & 38 26 046 ' 39 27 047 ( 40 28 050 ) 41 29 051 * 42 2A 052 + 43 2B 053 ` 44 2C 054 _ 45 2D 055 . 46 2E 056 / 47 2F 057 0 48 30 060 1 49 31 061 2 50 32 062 3 51 33 063 4 52 34 064 5 53 35 065 6 54 36 066 7 55 37 067 8 56 38 070 9 57 39 071 : 58 ЗА 072 ! 59 3B 073 < 60 3C 074 Символ Десятичное Шестнадцатеричное значение Восьмеричное значение значение = 61 3D 075 > 62 3E 076 ? 63 3F 077 @ 64 40 100 А 65 41 101 в 66 42 102 с 67 43 103 D 68 44 104 E 69 45 105 F 70 46 106 G 71 47 107 Н 72 48 110 I 73 49 111 J 74 4А 112 К 75 4В 113 L ' 76 4С 114 M 77 4D 115 N 78 4Е 116 0 79 4F 117 P 80 50 120 Q 81 51 121 R 82 52 122 S 83 53 123 т 84 54 124 U 85 55 125 V 86 56 126 W 87 57 127 X 88 58 130 Y 89 59 131 Z 90 5А 132 [ 91 5В 133 \ 92 5С 134 ] 93 5D 135 ^ 94 5Е 136 95 5F 137 Символ Десятичное значение Шестнадцатеричное значение Восьмеричное значение ` 96 60 140 а 97 61 141 b 98 62 142 с 99 63 143 d 100 64 144 e 101 65 145 f 102 66 146 Я 103 67 147 h 104 68 150 i 105 69 151 j 106 6А 152 k 107 6В 153 1 108 6С 154 m 109 6D 155 n 110 6Е 156 0 111 6F 157 p 112 70 160 q 113 71 161 r 114 72 162 s 115 73 163 t 116 74 164 u 117 75 165 V 118 76 166 w 119 77 167 X 120 78 170 у 121 79 171 z 122 7А 172 { 123 7В 173 | 124 7С 174 } 125 7D 175 ~ 126 7Е 176 Ctrl-? (DEL) 127 7F 177

ПРИЛОЖЕНИЕ Б

Полезные команды интерпретатора shell

В этом приложении перечисляются и описываются некоторые полезные команды интерпретатора shell. Здесь не приводится исчерпывающий список параметров для каждой команды. Однако имеющихся параметров вполне достаточно для понимания работы команд.

Дополнительные примеры использования можно найти в других главах книги.

basename

Формат:

basename путь

Команда basename выделяет путь из имеющегося имени пути и просто возвращает имя файла. Эта команда обычно применяется в конструкциях usage в сценариях. В этом случае подстановка используется при отображении на экране имен файлов.

$ basename /home/dave/myscript

myscript

echo "Usage: `basename $0` give me a file" exit 1

Если приведенный выше код именуется myscript, вывод может быть следующим:

myscript: give me a file

Здесь $0 является специальной переменной, которой присвоено текущее полное имя пути для сценария.

cat

Формат:

cat параметры файлы

Параметры:

-v Задается отображение управляющих символов

Команда cat является одной из наиболее часто применяемых команд постраничной разбивки текстовых файлов.

$ cat myfile

Отображение содержимого файла myfile.

$ cat myfile myfile2 >> hold_file

Приведенная выше команда осуществляет объединение двух файлов (myfile и myfile2) в один файл, именуемый hold_file.

cat dtl | while read line do

echo $LINE done

Команда cat также используется для считывания файлов, осуществляемого с помощью сценариев.

compress

Формат:

compress параметры файлы

Параметры:

-v Вывод на экран результатов сжатия

Команда compress используется для уменьшения размера файлов. После завершения сжатия файл получает расширение .Z Для возврата файла в исходное состояние используется команда uncompress.

$ compress myfile

$ ls myfile*

myfile. Z

cp

Формат:

cp параметры файл1 файл2

Параметры:

-i Запрос на подтверждение перезаписи файлов

-p Сохранение набора прав доступа и времени изменения

-r Рекурсивное копирование каталога

Для копирования файла myfile в myfilel.bak применяется команда:

$ cp myfile1 myfile1.bak

Копирование файла get.prd из каталога /usr/local/sybin в каталог /usr/local/bin осуществляется командой

$ pwd

/usr/local/sybin

$ cp get.prd ../bin

Для рекурсивного копирования всех файлов и подкаталогов из каталога /logs (вниз) в каталог /hold/logs применяется команда:

$ cp -r /logs/ /hold/logs

diff

Формат:

diff параметры файл1 файл2

Параметры:

-c Генерирует различный вывод на основе стандартного формата (см. ниже) — i Игнорирование регистров символов

При использовании файлов файлы файл2 из нашего примера comm команда diff будет выводить строки, которые не совпадают в заданных файлах.

$ diff файл1 файл2

2,3с2,3

<The game

<Boys in company С

>The games

>The boys in company С

Команда diff сообщает о том, что строки 2 и 3 различны, но второй столбец в строке 3 не совпадает.

dircmp

Формат:

dircmp параметры каталог1 каталог2

Параметры:

-s Не отображать различные файлы

Действие команды dircmp напоминает действие команды diff: она также производит сравнение с последующим выводом на экран найденных различий.

dirname

Формат:

dirname имя_пути

В противоположность команде basename, команда dirname выводит на экран только имя пути:

$ dirname /home/dave/myfile/home/dave

du

Формат:

du параметры каталог

Параметры:

-a Отображается размер каждого файла, а не только размер каталогов -s Отображается только итоговая сумма

Команда du выводит информацию об использовании диска в виде блоков размером по 512 байтов. Эта команда применяется, главным образом, для вывода размеров каталогов.

$ pwd

/var

$ du -s

14929

Размер структуры каталога /var составляет 14929 блоков.

file

Формат:

file имя_файла

Благодаря этой команде интерпретатор shell определяет тип