• Aucun résultat trouvé

Mark G. Sobell

N/A
N/A
Protected

Academic year: 2022

Partager "Mark G. Sobell "

Copied!
880
0
0

Texte intégral

(1)
(2)

Editors, and Shell Programming SECOND EDITION

Mark G. Sobell

.. •• ••

PRENTICE HALL

Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York· Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City

(3)

Администрирование и системное

проrраммирование

2-Е ИЗДАНИЕ

Марк г. Собель

Москва· Санкт-Петербург· Нижний Новгород· Воронеж Ростов-на-Дону . Екатеринбург· Самара· Новосибирск

Киев· Харьков· Минск

2011

(4)

С54

СобельМ.

С54 Linux. Администрирование и системное программирование. 2-е изд. — СПб.:

Питер, 2011. — 880 с.: ил. ISBN978-5-459-00450-2

Этакнигапредставляетсобойвсеобъемлющееруководствопоработе, настройке, администри- рованию и системному программированию операционных систем семейства UNIX/Linux, включая Ubuntu, Fedora, openSUSE, Red Hat, Debian, Mandriva, Mint идаже Mac OS X. Перваячастькниги даетначальныепредставленияоработев Linux: объясняетсяинтерфейскоманднойстроки, приво- дитсяобзорнаиболеераспространенныхутилит, рассматриваетсяиерархическаяфайловаясисте- ма Linux, объясняется, какиспользоватьсвойстваоболочки, чтобыускоритьработувсистеме. Во второй части рассмотрены два мощных Linux-редактора, работающих в режиме командной строки и включенныхв большинстводистрибутивов Linux: текстовыйредактор vim и GNU-редактор emacs. Втретьейчасти книгиосвещаютсяаспектыработысоболочками bash и tcsh. Четвертая часть посвящена важным средствампрограммирования, широко используемымпри системном администрировании Linux и Mac OS: рассказываетсяобособенностяхрасширенногопрограмми- рования оболочки с использованием bash; дается представление о создании сценариев админи- стрирования Linux-системнаязыкепрограммирования Perl; подробнорассмотреныутилиты sed и rsync. Заключительная часть книги представляет собой обширный справочник команд Linux, включающийподробныепримерыиспользованияболеесотнинаиболееважныхутилит.

Книгаадресованаширокомукругучитателей: отпользователей Linux и Mac OS X, желающих узнать преимущества работы с системой из командной строки, до системных администраторов ипрограммистов, нуждающихсявболееглубоком пониманиисистемыидоступныхиминстру- ментальныхсредств.

ББК 32.973.2-018.2 УДК 004.451

Права на издание получены по соглашению с Prentice Hall, Inc. Upper Sadle River, New Jersey 07458. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

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

ISBN978-0131367364 англ. © Prentice Hall, Inc. 2010

ISBN978-5-459-00450-2 © Перевод на русский язык ООО Издательство «Питер», 2011

© Издание на русском языке, оформление ООО Издательство «Питер», 2011

(5)

Оглавление

Предисловие . . . 11

Особенности данной книги . . . 13

Содержание . . . 14

Часть I . Операционные системы Linux и Mac OS X . . . 14

Часть II . Редакторы . . . 16

Часть III . Оболочки . . . 16

Часть IV . Средства программирования . . . 17

Часть V . Справочник команд . . . 18

Вспомогательные материалы . . . 19

Глава 1 . Добро пожаловать в Linux и Mac OS X . . . 20

История UNIX и GNU–Linux . . . 21

Что можно отнести к достоинствам Linux? . . . 25

Обзор Linux . . . 31

Дополнительные свойства Linux . . . 37

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

Упражнения . . . 40

ЧАСТЬ I . ОПЕРАЦИОННЫЕ СИСТЕМЫ LINUX И МАС OS X Глава 2 . Начнем! . . . 42

Соглашения, используемые в этой книге . . . 42

Вход в систему через терминал или эмулятор терминала . . . 45

Работа с оболочкой . . . 46

su/sudo: Ограничение ваших полномочий (root-права) . . . 50

Где найти документацию . . . 52

Дополнительная информация о входе в систему . . . 60

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

Упражнения . . . 64

Глава 3 . Утилиты . . . 65

Специальные символы . . . 65

Основные утилиты . . . 66

Работа с файлами . . . 69

| (канал): Организация связи между процессами . . . 76

Еще четыре утилиты . . . 77

Сжатие и архивирование файлов . . . 80

Команды для поиска мест, где находятся утилиты . . . 85

Получение информации о пользователе и системе . . . 87

Связь с другими пользователями . . . 91

