2004 г.
Linux для пользователя
Виктор Костромин,
http://rus-linux.net/
Предисловие
Для кого эта книга?
Эта книга предназначена для активных пользователей персональных компьютеров. Поясню, что я имею в виду. На мой взгляд всех людей, которые каким-то образом связаны с применением компьютеров, можно разделить на программистов, администраторов и пользователей. Программисты создают программы, и о них мы здесь не говорим, как и о тех, кто изготавливает или собирает сами компьютеры. Администраторы (которых иногда называют системными программистами) вообще-то не пишут программ, они только устанавливают и настраивают программное обеспечение (разработанное другими), для того, чтобы пользователи могли работать за компьютерами. Администраторам приходится иногда создавать короткие программки, но в основном они пользуются теми средствами настройки и конфигурирования, которые заложены в программные средства их разработчиками. И, наконец, пользователи вообще не обязаны уметь настраивать программные средства, как и собирать компьютеры, они обязаны только уметь использовать свой компьютер для решения конкретных задач. В принципе пользователь может вообще не знать о том, что работой компьютера управляет операционная система. Ему достаточно уметь запускать одно конкретное приложение, которое он освоил, например, текстовый редактор (условно назовем такого пользователя "пассивным").
Но среди пользователей есть и такие, которые либо по собственной инициативе, либо по необходимости, вынуждены сами решать задачи администрирования своей вычислительной системы. Это может быть как домашний компьютер, для которого нет другого системного администратора, кроме самого пользователя, так и компьютер на работе. В последнем случае пользователь просто предпочитает не приглашать администратора при каждом затруднении, а самостоятельно пытается решить возникшие проблемы. Я не анализирую причин и побудительных мотивов, которые заставляют пользователя поступать таким образом. Важно только то, что человеку интересно или просто необходимо уметь устанавливать и настраивать программное обеспечение на своем компьютере, включая саму операционную систему. Именно таких пользователей я и называю "активными" (их часто называют "продвинутыми", но мне эта калька с английского режет слух). Можно было бы, наверное, найти и более точный термин, но в данном случае это не важно, поскольку далее настоящего предисловия это название я применять не собираюсь, а здесь вы меня, надеюсь, поймете правильно, учитывая приведенные разъяснения.
Итак, настоящая книга предназначена для "активных пользователей", к которым я отношу и себя. Предполагается, что читатель уже знает, что такое компьютер, и поработал с MS-DOS или MS Windows (уж если не версии XP или 2000, то хотя бы с Windows 95). Впрочем, я надеюсь, что книга будет полезна и начинающим системным администраторам.
О чем эта книга?
Если вы относитесь к категории "активных пользователей", то вы уже что-то слышали о классе операционных систем, объединенных общим именем UNIX. ОС этого класса имеют ряд преимуществ перед обычно устанавливаемыми на персональные компьютеры ОС типа Windows. И если вы действительно "активный пользователь", то для вас вполне естественно желание хотя бы попробовать, что такое UNIX. Linux как раз и позволяет удовлетворить такое желание, поскольку с одной стороны она относится к классу UNIX, а с другой — работает на персональных компьютерах на основе процессоров Intel (хотя сейчас уже существуют ее варианты и для других процессоров).
В этой книге как раз и рассказывается об установке и настройке программного обеспечения на IBM-совместимом персональном компьютере, работающем под управлением операционной системы Linux, и даже конкретнее, под управлением одной из "веток" этой операционной системы. "Ветки" Linux называют дистрибутивами, так вот речь в книге пойдет о версиях Linux, основанных на дистрибутиве Red Hat. Материал, излагаемый в данной книге, основан на моем опыте установки и работы с дистрибутивами Black Cat Linux версий 5.2 (именно с нее началось мое знакомство с Linux) и 6.02, Red Hat версий 6.0, 6.2, 7.1 и 7.2 (русифицированной), ASPLinux 7.1 и ALTLinux Junior 1.0 и 1.1. Все эти дистрибутивы основаны на Red Hat Linux, и поэтому имеют много общего.
Однако не надо думать, что речь в книге пойдет только о самой операционной системе и ее настройке. В конце концов, сама по себе ОС выполняет только служебные функции, обеспечивая управление аппаратной частью компьютера и запуск нужных пользователю приложений. Поэтому основная задача данной книги в том, чтобы описать процесс создания на вашем компьютере "удобной" для пользователя (для вас) рабочей среды, состоящей из набора необходимых для вас приложений и обеспечивающей выполнение стоящих перед вами задач.
Книгу можно условно разделить на две части. Первая часть (главы 1-15) — это непосредственные рекомендации, касающиеся различных аспектов установки и настройки операционной системы и различных приложений. Предполагается, что читатель только что установил ОС Linux из дистрибутива и осваивает ее. Я надеюсь, что, прочитав даже только эту часть книги, читатель сможет создать на персональном компьютере под ОС Linux удобную рабочую среду, сравнимую по возможностям с тем, что предоставляет ОС Windows 95 или Windows NT .
Вторая часть — это главы о внутреннем устройстве файловой системы, обновлении ядра и виртуальных компьютерах. Это те вопросы, которые могут показаться и неактуальными для начинающего пользователя. Но этот материал позволяет глубже понять устройство системы, и эффективно решить проблему взаимодействия с миром Windows. Не надейтесь найти во второй части ответы на все вопросы, которые у вас могут возникнуть, никакого систематического отбора материала для этой части не производилось.
Как возникла эта книга?
Мое знакомство с операционной системой Linux состоялось более двух лет назад (Примеч.1). Не то, чтобы меня сильно "достала" (как говорят многие приверженцы Linux) ОС Windows, просто я всю свою жизнь с большим интересом учился, осваивал что-то новое. Поэтому новая ОС привлекла мое внимание, и я установил ее на домашнем компьютере (вместе с уже стоявшими на нем Windows 95 и Windows NT 4).
Когда я стал устанавливать и настраивать Linux, практически ничего не зная об этой ОС в частности, и имея очень слабые знания по UNIX вообще, я, естественно, начал с чтения различных руководств и HOWTO-файлов. Как оказалось, источники эти хотя и многочисленны, но пользоваться ими новичку крайне неудобно. Во-первых, значительная часть написана по-английски. Хотя я и читаю по-английски, но не так свободно, чтобы не считать недостатком отсутствие русскоязычной документации. Получается примерно так же, как читать неразборчиво написанный от руки текст: прежде чем уловить смысл написанного, приходится затратить существенные усилия на то, чтобы просто разобрать (узнать) отдельные слова. Во-вторых, новичку, естественно, хочется, чтобы его "за ручку" провели через несколько первоначальных этапов. А вместо этого приходится (по крайней мере, мне пришлось) по крохам отыскивать в разрозненных источниках нужную подсказку. Так что примерно через месяц после начала экспериментов с Linux, пройдя несколько этапов по 2-3 раза, повторяя при этом свои ошибки, я начал кое-что записывать, конспектировать разные руководства и документацию. Эти конспекты оказались очень полезны для меня самого. Я неоднократно пользовался ими, когда мне приходилось заново переустанавливать систему (я тогда еще не знал, как можно по-другому выбраться из некоторых затруднительных ситуаций, в которые попадал опять же из-за недостатка знаний).
Через некоторое время Linux перебрался и на пару компьютеров на моем рабочем месте. Мои конспекты здесь снова очень пригодились. Ведь запомнить с одного-двух раз все действия по установке и настройке различных программ практически невозможно, тем более, что в Linux многие настройки производятся путем прямого редактирования конфигурационных файлов.
Потом я выложил свои конспекты в Интернет, на сайте http://linux-ve.chat.ru (Примеч.2) и получил некоторое число довольно благожелательных отзывов от начинающих пользователей Linux. Оно и понятно: я описывал методы решения как раз тех проблем, с которыми сталкивается каждый новичок. Поэтому я решил, что если издать эти конспекты в виде книги, у нее тоже найдутся читатели. Надеюсь, что я не сильно ошибаюсь.
Честно сказать, при подготовке книги меня очень воодушевлял пример книги В. Э. Фигурнова "IBM PC для пользователя". В свое время (которое как раз совпало с периодом, когда я осваивал компьютер), наверное, вся наша страна училась работать на IBM-совместимых компьютерах (помните PC/XT!?) именно по этой книге. Она появилась в ответ на насущнейшее требование времени и выдержала с тех пор множество изданий. Думаю, что аналогичная потребность в книге по Linux имеется сейчас (2002 год), поскольку эта ОС динамично развивается, приобретает все больше почитателей и имеет серьезные преимущества по сравнению с MS Windows 95/98. Поэтому я, следуя примеру В. Э. Фигурнова, постарался отобрать весь самый необходимый для освоения Linux материал, систематически его изложить, чтобы начинающему пользователю было удобно с ним работать. Не думаю, что я достиг идеального варианта в выборе материала, поэтому с благодарностью приму все замечания и пожелания читателей на эту тему (как и любые другие замечания), с тем, чтобы учесть их в дальнейшей работе.
Типографские соглашения
Практически в каждом разделе книги приводятся какие-то примеры команд или сообщений, выдаваемых системой. Если речь идет о графическом режиме, то обычно приводится снимок экрана. Если же пример касается работы в текстовом режиме, то он выделяется шрифтом Courier — вот так:
[root]# sfdisk -l -x /dev/hda
Disk /dev/hda: 784 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/hda1 * 0+ 189 190- 1526143+ 6 FAT16
/dev/hda2 190 783 594 4771305 5 Extended
Тем же шрифтом Courier выделены все упоминания команд и утилит Linux, встречающиеся в тексте.
В качестве приглашения оболочки в примерах используется строка [root]#, если команда должна выполняться от имени пользователя root, и строка [user]$, если команда может выполняться от имени обычного пользователя.
Если говорится о том, что надо нажать какую-то клавишу, то название клавиши (точнее, то обозначение, которое нанесено на клавише) заключается в угловые скобки: <Enter>, <Esc>, <Ctrl>, <Alt>, <A>, <S> и т. д. Если должны быть нажаты одновременно несколько клавиш, то обозначения отдельных клавиш соединяются знаком + : <Ctrl>+<Alt>+<Del>, <Ctrl>+<X>. Если же нужно последовательно нажать несколько клавиш или соответствующих комбинаций, то разделителем будет служить запятая: <Ctrl>+<X>, <C> или <Esc>, <5>.
Отдельно нужно сказать о клавише <META>, которая часто упоминается в разных HOWTO и руководствах, а также используется в некоторых приложениях, например, редакторе Emacs. Говорят, такая клавиша была на старых клавиатурах UNIX-компьютеров, поэтому она и используется в UNIX-системах. Однако на PC-клавиатурах такой клавиши нет, и ее приходится эмулировать. В консоли вместо <META> Вы можете использовать клавишу <Alt>. В системе X Window (в графической оболочке) это может не сработать. Поскольку <META> — это клавиша-модификатор, то она упоминается обычно, когда требуется нажать комбинацию <META> с какой-то другой клавишей. В таких случаях надо нажать клавишу <Esc>, отпустить ее, после чего нажать вторую требуемую клавишу. Но все сказанное относительно <META> надо иметь в виду, когда вы будете читать HOWTO и прилагаемые к программам руководства. В этой же книге я постараюсь корректно указывать, какие комбинации надо набирать на клавиатуре PC.
Ссылки на литературу и источники в Интернете сведены в Приложение в конце книги (мне думается, что так их легче отыскать в процессе чтения). Однако нумерация ссылок производится в рамках каждой главы отдельно. Поэтому в тексте ссылка указывается с указанием на конкретный раздел приложения: [П12.7].
Благодарности
Эту свою книгу я хотел бы посвятить своим родителям: Костромину Алексею Гордеевичу и Костроминой Лидии Ермолаевне. Мама уже не увидит ее, а у отца еще есть шанс. Конечно, они не смогли бы покритиковать или похвалить ее содержание, но именно благодаря той привычке к труду, которую они во мне воспитали, эта книга может увидеть свет.
Я изучал Linux в основном по документации и различным книгам и статьям. Авторам этих руководств я очень благодарен, но хочу сразу принести свои извинения тем из них, материалы которых я использовал в данном руководстве без явной ссылки. Как уже было сказано, первоначально я просто конспектировал документацию и различные интернет-источники. При этом я не очень заботился о ссылках, был бы материал интересен и полезен (ведь первый вариант этих заметок создавался для себя). Впоследствии я пытался восстановить ссылки, но, боюсь, мне это не везде удалось.
Черновой вариант книги я послал нескольким своим заочным (по контактам в Интернете) знакомым и очень благодарен им за те замечания, которые они высказали. Особенно мне хочется отметить Романа Сузи, который прислал множество замечаний и предложений по улучшению содержания. Я понимаю, какой огромный труд пришлось ему проделать, чтобы прочитать (и не бегло) более 500 страниц текста и прокомментировать этот текст, и поэтому выражаю ему свою искреннюю признательность. Я старался учесть и те замечания, которые были присланы читателями чернового варианта книги, размещенного в Интернете (в частности С. Воеводиным).
Большую помощь в работе над книгой мне оказали и сотрудники издательства "БХВ Петербург" (ведь эта книга — первый мой опыт работы с издательством). Всем им большое спасибо.