Linux Corner #1





introduction

articles


КPOBb te4et..
Creative Down
Chill..
Dnevnik Gubnyh
Infernal Flame
IRCZlo
Kazantip '98
Litestep
MSX Culture
Parashoot
SceneUp!
Underground
One day..
Virus inside me
Harmed

interview

Catbones
God Among Lice
Jazztiz
Encore
Nixus
Mutant

lits

Bound
Harmless
Manifesto
Mirage
Nika Bathen 95-97
Alka
Allegory
An other side

tutorials

Textmode Art FAQ
Inet Couriers
NukeM3
MegaDemos Review
Drugz Corner 1
Drugz Corner 2
Linux Corner 1
Linux Corner 2
Linux Corner 3
Linux Corner 4
Linux Corner 5
Linux Corner 6
RTM

download
feedback

home

1. Introduction:
Daddy, what da fuck all this shit is about?

Linux corner, huh? Похоже, это про UNiX. Так точно, про него родимого. Данный раздел HaRm'a посвящен этой kick-ass системе и различным аспектам, связанным с ее использованием. Возможно, здесь появятся и статьи про FreeBSD, как еще одну мощную PC-UNiX систему. Статьи не претендуют на полноту и абсолютную точность содержанию, они не являются единственно правильными вариантами решения проблем. Как говорится, No warranties.

Ok, если ты решил прочитать эту рубрику, то ,вероятно, у тебя уже установлен Linux или ты собираешься это сделать. Одну вещь я хотел бы сразу сказать: если ты считаешь себя UNiX/LiNUX wizard'ом, то, скорее всего,ты не найдешь здесь много интересного для себя, в таком случае почему бы тебе не попробовать написать что-нибудь интересное для других и прислать свою статью в редакцию HaRm'a ? Если ты недавно начал работать с этой замечательной системой, то здесь ты найдешь несколько интересных хинтов, которые, возможно, сделают твою жизнь легче. По крайней мере,я на это надеюсь :)

Часть материалов основана на различных FAQ'ах, HOWTO, статьях из Linux Gazette и на собственном скромном опыте. Если эта рубрика найдет своих почитателей, то она станет постоянной. Так что пишите письма.

2. For beginners:
- Daddy, why should I use Linux? I love Windows.
- Do it or I'll devour your empty brains...

2.1 Что такое Linux? Я не буду писасть стандартные фразы из FAQ'ов про то, что это Unix-clone система, разработанная Linus Torvalds'ом и тасячами людей по всему миру,и так далее в таком стиле. Linux - это просто еще одна операционная система. Пытливый читатель спросит меня: "Так какого сакса мне нужна еще одна система? Я думал это такое приложение для Windows'95. У меня стоит Windows'95-она такая красивая и все умеет." Если у тебя возникли такие мысли, то вообще странно, что ты читаешь HaRm... Если нет, то с тобой все Ok :)

Ладно, если коротко, Linux - это Unix для Intel-PC. Несколько важных вопросов, которые возникают при желании установить новую операционку это:

- Какое железо ей нужно
- Какие девайсы она поддерживает
- Как много для нее написано софта
- Есть ли поддержка Dos/Win

1. Железо - первая версия Unix'a, если я не ошибаюсь, занимала 11 Кб. С тех пор требования немного повысились. Сейчас, чтобы побаловаться с Linux'ом потребуется 386, 2 Мб RAM и флоп. Для начала неплохо. Естественно, что с такой конфигурацией много не сделаешь. Реально можно работать на четверке с 8-ю метрами. Чтобы валяться от радости хорошо бы иметь P100/32/560/2. Обычная конфигурация в наше время.

2. Девайсы - поддерживается большинство, так сказать, "обычных" девайсов :) Как написано на боксе со Slackware'96 : Поддерживается большинство Intel PC железа, все CD-ROM'ы, sound карты, ethernet и мыши. Естественно, что чем экзотичнее девайс, тем меньше вероятнность его поддержки, однако драйвера для этих девайсов переодически появляются и их число постоянно растет. Кроме того, Linux поддерживает symmetric multi-processing ( до 16 процов ) Есть ядра заточенные под 486, Pentium и Pentium Pro.