Электронная почта . . . 92

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

Упражнения . . . 95

(6)

Глава 4 . Файловая система . . . 97

Иерархическая файловая система . . . 97

Полные имена . . . 103

Работа с каталогами . . . 106

Права доступа . . . 114

Списки управления доступом (ACL-списки) . . . 121

Ссылки . . . 126

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

Упражнения . . . 134

Глава 5 . Оболочка . . . 137

Командная строка . . . 137

Стандартный ввод и стандартный вывод . . . 143

Запуск команды в фоновом режиме . . . 154

Генерация имени файла и расширение имени . . . 157

Встроенные команды . . . 161

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

Упражнения . . . 164

ЧАСТЬ II . РЕДАКТОРЫ Глава 6 . Редактор vim . . . 168

История . . . 168

Руководство . Использование vim для создания и редактирования файла . . . 169

Введение в функции редактора vim . . . 177

Командный режим: перемещение курсора . . . 184

Режим ввода . . . 188

Командный режим: Удаление и изменение текста . . . 189

Поиск и замена . . . 193

Другие команды . . . 199

Копирование, перемещение и удаление текста . . . 200

Чтение и запись файлов . . . 202

Установка параметров . . . 203

Расширенные технологии редактирования . . . 208

Единицы отсчета . . . 211

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

Упражнения . . . 218

Глава 7 . Редактор emacs . . . 220

История . . . 220

Руководство по началу работы с emacs . . . 223

Графический интерфейс пользователя emacs . . . 230

Основные команды редактирования . . . 231

Интерактивная справка . . . 239

Расширенное редактирование . . . 241

Основные режимы: редактирование с восприимчивостью к языкам программирования . . . 256

Дополнительная информация . . . 270

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

Упражнения . . . 278

(7)

Оглавление 7

ЧАСТЬ III . ОБОЛОЧКИ Глава 8 . Оболочка Bourne Again Shell . . . 282

Предыстория . . . 283

Основы оболочки . . . 284

Параметры и переменные . . . 304

Специальные символы . . . 320

Процессы . . . 321

История . . . 324

Псевдонимы . . . 341

Функции . . . 344

Управление bash: Свойства и настройки . . . 347

Обработка командной строки . . . 351

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

Упражнения . . . 364

Глава 9 . Оболочка TC Shell . . . 367

Сценарии оболочки . . . 368

Вход в оболочку TC Shell и выход из нее . . . 369

Свойства, общие для оболочек Bourne Again Shell и TC Shell . . . 371

Перенаправление стандартной ошибки . . . 377

Работа с командной строкой . . . 378

Переменные . . . 384

Управляющие структуры . . . 397

Встроенные команды . . . 406

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

Упражнения . . . 412

Упражнения повышенной сложности . . . 413

ЧАСТЬ IV . СРЕДСТВА ПРОГРАММИРОВАНИЯ Глава 10 . Программирование оболочки Bourne Again Shell . . . 416

Управляющие структуры . . . 417

Описатели файлов . . . 449

Параметры и переменные . . . 452

Встроенные команды . . . 465

Выражения . . . 480

Программы оболочки . . . 488

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

Упражнения . . . 501

Упражнения повышенной сложности . . . 502

Глава 11 . Язык сценариев Perl . . . 504

Введение в Perl . . . 504

Переменные . . . 512

Управляющие структуры . . . 520

Работа с файлами . . . 530

Сортировка . . . 534

Подпрограммы . . . 535

Регулярные выражения . . . 538

(8)

Модули CPAN . . . 544

Примеры . . . 546

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

Упражнения . . . 550

Упражнения повышенной сложности . . . 551

Глава 12 . Язык обработки шаблонов AWK . . . 552

Синтаксис . . . 552

Аргументы . . . 553

Ключи . . . 553

Примечания . . . 554

Основы языка . . . 554

Примеры . . . 562

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

Упражнения . . . 584

Упражнения повышенной сложности . . . 584

Глава 13 . Редактор sed . . . 585

Синтаксис . . . 585

Аргументы . . . 585

Ключи . . . 585

Основы редактора . . . 586

Примеры . . . 590

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

Упражнения . . . 601

Глава 14 . Утилита безопасного копирования rsync . . . 602

Синтаксис . . . 602

Аргументы . . . 602

Ключи . . . 603

Примеры . . . 605

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

Упражнения . . . 613

ЧАСТЬ V . СПРАВОЧНИК КОМАНД Указатель команд . . . 616

Общие ключи . . . 619

sample . . . 620

aspell . . . 622

at . . . 626

bzip2 . . . 630

cal . . . 632

cat . . . 633

