"Курс Молодого Бойца" :) Версия для печати   


(Не в конкуренцию San'у, но примерно о том-же)


Для начала...
--------------------
Границы: Я предполагаю что вы уже установили линух. Процесс установки - отдельная тема заслуживающая большого разговора, но с многими современными дистрибутивами вам понадобится только знать где у вас место на диске (нужно не чистое место на, скажем, c:\ , а именно место под раздел, кстати винда потом его не увидит) и на каком языке вы потом собираетесь говорить. Я не собираюсь, также, сильно углублятся, потом вам помогут man info howto (если набрать в командной строке "man xxx" то будет выведена страница руководства (manual) по xxx, если таковая есть) . Я просто хочу немного поддержать при обучении плаванию сразу на трехметровой глубине.

Что мы увидим установив линух и глядя на него в первый раз? Наверно первое - это приглашение авторизоватся, то что в виндос бывает не всегда, а если и бывает - то часто есть кнопка "отменить". Возможно при установке вы уже завели пльзователя, работайте от его имени (вообще можно сделать беспарольный вход и даже автологин при старте системы). Не работайте от root'а (администратора), это как защитный кожух на станке, там он нужен что бы попав в станок рукой - не повредить руку, а здесь - что бы случайно не повредить систему.


Диски
--------------------
После логина, скорее всего, мы увидим рабочий стол KDE (он пожалуй сейчас наиболее распространен). Осмотримся. Для начала наверно осмотрим срдержимое диска. В KDE это происходит с помощью некоего аналога IE, если у вас другая оболочка рабочего стола, и нет ничего подходящего - найдите любой терминал и попробуйте сказать mc - это аналог нортона (слышу как какой нибудь юниксоид сейчас гневно воскликнет - "какой mc, надо пользоватся командной строкой..." , это прийдет позднее). Одна из первых странностей - нет дисков a: b: c: ... z: , это по своему более красивое решение юникса - есть только одно дерево, все диски "монтруются"(подключаются) в какой нибудь каталог. Сменные носители традиционно монтируются в /mnt , например копакт диск - /mnt/cdrom , дисковод - /mnt/floppy , виндос - /mnt/Windows или /mnt/win_c . Собственно если вы имеете перед собой KDE, то может быть уже пробовали нажимать на значек CD-rom'а на рабочем столе, и может быть увидели при этом содержимое компакт диска. Давайте разберемся как это дело работает. В общем случае файловая система (диск) монтируется командой mount . Можно сказать mount [опции] /dev/[устроиство] /[точка монтирования] . Это долго и неинтересно, что бы от этого избавится - есть файл /etc/fstab , то что там прописано можно монтировать командой mount с указанием только точки монтирования. Но однако-же и это долго. Существует и от этого средство - автомонтировщик. При обращении к некоему каталогу он монтирует соответствующий диск (есть еще supermount, но я его не видел). Автомонтировщик управляется файлами /etc/auto.master и /etc/auto.tab . Правда после их изменения надо перезапустить сервис (перезагружатся не обязательно:). Теперь если вы видите на каталоге cdrom'а "замочек", или имеете какие нибудь другие проблемы - вы знаете на какие места обратить внимание. Надо еще добавить только что когда линух монтрует CD - он его запирает (это ни хорошо и не плохо, это так ), и отдаст только когда он будет отмонтирован. В отношении дискеты - ее запереть нельзя (в отличии от, скажем, MAK'овских), прежде чем вынимать дискету - убедитесь что она отмонтирована. Иначе все что вы на нее записали могло остатся в дисковом кэше. Правильные опции для win разделов - iocharset=koi8-r,codepage=866 . Дальше - man mount , man fstab .


Настройки
--------------------
Теперь предположим мы хотим поиграть с настройками системы. Может возникнуть вопрос - а где здесь реестр, или какой либо аналог? Тут я уже упомянул каталог /etc . Собственно это и есть, в некотором роде, аналог реестра. В этом каталоге хранится большинство настроечных файлов системы. Правда мы не сможем просмотреть некоторые файлы, для того что бы работать с системой (а нам ведь прийдется и писать туда), нам понадобятся права root (администратора, root - по английски - корень). Но завершать работу, и логинится от root'а совсем не нужно. Самый простой способ - найдите какой-нибудь терминал , и наберите su . Система спросит пароль, и вы получите административный доступ. Кстати если вам не понравился терминал (не нашли), можно нажать сочетание клавиш - Ctrl+Alt+F1 , и вы окажетесь в полноэкранном текстовом режиме. Обратно можно попасть нажав Alt+F7 , а Alt+F1 - Alt+F6 это виртуальные консоли с которыми можно одновременно работать, соответственно переключаясь. Но что мы будем там редактировать? Если мы еще не знакомы с системой - трудно вот так взять и что-то править. В том-же KDE - вы уже могли заметить такой удобный центр управления, так вот - это не совсем оно. Сие удобство имеет отношение только к KDE. У человека "заглянувшего на огонек" с винды наверно тут же возникнет вопрос - а в чем, собственно, разница? Это очень интересный вопрос. В виндосе - там и окна - виндос, и операционная система - тоже виндос. Здесь разделены система, графическая система, и оболочка рабочего стола (не путать с оболочкой командной строки). Это, опять же, ни хорошо и не плохо. У этого есть и плюсы и минусы. Так вот KDE - это оболочка, верхний слой. И даже настройки графической системы (иксов, X window sistem, пересильте привычку и не говорите икс виндоС, буквы с - нет) уже за пределами KDE.

Хорошо операционка и графическая система - различаются. Но чем последняя отличается от KDE? Если вы к примеру установили кроме KDE еще и IceWM, то при старте скорее всего вы можете выбрать "тип сеанса(сессии)". Попробуйте посмтореть на IceWM. Главное отличие - работает на порядок быстрее. Если у вас не самая мощная машина (что, впрочем, понятие сильно относительное), то вполне может быть что скоро вы перейдете именно на него (а есть еще и другие, и некоторые сильно непохожи на виндос). Кстати "приложения KDE" - безусловно запустятся и отсюда.

Вернемся к настройке системы. Есть две программы - linuxconf (RedHat styled) и DrakConf (Mandrake styled) предназначенные для этого (обе имеют как графический, так и текстовый интерфейс). Впрочем есть еще довольно много программ поменьше, для того что не поместилось в эти. А можно еще и руками, и очень скоро вы найдете что какие-то вещи быстрее и проще делать именно руками.

Еще несколько программ настроек :

mouseconfig ( mousedrake )

sndconfig

Xconfigurator ( XFdrake )

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


Интерфейс
--------------------
Рассмотрим непосредственно различия операционной, графической системы и десктопа (пусть это пока чисто академический опыт, понимание этого пойдет на пользу). "Закройте приложения, сохраните несохраненные данные" :) , мы уже пробовали переключатся на консоль (fullscreen textmode), пойдемте туда опять... Ctrl+Alt+F1 , вы видите login . Заходите от root (это понадобится для нашего эксперимента), и наберите init 3 .Может быть что-то произошло, может нет, но по крайней мере ничего существенного. Переключаемся обратно в иксы (Alt+F7)- ан нет, этого добра уже нет. Мы сменили так называемый runlevel, графическая система поднимается при старте на 5-м runlevel'е, а на 3-м ее надо запускать вручную (командой startx, попробуйте). Соотвественно вернуть как было - init 5 . Статовый runlevel указывается в файле /etc/inittab , там-же есть их описания, и есть еще несколько интересных вещей. С консоли (без всяких иксов) кстати можно делать довольно много вещей, вплоть до - смотреть кино.

Теперь обратим внимание на различие "графической системы" и "графического интерфейса". Вообще графическую систему (иксы) можно запускать и вообще без интерфейса, например после старта иксов запускается одно приложение (quake например, хотя есть и консольный вариант кваки). Но для нас это пока тоже не очень интересно, на практике пока будет иметь значение какой тип сеанса вы выберете при логине. Но если вы не поставили никакой рабочей среды кроме KDE, то выбора и не будет, остается поставить что нибудь еще, вот кстати и повод поговорить об установке программ.

К этому мы сейчас вернемся, а пока закончим с "рабочими столами". Выбор такового будет определятся разными вещами. Мощностью компьютера, какой из них больше понравится, потребностью в комфорте. Сиюминутным настроением. :)