3. Софт - софта написано много. Как-никак, Unix'у уже пошел 3-й десяток. Особенно приятно в Unix'ах то, что люди, пишушие софт,не зажимают исходники, а если учесть тот факт, что почти все пишется на С, то проблем с софтом практически нет. Если чего-то нет, то это переносится с других платформ. Есть такая вещь, как Linux Software Map - список известного софта, работающего под Linux'ом. Не очень свежая версия которого занимает у меня 1.6 Мб. Этот список постоянно обновляется.

4. Поддержка Dos/Win - если все, что тебе нужно - это набивать текста в WinWord'e, то скорее всего, Linux тебе просто не нужен. Логичнее для этого использовать Windows. Существует эмулятор Windows для Linux/X-window, (Wine), но он находится в довольно зачаточном состоянии,да и сама мысль работать с Win-приложениями под Linux'ом мне кажется кощунственной :) Насчет поддержки ДОС. Есть неплохой эмулятор dosemu. Под ним будут работать большинство досовский прог. Даже некоторые игрушки. Кстати, об игрушках. Под Linux'ом есть Doom и Quake :)

2.2 Installation:
- Daddy, how do I install Linux ?
- As usual, sucker...

Инталяция Linux'a не представляет особых сложностей. Конечно, если ничего кроме "супер-современной мощной системы" Windows'95 ты в своей жизни не ставил, а сочетание букв 'fdisk' вызывает у тебя панический ужас, но ты все же решил поставить Linux ( what for? ), то скорее найди человека, который это уже сделал и пусть он сам мучается.

Процесс инсталяции не особенно отличается в существующих поставках Linux'a. Я буду рассказывать про SlackWare'96. Данная поставка представляет из себя бокс с 4-мя дисками. Один инсталяционный, на других содержатся копии Linux архивов с ftp site'ов и sunsite.unc.edu и tsx11.mit.eu. ( Да, я купил себе Linux, потому как считаю, что лучше иметь родной бокс, чем пропить эти же деньги :)

Для этой поставки есть два варианта установки. Бездисковая ( прямо с сидюка ) и с двумя загрузочными дисками. Первый вариант у меня не пошел, поэтому я бы рекомендовал второй.
Для инсталяции потребуется 2 диска на 1.44. Запускаем ( лучше из ДОС'a ) view.exe. Выбираем директорию bootdsks.144/ Дальше, если на машине установлен SCSI-контроллер выбираем директорию scsi-bat/ иначе ide-bat/. Затем надо выбрать ядро в зависимости от железа ( все ядра поддерживают IDE/CD-ROM'ы),в основном это относится к не-IDE CD-ROM'ам. У меня стоит Sony CDU 31/33a , поэтому я выбрал себе ядро cdu31a.i. Дальше вставляем диск и ждем пока на него будет перенесено ядро.

После этого необходимо сделать root-disk. Выбираем директорию rootdsks/

Здесь надо отметить, что Linux можно ( читай "нужно" ) ставить в отдельный раздел, также необходимо отвести еще один раздел для свопа. Но его (Linux) можно поставить и на существующий FAT раздел. В результате чего на диске получится директория \LINUX в которой и будет находится вся система. После чего Linux можно загружать из ДОС'a ( какой ужас :) при помощи loadlin.exe. Такой тип инсталяции называется ( я называю :) UMSDOS. Но сразу предупреждаю, что это только для крайнего случая. Нормально работать можно лишь при установке на родную файловую систему.

Так вот, нам нужно выбрать root-disk. Если не заниматься ерундой с UMSDOS и если не нужна поддержка PCMCIA ethernet карт, то нужно выбрать COLOR.GZ. Вставить диск и ждать пока он сделается.

Теперь, когда диски готовы, надо подумать о свободном месте :) Хотя об этом думать нужно всегда, но теперь это особенно важно. Официально минимальное требование к диску - 40 Мб. Понятно, что это совершенно несерьезно. Кроме того, потребуется еще место под своп. Миниимальный рекомендуемый размер - где-то 32 Мб. Я себе сделал 50. Это для свопа. Для более-менее полной инсталяции я бы посоветовал отвести раздел порядка 300 и более Мб.