cd . . . 635

chgrp . . . 636

chmod . . . 640

chown . . . 645

cmp . . . 647

(9)

Оглавление

9

comm . . . 649

configure . . . 651

cp . . . 653

cpio . . . 657

crontab . . . 662

cut . . . 665

date . . . 667

dd . . . 669

df . . . 672

diff . . . 674

diskutil (OS X) . . . 680

ditto (OS X) . . . 683

dmesg . . . 685

dscl (OS X) . . . 686

du . . . 689

echo . . . 691

expr . . . 694

file . . . 697

find . . . 699

finger . . . 706

fmt . . . 708

fsck . . . 710

ftp . . . 715

gawk . . . 722

gcc . . . 723

GetFileInfo (OS X) . . . 727

grep . . . 729

gzip . . . 734

head . . . 737

kill . . . 738

killall . . . 740

launchctl (OS X) . . . 741

less . . . 744

ln . . . 748

lpr . . . 750

ls . . . 753

make . . . 761

man . . . 767

mkdir . . . 771

mkfs . . . 772

Mtools . . . 775

mv . . . 778

nice . . . 780

nohup . . . 782

od . . . 782

open (OS X) . . . 786

otool (OS X) . . . 788

paste . . . 790

pax . . . 792

plutil (OS X) . . . 798

pr . . . 799

(10)

ps . . . 801

rcp . . . 805

renice . . . 807

rlogin . . . 809

rm . . . 810

rmdir . . . 811

rsh . . . 812

rsync . . . 814

scp . . . 814

sed . . . 816

SetFile (OS X) . . . 817

sleep . . . 818

sort . . . 820

split . . . 829

ssh . . . 830

stat . . . 838

strings . . . 839

stty . . . 840

sysctl (OS X) . . . 845

tail . . . 846

tee . . . 849

telnet . . . 850

test . . . 852

top . . . 855

touch . . . 859

tr . . . 861

tty . . . 864

tune2fs . . . 864

umask . . . 867

uniq . . . 868

w . . . 870

wc . . . 872

which . . . 873

who . . . 875

xargs . . . 877

(11)

Предисловие

В книге «Linux . Администрирование и системное программирование»

объясняется, как работать с командной строкой операционной системы Linux . Первые несколько глав быстро введут в курс дела читателей, имеющих сравни- тельно небольшой опыт работы на компьютере . Остальная часть книги адресована опытным пользователям . В этой книге не дается описание конкретного выпуска или дистрибутива Linux, она подходит для всех последних версий этой операционной системы .

Вы узнаете как работать с основой операционной системы Mac OS X, которая досталась ей от UNIX/Linux . Книга позволит вам «заглянуть под капот», обходя стороной традиционный графический интерфейс пользователя (GUI), который отождествляется большинством людей с компьютерами Macintosh, и объяснит, как использовать мощный интерфейс командной строки (command-line interface, CLI) . В этой книге не приводится описание конкретного выпуска OS X, по- скольку она подходит для всех последних выпусков . Материалы, относящиеся к Linux, также относятся и к Mac OS X . Различия между этими операционными системами оговариваются особо .

Первым появился интерфейс командной строки (CLI), или текстовый интерфейс, позволяющий управлять операционной системой Linux прямо из командной строки . Тогда еще не было мыши, с помощью которой можно было указывать на элементы экрана или перетаскивать значки . В не- которых программах (например, emacs) были реализованы примитивные окна, ис- пользующие весьма скромные возможности псевдографического оформления, предо- ставляемые набором ASCII-символов . Выделение областей экрана осуществлялось с помощью негативного изображения .

Система Linux зарождалась и совершенствовалась именно в таком окружении, поэтому вполне естественно, что все исходные инструменты Linux вызывались из командной строки . В этой среде до сих пор скрывается реальная мощь Linux, чем и объясняется тот факт, что многие профессионалы Linux работают исключительно из командной строки . Благодаря четким описаниям и множеству примеров эта книга показывает, как добиться наибольшей отдачи от вашей Linux-системы, используя интерфейс командной строки .

Дистрибутив Linux содержит ядро, утилиты и прикладные программы . В настоящее время доступно множество дистрибутивов — Ubuntu, Fedora, Red Hat, Mint, OpenSUSE, Mandriva, CentOS и Debian . Хотя дистрибутивы несколько отличаются друг от друга, все они основаны на ядре Linux, утилитах и при- ложениях . В этой книге взят за основу тот код, который является общим для боль- шинства дистрибутивов, поэтому вы можете использовать его независимо от того, какой именно дистрибутив работает на вашей машине .

Linux

Mac OS X