Итак :

KDE - самый пожалуй комфортабельный, и самый тормозной :) .

gnome - полегче чем предыдущий, известен легкой нестабильностью :) , красивый по своему (конструктивно).

IceWM - насколько мне известно - самый легкий. В связи с этим - не без ограничений, но достаточно удобный, и довольно распространен.

WindowMaker - этот (и следующий) - все что осталось от проекта NeXT. Внешним видом от винды отличается кардинально . Довольно удобен (хотя и непривычен в связи с предыдущим замечанием). Насколько мне известно - один из самых распространенных.

AfterStep - внешне похож на предыдущий, но немного понавороченней, и потяжелее.

Enlightment - о нем я мало что знаю. Пользуются им, вроде и хвалят.

blackbox - "аскетичный"

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

fvwm - старый, уважаемый, десктоп. Имеет своих приверженцов. В общем это все что я о нем знаю.

twm - классика. В некоторых случаях имеет смысл его использовать, и во всяком случае любопытно посмотреть "как это было". Вряд-ли вы им будете пользоватся.



Установка программ
--------------------
Но перечислил я тут много, а установлен у нас пока только KDE. Попробуем это дело поправить. Итак как устанавливать программы в линуксе? Вообще достоинство открытых систем - что программы распространяются в исходных текстах на си, и их можно скомпилировать самому. Обычно это делается так: из каталога с исходниками дается каманда ./configure , затем make , и затем - make install . Но я, признаюсь, компилировать так и не научился, а живу довольно комфортно. К счастью программы достаточно часто распространяются в уже скомпилированном виде. Готовые к запуску бинарники как правило собраны в файл, который должен быть распакован и установлен специальной программой. Самый распространенный случай - это rpm пакет, rpm = RedHat Package Manager. Им пользуются практически все дистрибутивы. Только у дебиана свой формат пакетов - deb . Может быть есть еще какие-нибудь программы управления пакетами, я о них не знаю.