Ставить Linux можно на любой физический диск. Теперь, когда мы определились с местом, надо загрузиться с первой дискеты. На экране появится довольно много диагностической информации. После сообщения VFS: insert root floppy ... вставляем второй диск и ждем логина. Логинимся с именем root.

Все, теперь надо сделать разделы.
Если мы ставим Linux на первый диск, то пишем:
fdisk /dev/hda ( - для IDE'шных дисков )
fdisk /dev/sda ( - для SCSI'евых )
Если мы ставим на второй диск, то :
fdisk /dev/hdb ( - для IDE'шных дисков )
fdisk /dev/sdb ( - для SCSI'евых )
Посмотрим какие разделы у нас уже есть:
Using /dev/hda as default device!

Command (m for help): p

Disk /dev/hda: 64 heads, 63 sectors, 1023 cylinders
Units = cylinders of 4032 * 512 bytes

Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 1022 2060320+ 7 OS/2 HPFS

Command (m for help):

Отлично, полуосевый раздел - это хорошо. Кстати, Linux умеет жить с полуосевым BootManager'ом, но для того, чтобы BootManager грузил Linux, инсталяцию нужно делать несколько по-другому. Если это будет кому-нибудь интересно, я напишу об этом следующем номере HaRm'a. Я не ставил себе BootManager, а воспользовался загрузчиком от Linux'a (LILO). LILO, в свою очередь, умеет грузить OS/2. Вот так любят друг-друга OS/2 и Linux :)
Ok, теперь надо сделать раздел для Linux'a.

Command (m for help): n
Command action
e extended
p primary partition (1-4)

Выбираем p. Дальше вводим номер раздела.

Partition number (1-4): 2
( Раздел 1 уже есть /dev/hda1 )

Нас спросят с какого места начинается новый раздел ( предыдущий заканчивается на 1022 ), так что наш новый раздел будет начинаться с 1023.

First cylinder (1023-4096): 1023 ( На самом деле у меня весь первый винт отведен под полуось - это видно из Disk /dev/hda: 64 heads, 63 sectors, 1023 cyl и Linux у меня стоит на втором диске, но для примера это не важно )

После того, как мы ввели номер цилиндра, с которого начинается новый раздел, мы указываем размер раздела:

Last cylinder or +size or +sizeM or +sizeK (1023-4096): +500M

Теперь таким же образом сделаем раздел для свопа.

Command (m for help): n
Command action
e extended
p primary partition (1-4)

Выбираем p. Дальше вводим номер раздела.

Partition number (1-4): 3
( Разделы 1 и 2 уже есть )

Указываем размер: +50M

После этого нужно объяснить Linux'y какой раздел именно будет для свопа.

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 82

Все готово. Можно посмотреть, что получилось при помощи команды 'p'. Теперь сохраним все, что сделали командой 'w'.
Если есть желание грузить ДОС с помощью LILO, то надо помнить, что ДОС'овский раздел не должен начинаться за 1024-м цилиндром. Linux'y это ограничение по-фигу.
После того как разделы созданы, начинается сам процесс инсталяции. Запустим setup.

# setup

Появится менюшка, где мы первым делом выбирем ADDSWAP, чтобы сделать своп активным. Сетап найдет созданный своп раздел и предложит сделать его активным. Останется только согласится с этим, выбрав YES. После этого раздел будет предложено отформатировать раздел. Опять отвечаем YES.

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

Переходим к SOURCE. Мы ставим с CD-ROM'a. Если сетап не смог прочитать диск, то ,скорее всего, параметры сидюка не совпадают со значениями по-умолчанию. Для того, чтобы исправить это дело, загрузимся с дискеты и когда появится приглашение boot: , напишем -c После чего наберем команду visual. В появившейся оболочке найдем свой сидюк и установим нужные параметры. Хелп по клавишам есть на экране. Сохраним изменения и продолжим загрузку. Если после этого сетап опять не найдет сидюк, то мы просто достаем диск с Win'95 и матеря все эти Unix'ы ставим себе "единственную и истинную" OC. :))

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

После того как мы установили все, что нужно, осталось доставить LILO - Linux Loader. LILO - это bootmanager. Он умеет загружать Linux, Dos, OS/2. Наверное, его можно заставить грузить и другие системы, но я этого не проверял. Выбирем пункт установки LILO. Нам надо будет указать куда его ставить. Возможные варианты - это как MBR ( в /dev/hda - т.е LILO будет основным bootmanager'ом ) или в начало раздела с Linux'ом ( в нашем примере /dev/hda2 ) - это нужно, если мы юзаем другой bootmanager, например от OS/2. Ok, поставим его как MBR. После этого нас спросят какие мы хотим загружать системы. Первую, что мы выбирем будет дефолтовой. Необходимо указать раздел откуда загружать ( /dev/hda2 ) и задать метку, например 'linux'. Аналогично мы добавляем разделы Dos, OS/2.

Отлично. Выбираем пункт Install. Теперь, когда все готово, выйдем из сетапа и перезагрузимся. На экране должна появиться надпись

LILO

Нажмем SHIFT. Теперь необходимо выбрать какую систему загружать. Нажав TAB мы увидим список доступных для загрузки систем.

LILO boot:

Напишем linux. Ждем-с. И - вуаля!

Welcome to Linux 2.0.0

darkstar login: root
last login: Mon Jan 1 10:11:12 on ttg1
Linux 2.0.0.
You have mail.
darkstar: ~#

Вот теперь начинается самое веселье. Но, на этом я, пожалуй, остановлюсь. Нам потребуется сделать несколько последних штрихов в настройках, но об этом терпеливый читатель узнает в следующем номере HaRm'a :))

* * * 3. For advanced:
- Daddy, why do we have to hide from the police ?
- Because we use vi, son. They use emacs.

Ok, в этом разделе будут описаны небольшие полезные хинты для тех, кто уже более-менее освоился с Linux'ом. Ничего сверхнавороченого, просто небольшие советы. Если у тебя есть что-то интересное, чем ты хотел бы поделиться - you welcome. Если эти хинты для тебя покажутся очевидными, то не спеши флеймить, я знаю одного человека, который юзая Linux несколько недель не знал фичи, про которую я собираюсь написать ниже В любом случаи, flame > /dev/null. :)

* Какой шел ты юзаешь? Настоящие мужчины юзают /bin/bash :)) Да, некоторые люди явно страдают максимализмом. Например, я бы оторвал руки тому, кто дал файлу такое имя:

alt.spam_FAQ_or__Figuring_out_fake_E-Mail__26_Posts_._Rev_961119

Ну как, нравится? :) Мне тоже. Для того, чтобы бороться с такими именами bash имеет очень приятную фичу. Набираем несколько первых буков имени и нажимаем TAB. О-ла-ла! Если в директории нету файлов с похожими именами, то имя будет вставлено полностью, иначе до первого совпадения. Если совпадение есть, наберем еще пару символов и опять нажмем TAB. Эту фичу можно использовать для быстрого перехода по дереву директорий. cd /u+[TAB] - получаем cd /usr. В Midnight Commander'е вместо TAB'a используется ALT+TAB.

Если нажать два раза TAB можно увидеть список возможных вариантов имен. * Иногда требуется запускать Х-ы в 8-ми битных режимах, потом в 16-ти, а если захочется 32 ? Набивать каждый раз startx -- -bpp 16 утомительно. Сделаем проще: добавим в ~/.bash_profile следующее

alias x8='startx -- -bpp 8'
alias x16='startx -- -bpp 16'
alias x24='startx -- -bpp 24'
alias x32='startx -- -bpp 32'

Теперь осталось написать x16. Просто и со вкусом :) С помощью alias'a можно практически все заточить под свой вкус.

* Загляни в /etc/issue. Хммм. Что-то невзрачно. Почему бы тебе не скопировать в него что-нибудь поинтереснее. Например, лого этой статьи.

* Как насчет руссификации консоли? Уже? Тогда можешь поскипать этот хинт. Для остальных - Создадим скрипт следующего содержания:

#!/bin/bash
loadkeys /usr/lib/kbd/keytables/ru1.map
setfont /usr/lib/kbd/consolefonts/Cyr_a8x16
mapscrn /usr/lib/kbd/consoletrans/koi2alt
echo -ne 'ESC(K' # Здесь вместо ESC нужно вставить реальный ESC code. # CTRL+'V' затем 'Esc'
echo "Use the right Alt key to switch the mode..."

Назовем скрипт cyr. Не забудем сделать его выполнимым: chmod +x cyr

Осталось создать файл ~/.inputrc следующего содержания:

set meta-flag on
set convert-meta off
set output-meta on
Готово. Пущаем cyr и переключаемся по правому Alt'y.

* Есть желание хакнуть Linux ? Попробуй так: telnet 127.0.0.1 Только не надо сразу сносить все подряд. Все-таки это твоя же собственная машина :) Если серьезно, то эту приятную фичу можно использовать для отладки, например, своей Web-страницы.