Интерфейс командной строки

Дистрибутив Linux

(12)

Это издание содержит множество новых и обновленных материалов:

‰

‰ В нем дан обзор интерфейса командной строки Mac OS X (по всей книге) . В ча-Mac OS X (по всей книге) . В ча- OS X (по всей книге) . В ча-OS X (по всей книге) . В ча- X (по всей книге) . В ча-X (по всей книге) . В ча- (по всей книге) . В ча- сти V рассматриваются утилиты и подчеркивается разница между теми ключами утилит, которые используются при работе под управлением Linux, и теми ключами, которые используются при работе под управлением Mac OS X .

‰

‰ Добавлена глава о языке сценариев Perl (глава 11) .

‰

‰ Обновлено описание утилиты безопасного копирования rsync (глава 14) .

‰

‰ В части V рассмотрено более пятнадцати новых утилит, включая некоторые ути- литы, доступные только при работе под управлением Mac OS X .

Если вам приходилось читать книгу «A Practical Guide to Red Hat®

Linux®: Fedora™ and Red Hat Enterprise Linux» или «A Practical Guide to Ubuntu Linux®», вы можете заметить схожесть изложенных в них материалов с некоторыми материалами данной книги . В этих книгах очень похожи предисловия и главы, посвященные утилитам (речь идет о главе 3 данной книги, но не о части V), файловой системе, оболочке Bourne Again Shell (bash) и языку Perl . Вместе с тем, в данной книге есть главы, которых нет в вышеупомянутых книгах, — это главы, посвященные редакторам vim и emacs, оболочке TC Shell (tcsh), языкам AWK и sed, утилите rsync, а также часть V, в которой подробно описываются 97 наиболее востребованных утилит Linux и полезных программ Mac OS X .

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

‰

‰ студентам, изучающим предметы, в которых предусмотрено использование Linux или Mac OS X;

‰

‰ опытным пользователям, желающим исследовать все преимущества работы с Linux или Mac OS X из командной строки;

‰

‰ профессионалам, использующим Linux или Mac OS X в своей работе;

‰

‰ начинающим пользователям Macintosh, желающим узнать, что такое UNIX/Linux и почему все продолжают говорить об их важности, а также как пользоваться их преимуществами;

‰

‰ опытным пользователям Macintosh, желающим узнать, как воспользоваться всей мощью UNIX/Linux, лежащей в основе Mac OS X;

‰

‰ пользователям UNIX, желающим применить свое мастерство работы с UNIX к среде Linux или Mac OS X;

‰

‰ системным администраторам, нуждающимся в более глубоком понимании Linux или Mac OS X и доступных им инструментальных средств, включая оболочку bash и язык сценариев Perl;

‰

‰ студентам, изучающим компьютерные дисциплины, осваивающим операционную систему Linux или Mac OS X;

‰

‰ программистам, которым нужно разобраться в программной среде Linux или Mac OS X;

‰

‰ техническим специалистам, желающим постичь основы Linux или Mac OS X .

Новое в этом издании

Похожие источники информации

Круг читателей

(13)

«Linux . Администрирование и системное программирование» позво- ляет всецело усвоить вопросы использования Linux или Mac OS X из командной строки . Независимо от уровня ваших исходных знаний, данная книга предлагает сведения, необходимые в вашей практической деятельности . Прочитав эту книгу, вы поймете, как использовать Linux/OS X, а содержимое книги послужит цен- ным справочником на многие последующие годы .

Для систем Macintosh всегда было доступно огромное количество свободного программного обеспечения . К тому же большую активность проявляет сообщество пользователей условно-бесплатных программ для Macintosh . Представляя UNIX/

Linux аспекты, присущие Mac OS X, эта книга открывает для пользователей Macintosh огромные запасы свободного и дешевого программного обеспечения, применяемого в Linux и других UNIX-подобных систем .

В ДАННОЙ КНИГЕ ТАМ, ГДЕ ГОВОРИТСЯ О LINUX, ИМЕЕТСЯ В ВИДУ НЕ ТОЛЬКО LINUX, НО И MAC OS X

Операционная система UNIX является общим предком как для Linux, так и для Mac OS X.

Несмотря на существенные различия в графических пользовательских интерфейсах (GUI) этих двух операционных систем, их интерфейсы командной строки (CLI) очень похожи друг на друга и во многих случаях совпадают. В этой книге описываются интерфейсы командных строк как Linux, так и Mac OS X. Чтобы упростить чтение книги, термин Linux используется в ней применительно и к Linux, и к Mac OS X. Там, где между этими двумя операционными системами имеются различия, даются специальные пояснения.