Почему надо специальное средство что бы поставить программу? Здесь программа не копируется вся в какой-то один каталог а раскидывается по всему дереву: исполняемые модули - в /bin , /usr/bin , библиотеки - в /lib , /usr/lib , документация - в /usr/man , /usr/doc , разделяемые файлы - в /usr/share . А поскольку есть вероятность что мы захотим эту программу потом убрать - нужна соответственно какая-то база данных. Вот rpm ее и ведет.

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

Как работать с rpm ? Руками это делается следующим образом: rpm -i [/path/]filename.rpm , то есть если пакет лежит в текущем каталоге - добавлять путь - необязятельно. Здесь -i означает install, соответственно удалить -e то есть erase. Причем когда ставишь - надо указать полное имя файла, а когда удаляешь - название программы (в общем случае - имя файла с выброшенными суффиксами). Если данный пакет зависит от других - вам будет сказано каких файлов ему не хватает. Если вы не нашли в каком пакете нужные файлы - вы можете попробовать опцию --nodeps (не проверять зависимости), но при этом установленная программа может и не заработать.

Есть и более продвинутая система управления пакетами. Она так и называется - apt , advantage package tool (продвинутый инструмент для пакетов). Этому достаточно сказать - "а поставь ка мне вот эту прогу" (apt-get --install progname), он немного подумает и скажет "к этой надо поставить еще ту и вон ту, скачаю я при этом столько-то, и на диске будет исползовано столько-то. Начинаем?". Но естественно у него тоже есть ограничения, ему нужно указать источники (ftp, CD-rom), и если программы нет в его списке - то ставить ее он не может. Эта полезная вещь пришла из дебиана. Вначале это было только там, но теперь используется еще в некоторых дистрибутивах.