Запустим в одной консоли или в x-terminal'e: httpd & ( Естественно, веб-сервер должен быть настроен )

На другой Netscape. В поле Location напишем 127.0.0.1

Вот мы и на нашей странице.

* Допустим, мы находимся в /usr. Перейдем в /var: #cd /var, а теперь напишем: #cd -
Ура! Мы опять в /usr. Пустячок, а приятно.

* Практически все провайдеры используют динамические IP адреса. Дано: дозвониться к провайдеру и установить PPP соединение. Решение: Напишем скрипт для dip'a. (ты ведь юзаешь dip?)

--------------------------------------------------------------------[CUt]---
   main:
   port  modem
   netmask 255.255.255.0
   send ATZ\r
   wait OK 3
   if $errlvl != 0 goto modemerr
   print .............. AutoDial procedure started .............
   print ................ Press Ctrl-C to abort ................
   dialsvr:
   send +++\r
   wait OK 3
   send ATH0\r
   wait OK 3
   print ................... Dialing 123-4567 .................
   send ATDP123-4567\r
   if $errlvl != 0 goto error
   wait BUSY 15
   if $errlvl == 0 goto dialsvr
   wait CONNECT 45
   if $errlvl != 0 goto dialsvr
   goto login
   login:
   print Waiting for login ...
   # Здесь надо вставить запрос от твоего провайдера
   wait Username: 15
   print Sending login name ...
   # Это мой логин
   send my_name\r
   if $errlvl != 0 goto error
   print Ok.
   print Waiting for password ...
   # Здесь тоже поправить
   wait Password: 15
   if $errlvl != 0 goto error
   print Sending password...
   # А это мой пароль
   send my_password\r
   if $errlvl != 0 goto error
   print Ok.
   print Waiting for dynamic addres...
   # Обычно после запроса имени и пароля провайдер выдает динамический
   # адрес в виде строки ...dynamic IP adress assigned is 123.456.789.000
   # Ключевое слово - 'is'. Если у тебя по-другому, то надо здесь подправить
   wait is  10
   if $errlvl != 0 goto error
   get $local remote 3
   if $errlvl != 0 goto error
   print Got the addres: $local
   # Это адрес провайдера
   get $remote 194.87.63.1
   get $mtu 1500
   default
   done:
   print Entering PPP mode.
   print Dynamic IP assigned by host is $local
   print Remote host connected is $remote
   mode PPP
   goto exit
   error:
   print PPP connection failed.
   goto exit
   modemerr:
   print Modem initializing failed.
   goto exit
   exit:

--------------------------------------------------------------------[CUt]---


Вот и все.

4. Closing words: - Daddy, is that all?
- Who knows... Time will tell.

Ну что ж, хватит на сегодня. Надеюсь, ты нашел здесь что-нибудь для себя полезное.

Death Lord
 


[c] HARM on-line      
1996-1999