Особенности данной книги

Структура книги рассчитана на легкое извлечение нужной информации в различных ситуациях . Например, ее можно прочитать от корки до корки, изучив с нуля все, что касается использования командной строки Linux . Но при наличии достаточного опыта в работе с Linux можно использовать эту книгу как справочное пособие: достаточно будет найти интересующую тему в оглавлении или указателе и прочитать обо всем, что ее касается . Или же перейти к описанию одной из утилит в части V, «Справочник команд» .

Можно также рассматривать эту книгу в качестве каталога Linux . В книге также имеется множество указателей на веб-сайты, из которых можно извлечь дополни- тельную информацию: считайте, что Интернет является своеобразным расширением данной книги .

Книга «Linux . Администрирование и системное программирование» обладает следующими особенностями:

‰

‰ Дополнительные разделы, позволяющие читать книгу на разных уровнях, воз- вращаясь к более сложному материалу после предварительной подготовки к его усвоению .

‰

‰ Врезки ВНИМАНИЕ, обращающие ваше внимание на те процедуры, при прове- дении которых можно легко ошибиться, и подсказывающие правильные действия, предупреждая возникновение проблем .

‰

‰ Врезки СОВЕТ, в которых даются сведения, позволяющие сэкономить время за счет применения более рациональных подходов, или приводится дополнительная информация, представляющая какую-нибудь пользу или интерес .

Преимущества данной книги

Особенности данной книги 13

(14)

‰

‰ Врезки БЕЗОПАСНОСТЬ, указывающие способы повышения безопасности си- стемы .

‰

‰ Веб-сайт www.sobell.com, поддерживающий книгу и включающий различные ис- правления, загружаемые примеры, приводимые в книге, указатели на полезные веб-сайты и ответы на упражнения с четными номерами .

‰

‰ Практические примеры, которые приводятся во всех частях книги и иллюстрируют изложенный в книге материал .

‰

‰ Множество полезных URL (интернет-адресов), ведущих на сайты, где можно полу- чить программное обеспечение и информацию .

‰

‰ Заключения для каждой из глав, выделяющие наиболее важные из рассмотренных вопросов .

‰

‰ Завершающие каждую главу упражнения для читателей, желающих отточить свое мастерство . Ответы на упражнения с четными номерами доступны на веб-сайте www.sobell.com .

‰

‰ Подробные описания важных инструментальных средств, созданных в рамках проекта GNUs, включая gcc, систему конфигурации и сборки GNU, make, gzip, и множество других инструментов .

‰

‰ Указатели, помогающие извлечь онлайн-документацию из множества источников, включая локальную систему и Интернет .

‰

‰ Подробные описания важных утилит командной строки, разработанных компанией Apple специально для операционной системы Mac OS X, включая diskutil, ditto, dscl, GetFileInfo, launchctl, otool, plutil и SetFile .

Содержание

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

‰‰Глава 1, «Добро пожаловать в Linux и Mac OS X» .

Здесь представлена предыстория появления на свет Linux и OS X . В главе дается историческая справка по Linux, краткая справка по ядру OS X Mach, объ-Linux, краткая справка по ядру OS X Mach, объ-, краткая справка по ядру OS X Mach, объ-OS X Mach, объ- X Mach, объ-X Mach, объ- Mach, объ-Mach, объ-, объ- ясняется, как проект GNU помог Linux на первых порах, и рассматривается ряд важных свойств Linux, отличающих эту операционную систему от других .

Часть I . Операционные системы Linux и Mac OS X

ВОЗМОЖНО, ОПЫТНЫМ ПОЛЬЗОВАТЕЛЯМ БУДЕТ ДОСТАТОЧНО ВСЕГО ЛИШЬ БЕГЛО ПРОСМОТРЕТЬ ЧАСТЬ I

Если с системой UNIX/Linux уже приходилось иметь дело, возможно, будет вполне достаточно просмотреть или пропустить некоторые или все главы первой части данной книги. Раздел

«Соглашения, используемые в этой книге» на с. 42, в котором объясняются принятые в книге соглашения по типографскому оформлению текста, а также раздел «Где найти документацию»

на с. 52, в котором указываются как локальные, так и удаленные источники документации по Linux, нужно просмотреть всем читателям.

(15)

В Части I дается представление об операционной системе Linux и начальные све-I дается представление об операционной системе Linux и начальные све- дается представление об операционной системе Linux и начальные све-Linux и начальные све- и начальные све- дения о работе с ней .

‰

‰ Глава 2, «Начнем!» .