Ну и естественно у всего этого хозяйства есть графические FrontEnd'ы. Вообще может так случится что вы долго и не узнаете про то как ставятся программы, а просто в KDE будете кликать по файлу в виде пакетика, он спросит вас пароль и поставит его.


Файлы
--------------------
Надо наверно сказать пару слов о файлах в юникс системах. В win тип файла определяется расширением, оно имеет только три знака, файл имеет несколько атрибутов. В юникс расширение может иметь сколько угодно знаков (и самих расширений может быть сколько угодно), файл является скрытым если название начинается с точки, и исполняемым (!) - если установлен соответствующий атрибут (понятий "exe-com" не существует).

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

read write exec

user 1 1 0

group 1 0 0

other 1 0 0

Соответственно, что бы этот файл стал исполняемым - надо добавить атрибуты исполняемости. Есть еще атрибут который называется suid bit, при запуске программы она работает с правами запустившего ее, если установлен suid bit - она запускается с правами того кому принадлежит.

Надо сказать еще об одной разновидности файлов (да и эти - не последние, но дальнейший экскурс по файловой системе - самостоятельно). Есть такой каталог - /dev , в нем лежат файлы через которые система обращается к устройствам. Так напрмер дискета - это /dev/fd0 , а первый диск на первом контроллере ide - /dev/hda , разделы на этом диске соответственно - /dev/hda1 , /dev/hda2 ... Так же там лежат символические ссылки - /dev/mouse , /dev/cdrom , /dev/modem , что бы проще было указывать программам соответствующие устройства.


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

df - DiskFree, показывает смонтированные разделы, и насколько они использованы.

free - показывает использование памяти и swap'а

du - DiskUsage, использование диска. Запущенная без параметров может работать долго :) , потому что будет считать от корневой директории. Лучше использовать du [dir] , например du . (точка означает текущий каталог).

locate - поиск. Классическая команда find более гибкая , но если надо только найти файл - locate пожалуй удобней. Она ищет по базе данных (которую надо соответственно создать, в разных версиях - по разному), и за счет этого - практически мгновенно

chown сменить владельца файла. Если вам надо сменить принадлежность каталога со всем содержимым - то можно сказать chown -R владелец:группа file

mc - аналог нортон коммандера


Старт
--------------------
Еще одна интересная вещь, которую я не могу пропустить - старт системы. В виндосе есть autoexec.bat и config.sys, что управляет загрузкой здесь? В основном - это содержимое /etc/rc.d . В /etc/rc.d/init.d лежат скрипты управляющие работой сервисов (демонов). В /etc/rc.d/rc0.d - /etc/rc.d/rc6.d лежат ссылки на эти скрипты (если ссылка начинается на s - демон стартует, если на к - kill - останавливается). Цифры 0 - 6 это номера runlevel'ов, из них 3 - нормальный запуск без поднятия иксов, 5 - после старта будут подняты иксы и вывешен графичесий логин.

Как управлять запуском демонов при старте системы? Что бы не заниматся этим вручную удобнее всего (по моему) воспользоватся программой ntsysv .

Кроме того обратите внимание на файл /etc/inittab . В нем тоже есть много интересного.

Все вышесказанное относилось к старту системы типа System V (5) . Есть еще bsd style , он несколько отличается, но не так принципиально как юникс - виндос.


В заключение
--------------------
И опять напомню основные источники информации. Это man , info , HowTo , и в последнюю очередь - это "правильно заданный" вопрос на форуме, чате, и т.д. (по поводу правильности вопроса - у Шекли есть хороший рассказ - "верный вопрос"... :) )

Удачи.

Опубликовал:
Дата: 31.07.2003
постоянный адрес статьи: http://linuxportal.ru/entry.php/P97_0_3_0/