Мендель Купер - Искусство программирования на языке сценариев командной оболочки

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Искусство программирования на языке сценариев командной оболочки"
Описание и краткое содержание "Искусство программирования на языке сценариев командной оболочки" читать бесплатно онлайн.
Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.
bash$ cksum /boot/vmlinuz
1670054224 804083 /boot/vmlinuz
bash$ md5sum /boot/vmlinuz
0f43eccea8f09e0a0b2b5cf1dcf333ba /boot/vmlinuz
Обратите внимание: утилита cksum выводит контрольную сумму и размер файла в байтах.
Пример 12-29. Проверка целостности файла
#!/bin/bash
# file-integrity.sh: Проверка целостности файлов в заданном каталоге
E_DIR_NOMATCH=70
E_BAD_DBFILE=71
dbfile=File_record.md5
# Файл для хранения контрольных сумм.
set_up_database ()
{
echo ""$directory"" > "$dbfile"
# Записать название каталога в первую строку файла.
md5sum "$directory"/* >> "$dbfile"
# Записать контрольные суммы md5 и имена файлов.
}
check_database ()
{
local n=0
local filename
local checksum
# ------------------------------------------- #
# Возможно эта проверка и не нужна,
#+ но лучше перестраховаться сейчас, чем жалеть об этом потом.
if [ ! -r "$dbfile" ]
then
echo "Не могу прочитать файл с контрольными суммами!"
exit $E_BAD_DBFILE
fi
# ------------------------------------------- #
while read record[n]
do
directory_checked="${record[0]}"
if [ "$directory_checked" != "$directory" ]
then
echo "Имя каталога не совпадает с записаным в файле!"
# Попытка использовать файл контрольных сумм для другого каталога.
exit $E_DIR_NOMATCH
fi
if [ "$n" -gt 0 ] # Не имя каталога.
then
filename[n]=$( echo ${record[$n]} | awk '{ print $2 }' )
# md5sum записывает в обратном порядке,
#+ сначала контрольную сумму, затем имя файла.
checksum[n]=$( md5sum "${filename[n]}" )
if [ "${record[n]}" = "${checksum[n]}" ]
then
echo "Файл ${filename[n]} не был изменен."
else
echo "ОШИБКА КОНТРОЛЬНОЙ СУММЫ для файла ${filename[n]}!"
# Файл был изменен со времени последней проверки.
fi
fi
let "n+=1"
done <"$dbfile" # Чтение контрольных сумм из файла.
}
# =================================================== #
# main ()
if [ -z "$1" ]
then
directory="$PWD" # Если каталог не задан,
else #+ то используется текущий каталог.
directory="$1"
fi
clear # Очистка экрана.
# ------------------------------------------------------------------ #
if [ ! -r "$dbfile" ] # Необходимо создать файл с контрольными суммами?
then
echo "Создание файла с контрольными суммами, \""$directory"/"$dbfile"\"."; echo
set_up_database
fi
# ------------------------------------------------------------------ #
check_database # Выполнить проверку.
echo
# Вывод этого сценария можно перенаправить в файл,
#+ это особенно полезно при проверке большого количества файлов.
# Более строгая проверка целостности файлов,
#+ может быть выполнена с помощью пакета "Tripwire",
#+ http://sourceforge.net/projects/tripwire/.
exit 0
Более творческий подход к использованию md5sum вы нйдете в Пример A-21.
shred
Надежное, с точки зрения безопасности, стирание файла, посредством предварительной, многократной записи в файл случайной информации, перед тем как удалить его. Эта команда имеет тот же эффект, что и Пример 12-42, но делает это более изящным и безопасным способом.
Является составной частью пакета GNU fileutils.
Имеется ряд технологий, с помощью которых все-таки возможно восстановить файлы, удаленные утилитой shred.
Кодирование и шифрование
uuencode
Эта утилита используется для кодирования двоичных файлов в символы ASCII, после такого кодирования файлы могут, с достаточной степенью безопасности, передаваться по сети, вкладываться в электронные письма и т.п..
uudecode
Утилита декодирования файлов, прошедших обработку утилитой uuencode.
Пример 12-30. Декодирование файлов
#!/bin/bash
lines=35 # 35 строк для заголовка (более чем достаточно).
for File in * # Обход всех файлов в текущем каталоге...
do
search1=`head -$lines $File | grep begin | wc -w`
search2=`tail -$lines $File | grep end | wc -w`
# Закодированные файлы начинаются со слова "begin",
#+ и заканчиваются словом "end".
if [ "$search1" -gt 0 ]
then
if [ "$search2" -gt 0 ]
then
echo "декодируется файл - $File -"
uudecode $File
fi
fi
done
# Обратите внимание: если передать сценарию самого себя, для декодирования,
#+ то это введет его в заблуждение
#+ поскольку в тексте сценария встречаются слова "begin" и "end".
exit 0
При декодировании и выводе длинных текстовых сообщений из новостных групп Usenet, очень нелишним будет передать текст, по конвейеру, команде fold -s.
mimencode, mmencode
Утилиты mimencode и mmencode предназначены для обработки закодированных мультимедийных вложений в электронные письма. Хотя почтовые программы (такие как pine или kmail) имеют возможность автоматической обработки таких вложений, тем не менее эти утилиты позволяют обрабатывать вложения вручную, из командной строки или в пакетном режиме, из сценария на языке командной оболочки.
crypt
Одно время, это была стандартная, для UNIX, утилита шифрования файлов.[ 31 ] Политически мотивированные, правительственные постановления ряда стран, напрямую запрещают экспорт программного обеспечения для шифрования, что, в результате, привело практически к полному исчезновению crypt из большинства UNIX-систем (в том числе и Linux). К счастью, программистами было разработано множество вполне приличных альтернатив, и среди них cruft (см. Пример A-5).
Прочее
mktemp
Создает временный файл с "уникальным" именем.
PREFIX=filename
tempfile=`mktemp $PREFIX.XXXXXX`
# ^^^^^^ Необходимо по меньшей мере 6 заполнителей
echo "имя временного файла = $tempfile"
# имя временного файла = filename.QA2ZpY
# или нечто подобное...
make
Утилита для компиляции и сборки программ. Но может использоваться для выполнения любых других операций, основанных на анализе наличия изменений в исходных файлах.
Команда make использует в своей работе Makefile, который содержит перечень зависимостей и операций, которые необходимо выполнить для удовлетворения этих зависимостей.
install
Своего рода -- утилита копирования файлов, похожа на cp, но дополнительно позволяет изменять права доступа и атрибуты копируемых файлов. Напрямую эта команда практически не используется, чаще всего она встречается в Makefile (в разделе make install :). Она может использоваться в сценариях установки ПО.
dos2unix
Автор утилиты -- Benjamin Lin со-товарищи. Предназначена для преобразования текстовых файлов из формата DOS (в котором строки завершаются комбинацией символов CR-LF) в формат UNIX (в котором строки завершаются одним символом LF) и обратно.
ptx
Команда ptx [targetfile] выводит a упорядоченный предметный указатель для targetfile, который можно обработать, по мере необходимости, какой либо утилитой форматирования, в конвейере.
more, less
Команды постраничного просмотра текстовых файлов или потоков на stdout. Могут использоваться в сценариях в качестве фильтров.
12.6. Команды для работы с сетью
Команды, описываемые в этом разделе, могут найти применение при исследовании и анализе процессов передачи данных по сети, а также могут использоваться в борьбе со спамерами.
Информация и статистика
host
Возвращает информацию об узле Интернета, по заданному имени или IP адресу, выполняя поиск с помощью службы DNS.
bash$ host surfacemail.com
surfacemail.com. has address 202.92.42.236
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Искусство программирования на языке сценариев командной оболочки"
Книги похожие на "Искусство программирования на языке сценариев командной оболочки" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Мендель Купер - Искусство программирования на языке сценариев командной оболочки"
Отзывы читателей о книге "Искусство программирования на языке сценариев командной оболочки", комментарии и мнения людей о произведении.