Здесь объясняются соглашения по типографскому оформлению книги, по- могающие представит материал в более понятном виде и упростить чтение книги . Эта глава предоставляет базовую информацию и объясняет, как войти в систему, изменить свой пароль, дать системе Linux команду с помощью оболочки и найти документацию по системе .

‰

‰ Глава 3, «Утилиты» .

Здесь объясняется интерфейс командной строки и дается краткое введение в более чем 30 утилит, использующих данный интерфейс . Изучение этой главы позволяет понять, что такое операционная система Linux, и узнать, что собой представляют некоторые инструментальные средства повседневного пользования . В этой главе рассматриваются следующие утилиты:

y grep, осуществляющая поиск в файлах строки символов;

y unix2dos, осуществляющая преобразование текстовых файлов Linux в формат Windows;

y tar, создающая архивные файлы, которые могут содержать многие другие файлы;

y bzip2 и gzip, сжимающие файлы, позволяя им занимать меньше места на диске, и позволяющие вам пересылать их по сети с более высокой скоростью;

y diff, выводящая различия между двумя текстовыми файлами .

‰

‰ Глава 4, «Файловая система» .

Здесь рассматривается иерархическая файловая система Linux, включая файлы, имена файлов, путевые имена, работу с каталогами, права доступа, а также жесткие и символьные ссылки . Знание файловой системы позволяет организовать свои дан- ные таким образом, чтобы не тратить лишнее время на поиск нужной информации . Это дает также возможность делиться некоторыми своими файлами с другими пользователями, оставляя остальные файлы закрытыми от посторонних глаз .

‰

‰ Глава 5, «Оболочка» .

Здесь объясняется, как использовать свойства оболочки, чтобы ускорить и об- легчить свою работу . Все свойства, рассмотренные в этой главе, присущи как bash, так и tcsh . В этой главе рассматриваются следующие вопросы:

y использование ключей командной строки для изменения способов работы команды;

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

y перенаправление вывода команды в файл вместо экрана;

y использование каналов для отправки вывода из одной утилиты непосредствен- но другой утилите, чтобы все задачи решались с использованием только одной командной строки;

y запуск программ в фоновом режиме, чтобы можно было работать с одной за- дачей, в то время как Linux будет работать с другой;

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

Часть I. Операционные системы Linux и Mac OS X 15

(16)

Часть II . Редакторы

Во второй части книги рассмотрены два мощных классических Linux-редактора, рабо-Linux-редактора, рабо--редактора, рабо- тающих в режиме командной строки . Текстовый редактор vim, «улучшенная» версия широко распространенного редактора vi, а также популярный GNU-редактор emacs включены в большинство дистрибутивов Linux . Текстовые редакторы позволяют создавать и изменять текстовые файлы, в которых могут содержаться программы, сценарии оболочки, памятки и данные для ввода в программы форматирования текста . Поскольку администрирование системы Linux предполагает редактирование конфи-Linux предполагает редактирование конфи- предполагает редактирование конфи- гурационных файлов, имеющих текстовую основу, высокопрофессиональные Linux- администраторы имеют большой опыт по части использования текстовых редакторов .

‰

‰ Глава 6, «Редактор vim» .

Глава начинается с руководства по редактору vim, далее в ней объясняется, как используются многие расширенные функции редактора, включая специальные символы в строках поиска, универсальный и именованные буферы, параметры, маркеры и выполнение команд непосредственно из самого редактора . Глава за- вершается кратким справочником по командам этого редактора .

‰

‰ Глава 7, «Редактор emacs» .

Глава открывается руководством по работе с редактором, а затем в ней объяс- няются многие свойства редактора emacs, а также показывается, как используются клавиши META, ALT и ESCAPE . Дополнительно рассматривается привязка клавиш, буферы, а также полный поиск и поиск с последовательным уточнением, как с ис- пользованием символьных строк, так и с использованием регулярных выражений . Дается подробное описание взаимоотношений между Указателем, Курсором, Меткой и Областью . Также объясняется, как извлечь пользу из всеобъемлющих интерактивных справочных средств, доступных из редактора emacs .

Другие рассматриваемые темы включают вырезку и вставку, использование нескольких окон и областей, работу с режимами emacs — особенно с режимом языка C, который помогает программистам создавать и отлаживать C-код . Глава 7 завершается кратким справочником по командам редактора emacs .

Часть III . Оболочки

Часть III посвящена более подробному рассмотрению оболочки bash и введению в оболочку TC Shell (tcsh) .

‰

‰ Глава 8, «Оболочка Bourne Again Shell» .

Здесь повествование продолжается с того места, на котором оно остановилось в главе 5, при этом рассматриваются более тонкие аспекты работы с оболочкой . Для примеров в этой главе используется Bourne Again Shell — bash, оболочка, практи чески всегда используемая для системных сценариев оболочки . В главе 8 описывается:

y как использовать файлы загрузки, ключи и свойства оболочки для ее настройки;

y как использовать управление заданиями для их приостановки и перемещения из активного в фоновый режим и обратно;

(17)

y как модифицировать и повторно выполнять команды, используя исторический список оболочки;

y как создавать псевдонимы для настройки команд;

y как в сценариях оболочки работать с переменными, созданными пользователем, и с переменными, являющимися ключевыми словами;

y как настраивать функции, аналогичные сценариям оболочки, но выполняемые значительно быстрее;

y как создавать и выполнять простые сценарии оболочки;

y как перенаправлять сообщения об ошибках, чтобы они попадали в файл, а не на экран .

‰

‰ Глава 9, «Оболочка TC Shell» .

Здесь описывается оболочка tcsh, и рассматриваются как общие для bash и tcsh свойства, так и те свойства, которые отличают одну оболочку от другой . В этой главе объясняется:

y как запустить tcsh и поменять оболочку, используемую по умолчанию на tcsh;

y как перенаправить сообщения об ошибках, чтобы они попадали в файл, а не на экран;

y как использовать управляющие структуры для изменения порядка выполнения сценариев оболочки;

y как работать с числовыми переменными и переменными массивов tcsh;

y как использовать встроенные команды оболочки .

Часть IV . Средства программирования

Часть IV посвящена важным средствам программирования, широко используемым при системном администрировании Linux и Mac OS, а также при создании программ общего назначения .

‰

‰ Глава 10, «Программирование оболочки Bourne Again Shell» .

Здесь повествование продолжается с того места, на котором оно остановилось в главе 8, рассматриваются особенности расширенного программирования обо- 8, рассматриваются особенности расширенного программирования обо-8, рассматриваются особенности расширенного программирования обо- лочки с использованием bash, подкрепляемые подробными примерами . В этой главе рассматриваются:

y управляющие структуры, такие как if…then…else и case; y переменные, включая вопросы их локальности;

y арифметические и логические (булевы) выражения;

y некоторые, наиболее полезные встроенные команды оболочки, включая exec, trap и getopts .

После усвоения основ Linux можно будет воспользоваться своим знаниями для создания более сложных и специализированных программ, используя в качестве языка программирования оболочку .

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

Часть IV. Средства программирования 17

(18)

используется рекурсия для создания иерархии каталогов . Во второй задаче раз- рекурсия для создания иерархии каталогов . Во второй задаче раз-рекурсия для создания иерархии каталогов . Во второй задаче раз- для создания иерархии каталогов . Во второй задаче раз-для создания иерархии каталогов . Во второй задаче раз- создания иерархии каталогов . Во второй задаче раз-создания иерархии каталогов . Во второй задаче раз- иерархии каталогов . Во второй задаче раз-иерархии каталогов . Во второй задаче раз- каталогов . Во второй задаче раз-каталогов . Во второй задаче раз- . Во второй задаче раз-Во второй задаче раз- рабатывается программа quiz, показывающая, как создается сценарий оболочки, взаимодействующий с пользователем, и объясняется порядок обработки данных в сценарии . (Примеры в части V также показывают многие свойства утилит, кото-V также показывают многие свойства утилит, кото- также показывают многие свойства утилит, кото- рые можно использовать в сценариях оболочки .)

‰

‰ Глава 11, «Язык сценариев Perl» .

Здесь дается представление о популярном языке программирования Perl, об-Perl, об-, об- ладающим весьма широкими возможностями . В этой главе рассматриваются:

y справочные средства Perl, включая perldoc;

y переменные Perl и управляющие структуры;

y обработка файлов;

y регулярные выражения;

y установка и использование CPAN-модулей .

На языке Perl написаны многие сценарии администрирования Linux-систем . После чтения главы 11 вы сможете лучше разбираться в этих сценариях, а также приступить к созданию своих собственных сценариев . Эта глава включает множе- ство примеров сценариев на языке Perl .

‰

‰ Глава 12, «Язык обработки шаблонов AWK» .

Здесь объясняется, как создавать программы, использующие довольно мощный язык AWK, фильтрующий данные, записывающий отчеты и извлекающий данные из Интернета . В разделе расширенного программирования описывается, как уста- новить двунаправленную связь с другой программой, используя сопроцессы, и как получить ввод по сети, а не из локального файла .

‰

‰ Глава 13, «Редактор sed» .

Здесь дается описание утилиты sed, неинтерактивного потокового редактора, который находит множество применений в качестве фильтра внутри сценариев оболочки . В этой главе рассматривается порядок использования буферов sed для написания достаточно простых, но мощных программ и дается множество при- меров .

‰

‰ Глава 14, «Утилита безопасного копирования rsync» .

Здесь рассматривается rsync, надежная утилита, копирующая обычный файл или иерархию каталога на локальной машине или между локальной системой и другой системой, подключенной к сети . По мере написания программ, эту ути- литу можно использовать для их резервного копирования на другие системы .

Часть V . Справочник команд

Система Linux включает сотни утилит . Главы 12–14, а также часть V предоставляют подробные примеры использования сотни наиболее важных утилит, с помощью кото- рых можно решить проблемы, не обращаясь к программированию на языке C . Для тех, кто уже знаком с системами UNIX/Linux, эта часть книги послужит весьма объемным и простым в использовании справочником . Для недостаточно опытных пользователей она послужит полезным подспорьем при усвоении предыдущих частей книги .

(19)

Хотя описания утилит, предоставленные в главах 12–14, а также в части V, даны в формате, похожем на тот, который используется в справочных страницах Linux- руководства (man-страницах), они намного проще читаются и усваиваются . Описания именно этих утилит включены в книгу потому, что они широко востребованы в по- вседневной работе (например, ls и cp), являются мощными средствами, особенно полезными в сценариях оболочки (sort, paste и test), помогают работать с системой Linux (ps, kill и fsck) или позволяют связываться с другими системами (ssh, scp и ftp) . Описание каждой утилиты включает исчерпывающее объяснение действий ее наи- более полезных ключей с указанием различий между ключами, поддерживаемыми при работе под управлением Mac OS X, и ключами, поддерживаемыми при работе под управлением Linux . Подразделы «Комментарии» и «Примечания» полны советов и приемов, позволяющих извлечь из применения утилит все, на что они способны . В подразделах «Примеры» показывается использование этих утилит в реальной жиз- ни, как в одиночку, так и совместно с другими утилитами с целью составления отчетов, суммирования данных и извлечения информации . Чтобы увидеть, насколько объем- ны эти примеры, обратите внимание на разделы «Примеры» для языка AWK (более 20 страниц в главе 12), для утилиты ftp (в ее описании в части V) и для утилиты sort (также в части V) .

Вспомогательные материалы

На личной странице автора (www.sobell.com) содержатся загружаемые листинги всех длинных программ, приведенных в данной книге, а также указатели на множество интересных и полезных сайтов, связанных с Linux и OS X, имеющихся во Всемирной паутине, перечень исправлений, ответы на все упражнения с четными номерами, а также дается приглашение на внесение уточнений, написание комментариев и вы- сказывание предложений .

Я беру на себя всю ответственность за любые ошибки и упущения, допущенные в данной книге . Если вы их обнаружите или просто захотите что-то прокомментиро- вать, поставьте меня в известность (mgs@sobell.com), и я внесу исправления в следу- ющее издание . На моей личной странице (www.sobell.com) имеется перечень ошибок и упоминания о тех, кто их обнаружил . Там также имеются копии длинных сценариев из данной книги и указатели на множество интересных веб-страниц, посвященных Linux .

Марк Собель (Mark G. Sobell) Сан-Франциско, Калифорния Вспомогательные материалы 19

Références

Documents relatifs

Но это не так: это означает только то, что вы не можете измерить это при помощи цифр.. Мы живем в обществе, где все подсчитывается: мы из-

EUR/RC68/10 Rev.1 предлагаемый набор показателей для ЕММ для ЦУР, политики Здоровье-2020 и Глобального плана действий по профилактике НИЗ и борьбе с ними на

Эти перемены подчеркивают необходимость наращивания кадрового потенциала для дипломатии в области глобального здравоохранения путем

12 представлена схема распределения государств-членов по количеству задач, напрямую связанных со здоровьем или имеющих отношение к здоровью (из 51 задачи), указанных

Вы новые, вы академики, вы ни во что не верите, а я верю в старый закон: кровь за кровь... Он точно ждал

То есть если че- ловек молодой, его не берут на работу не потому, что он молодой, а потому что у него нет какого-то нужного работодателю опыта.. А

Ребята, вы все пишете не о том, особен- но, те, кому "потусить не с кем, нечем заняться, скуч- но, грустно, тоскливо, пообщаться не с кем в деревне".

В нижнем бьефе ГЭС Енисей в зимнее время не замерзает на протяжении 100–300 км от плотины; влияние ГЭС на ледовый режим реки прослеживается