Configuration HOWTO, v1.3.0, 15 апреля 1998 г.

Этот HOWTO написан для всех пользователей (soon be former?) DOS и Windows, которые решили перейти на Linux, свободный клон UNIX. Назначение этого документа - помочь читателю перенести его знания DOS и Windows на платформу Linux, равно как и научить переносить файлы и данные между этими ОС.

[Guido Gonzato, перевод: Ilgiz Kalmetev]

1. Введение

1.1 Почему этот HOWTO

Я уже инсталировал Linux на многих ПК и заметил, что современные дистрибутивы великолепны, но, как ни досадно, не имеют некоторых основных настроек. Большинство приложений будут работать сразу после установки, но некоторые все-же нет. Более того, я заметил, что одинаковые вопросы в c.o.l.setup задаются снова и снова.

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

Некоторые из приведенных здесь примеров зависят от установленного дистрибутива. У меня есть доступ только к  Red Hat и Caldera OpenLinux машинам, так что не принимайте мои советы как евангелие, если у вас  Slackware, Debian или другой дистрибутив. В любом случае читать документацию и HOWTO всегда полезно, таким образом совет у вас есть.

1.2 Что мы буде настраивать

Может быть бесконечное множество аппаратных конфигураций ПК, но мой опыт показывает, одна совершенно общая: ПК снабжен большим жестким диском (ЖД) разбитым на три раздела (один для DOS/Windows, один для Linux, один для swap), звуковая карта, модем, CD--ROM привод, принтер, мышь. Также все чаще встречается Zip-диск на паралельном порту.

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

А теперь, парни, закатывайте рукава.

2. Общая настройка системы

2.1 Клавиатура

Перво-наперво, как настроить клавиатуру. Если вы пропустили этот шаг во время инсталяции или изменили вашу клавиатуру, то вы должны:
  • выбрать подходящую раскладку клавиатуры из /usr/lib/kbd/keytables/; например, it.map определяет итальянскую раскладку;
  • отредактировать файл /etc/sysconfig/keyboard так, чтобы он содержал: KEYTABLE="/usr/lib/kbd/keytables/it.map";
  • чтобы установить скорость повтора и время задержки, добавьте следующую строку к /etc/rc.d/rc.sysinit или, если у вас Caldera, к /etc/rc.d/rc.boot:
    /sbin/kbdrate -s -r 16 -d 500  # или что вам нравиться
После следующей перезагрузки, клавиатура будет работать. Чтобы избежать перезагрузки и загрузить только таблицу символов, сделайте  cd /etc/rc.d/init.d и выполните команду ./keytable restart.

2.2 Ядро

IMHO (по моему скромному мнению - прим. пер.), следующий важный шаг - это сборка ядра, которое максимально подходило бы к вашей системе. Это очень легко сделать, но, в любом случае, внимательно прочитайте README файл в  /usr/src/linux/ или Kernel-HOWTO.
Заметки:
  • внимательно рассмотрим, что вам необходимо. Будет более продуктивным выбирать конфигурацию ядра, наложить заплатки и скомпилировать сразу все и для более широких возможностей, чем проводить переконфигурацию и перекомпиляцию каждый месяц; особенно это нужно учесть, если ваш Linux является сервером. Не забудьте включить поддержку для всего оборудования, которое вероятно может быть добавлено в будущем (например, SCSI, Zip, сетевые карты и т.п.);
  • если ваш ПК имеет процессор Cyrix, для улучшения производительности сделайте соответствующие заплатки. Информацию по этому вопросу можно посмотреть на http://www.linuxhq.com/patch/20-p0591.html ;
  • пользователи ноутбуков наверняка захотят улучшить удобочитаемость их LCD дисплея - сделайте для этого Noblink заплатку. Последняя версия называется noblink-X.X.tar.gz и доступна на  ftp://sunsite.unc.edu/pub/Linux/kernel/patches/console . Инсталируйте пакет, затем добавьте к вашему /etc/profile строку
    /usr/local/bin/cursor bgreen  # или другого цвета
  • снова для пользователей ноутбуков, если вы планируете использовать PCMCIA модем/факс НЕ компилируйте поддержку последовательного порта как модуль - встраивайте ее в ядро, иначе ваш PCMCIA модем не захочет работать;
  • помните, Linux не увидит вашу звуковую карту до тех пор, пока вы ее не настроите абсолютно правильно. Это легко в большинстве случаев, но не забудьте включить все опции (особенно /dev/dsp и /dev/sound);
  • если вы получили противные сообщения от modprobe, которые говорят, что некоторые модули не могут быть найдены, это означает, что ваш /etc/conf.modules нуждается в правке. Если вы не используете ipx и appletalk модули, добавьте следующие строчки:
    alias net-pf-4 off
    alias net-pf-5 off
  • чтобы сэкономить время при следующей переконфигурации и компиляции ядра, будет неплохо, если вы сохраните ваши настройки в отдельном файле и скопируете в надежное место.

2.3 Подвисание sendmail

В некоторых системах, sendmail подвешивает компьютер при начальной загрузке. Быстрое решение: проверьте содержит ли ваш /etc/hosts следующую строку
127.0.0.1 localhost
Смотри также пункт Имя машины.

2.4 Производительность жесткого диска

Производительность вашего жесткого диска можно существенно улучшить осторожно используя hdparm(8). Если ваш дистрибутив Linux его не содержит, то вы его можете найти на ftp://sunsite.unc.edu/pub/Linux/system/hardware; ищите файл с названием hdparm-X.Y.tar.gz.

Я не могу дать вам общий рецепт, поскольку многие детали зависят от типа вашего жесткого диска и его контролера. Как только вы рискнете пощупать вашу файловую систему, пожалуйста, тщательно изучите man до того как менять какие-либо опции. В простейшем случае, вы могли бы добавить следующую строку в ваш /etc/rc.d/rc.sysinit:

/sbin/hdparm -c1 /dev/hda  # предплагается наличие Linux на первом IDE диске
которая разрешает 32-битную поддержку I/O (E)IDE. Что касается `-m' ключа, то вот что написал мне автор hdparm Mark Lord:
(...) если в вашей системе используются компоненты последних нескольких лет, то все будет хорошо. Для более старых, *могут* быть проблемы (маловероятно). Действительно глючные чипы - это CMD0646 и RZ1000, *чрезмерно* используемые на 486 и (ранних) 586 материнских платах около 2-3 лет назад.

2.5 Zip-диск на паралельном порту

Чтобы использовать Zip-диск подключаемый к паралельному порту, вы можете использовать драйвер, поставляемый по умолчанию с последними (2.x.x) версиями ядра. Во время настройки ядра удостоверьтесь, что включена поддержка SCSI и  SCSI дисков (либо встроенная в ядро либо как модуль). Помните, что на одном и том же паралельном порту может быть конфликт между принтером и Zip-диском.

Zip-диски продаются уже форматированными на раздел /dev/sda4. Чтобы активизировать Zip, вам надо только сделать следующее

#~ chmod 666 /dev/sda4  # открыть всем доступ к Zip-диску
#~ insmod ppa
и Zip теперь можно монтировать как обычно (лучше записать последнюю строку в /etc/rc.d/rc.sysinit). Вы также можете иметь доступ к Zip-диску посредством mtools. Для этого добавьте к вашему /etc/mtools.conf следующую строку
drive z: file="/dev/sda4" exclusive
Имеется лучший ppa драйвер, чем стандартный - так что посмотрите на http://www.torque.net/~campbell.

2.6 Драйверы устройств

Устройства в /dev (или лучше, связи с нужными драйверами устройств) могут отсутствовать. Проверьте чему соответствуют ваши устройства мышь, модем и CD--ROM дисковод, а затем сделайте следующее:
~# cd /dev
/dev# ln -s /dev/cua0 mouse
/dev# ln -s /dev/cua1 modem
/dev# ln -s /dev/hdb cdrom
и, если хотите, сделайте chmod 666 к этим устройствам (не к связям, а к наличным устройствам!), чтобы сделать их полностью доступными каждому пользователю. Совет: в некоторых портативных компютерах устройство мыши будет /dev/psaux: примите это во внимание при настройке X11.

В добавление, если вы захотите сделать доступным флоппи-дисковод для не-root пользователей, выполните команду chmod 666 /dev/fd*. Это может вызвать проблемы безопасности, но я не знаю всех деталей. Принимаются комментарии по этому вопросу.

2.7 Приветствие при загрузке

Если вы хотите сделать собственное приветствие при загрузке системы, проверьте перезаписывает ли ваш /etc/rc.d/rc.local файлы /etc/issue и /etc/motd. и если это так, то вооружитесь редактором и вперед.

2.8 Имя машины

Использования комманды hostname new_host_name может быть недостаточно. Чтобы избежать ужасного подвисания  sendmail, сделайте следующие шаги:
  • отредактируйте /etc/sysconfig/network и измените имя машины в нем (например, new_host_name.localdomain);
  • отредактируйте соответственным образом /etc/HOSTNAME;
  • добавьте новое имя машины в /etc/hosts:
    127.0.0.1       localhost  new_host_name.locadomain

2.9 Мышь

gpm сервис полезен для вырезания и копирования в tty режиме, и для использования мыши в некоторых приложениях. Проверьте имеете ли вы файл /etc/sysconfig/mouse и что он содержит:
MOUSETYPE="Microsoft"
XEMU3=yes
Более того, вы должны иметь файл /etc/rc.d/init.d/gpm. Конечно проверьте, что эта конфигурация подходит к типу вашей мыши. Заметка: в некоторых портативных компьютерах (и не только портативных = прим. пер.) MOUSETYPE = ``PS/2''.

Для пользователей Caldera все что нужно сделать, так это добавить к /etc/rc.d/rc.boot строку:

/usr/bin/gpm

2.10 Точки монтирования

Удобно иметь точки монтирования для флоппи-дисков и других устройств. Например, вы можете сделать следующее:
~# cd /mnt
/# mkdir a: ; mkdir floppy ; mkdir cdrom ; mkdir win ; mkdir zip
Эти команды создадут точки монтирования для MS-DOS флоппи, ext2 флоппи, CD-ROM, DOS раздела и Zip.

Теперь отредактируйте /etc/fstab и добавьте следующее:

/dev/fd0        /mnt/a:         msdos           user,noauto 0 1
/dev/fd0        /mnt/floppy     ext2            user,noauto 0 1
/dev/cdrom      /mnt/cdrom      iso9660         ro,user,noauto 0 1
/dev/sda4       /mnt/zip        vfat            user,noauto 0 1
/dev/hda1       /mnt/win        vfat            user,noauto 0 1
Прим. пер. - чтобы все файлы не помечались как выполняемые и можно было читать и создавать
файлы с русскими именами рекомендую для файловых систем msdos и vfat проводить монтирование
со следующими параметрами:
/dev/fd0        /mnt/a:         msdos           rw,umask=111,gid=100,iocharser=koi8,noauto 0 1
/dev/hda1       /mnt/win        vfat            rw,umask=111,gid=100,iocharser=koi8,noauto 0 1
Конечно, вы должны использовать правильное устройство в первом поле записи. Для доступа к fat32 разделам есть заплатка к ядру и соответствующая информация по адресу http://bmrc.berkeley.edu/people/chaffee/fat32.html .

2.11 lilo(8) и LOADLIN

Многие пользователи используют как Linux так и DOS/Windows на их ПК, и, таким образом, во время загрузки компьютера хотят иметь возможность выбирать, какую систему использовать. Предположим, что /dev/hda1 содержит DOS/Windows, а /dev/hda2 - Linux.

Сделайте следующее:

~# fdisk
Using /dev/hda as default device!

Command (m for help):a
Partition number (1-4): 2

Command (m for help):w
~#
Это сделает Linux раздел загружаемым; это шаг можно выполнить командой activate если вы запустили LILO QuickInst, но это не захотело работать с моим дистрибутивом Red Hat.

Создайте основной файл /etc/lilo.conf:

boot = /dev/hda2
compact
delay = 50
# message = /boot/bootmesg.txt  # напишите ваше
root = current
image = /boot/vmlinuz  # загружает linux по умолчанию, поскольку записан первым
  label = linux
other = /dev/hda1
  table = /dev/hda
  label = dos
Теперь запустите /sbin/lilo и установка завершена. Если lilo настроился во время вашей инсталяции, все равно я вам настойчиво рекомендую прочесть эту документацию.

Для загрузки Linux из DOS/Windows без перезагрузки компьютера, поместите LOADLIN.EXE в директорию (на DOS разделе!), включенную в DOS пути; затем скопируйте ваше ядро в, скажем, C:\DOS\VMLINUZ. Приведенный .BAT файл загрузит Linux:

rem   linux.bat
smartdrv /C
loadlin c:\dos\vmlinuz root=/dev/hda2 r
Если вы используете Windows 95, установите свойства этого .BAT файла так, чтобы от загружался из MS-DOS режима.

Застрахуйте себя

Сделайте копию вашего MBR до инсталяции Linux - это может сберечь вам много сил и времени. Используйте restorrb (включенную в FIPS пакет) до инсталяции, или вы можете использовать Linux rescue флоппи-диск и выполнить команду:
rescue:~# dd if=/dev/hda of=MBR bs=512 count=1
далее сделайте как минимум две копии файла MBR на флоппи. Если вдруг случится непредвиденное, вы всегда сможете восстановить ваш старый MBR командой:
rescue:~# dd if=/mnt/MBR of=/dev/hda bs=446 count=1
предполагая, что диск с MBR примонтирован к /mnt. Как альтернативу можно использовать DOS rescue дискету и выполнить команду FDISK /MBR (прим. перевод. - по непонятным мне причинам это не всегда срабатывает - имею личный опыт. Коментарии приветствуются.)

2.12 Настройка принтера

Дистрибутивы Red Hat и Caldera имеют хорошую утилиту для настройки - printtool; Если вы не используете эти дистрибутивы, то для ручной настройки нужно сделать следующее.

Предположим у вас не-PostScript принтер, который вы хотите использовать для печати обыкновенного текста (например, исходники C) и PostScript файлов с помощью Ghostscript, который, предположим, уже инсталирован.

Настройка принтера требует нескольких шагов:

  • необходимо выяснить который из паралельных устройств есть принтер: выполните
    ~# echo "hello, world" > /dev/lp0
    ~# echo "hello, world" > /dev/lp1
    и заметьте который работает
  • создайте две директории для буферов:
    ~# cd /var/spool/lpd
    /var/spool/lpd/# mkdir raw ; mkdir postscript
  • если у вашего принтера есть эффект "лесенки" (в большинстве случаев для струйных принтеров), вам будет необходим фильтр. Попробуйте напечатать две строки
    ~# echo "first line" > /dev/lp1 ; echo "second line" > /dev/lp1
    если вы получите на принтере что-то в этом духе:
    first line
              second line
    то скопируйте приведенный скрипт в файл /var/spool/lpd/raw/filter:
    #!/bin/sh
    # Этот фильтр убирает "эффект лесенки"
    awk '{print $0, "\r"}'
    и сделайте его выполняемым: chmod 755 /var/spool/lpd/raw/filter.
  • создайте фильтр для эмуляции PostScript. Запишите приведенный фильтр в файл /var/spool/lpd/postscript/filter:
    #!/bin/sh
    
    DEVICE=djet500
    RESOLUTION=300x300
    PAPERSIZE=a4
    SENDEOF=
    
    nenscript -TUS -ZB -p- |
    if [ "$DEVICE" = "PostScript" ]; then
            cat -
    else
            gs -q -sDEVICE=$DEVICE \
                    -r$RESOLUTION \
                    -sPAPERSIZE=$PAPERSIZE \
                    -dNOPAUSE \
                    -dSAFER \
                    -sOutputFile=- -
    fi
    
    if [ "$SENDEOF" != "" ]; then
            printf "\004"
    fi
    (в этом примере предполагается принтер HP DeskJet. Поправьте соответственно вашему принтеру).
  • и наконец, добавьте следующие строки к вашему /etc/printcap:
    # /etc/printcap
    lp|ps|PS|PostScript|djps:\
            :sd=/var/spool/lpd/postscript:\
            :mx#0:\
            :lp=/dev/lp1:\
            :if=/var/spool/lpd/postscript/filter:\
            :sh:
    raw:\
            :sd=/var/spool/lpd/raw:\
            :mx#0:\
            :lp=/dev/lp1:\
            :if=/var/spool/lpd/raw/filter:\
            :sh:
Для более комплексной или экзотической настройки печати читайте Printing-HOWTO - это вам поможет.

Если вы используете printtool, проверьте чтобы GSDEVICE, выбранный Printtool, работал - не обязательно, что это лучшее для вашего принтера. Вы можете немного поэкспериментировать с файлом postscript.cfg; например, я изменил GSDEVICE с cdj500 на djet500 и теперь мой принер печатает намного быстрее.

3. Настройка приложений

Вот перечень файлов, которые мы будем настраивать: /etc/profile /etc/bashrc .bashrc .bash_profile .inputrc .less .lessrc .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc. .abbrevs.sl .joerc .emacs . Не добавляйте пользователей, пока вы не закончили настраивать вашу систему; вы можете положить общие файлы в /etc/skel.

3.1 bash(1)

Чтобы определить поведение bash, нужно редактировать следующие файлы:
  • /etc/bashrc содержит общесистемные псевдонимы и функции;
  • /etc/profile содержит общесистемные переменные окружения и приложения, которые запускаются при начальной загрузке;
  • $HOME/.bashrc содержить пользовательские псевдонимы и функции;
  • $HOME/.bash_profile содержит пользовательские переменные окружения и приложения, которые запускаются при начальной загрузке;
  • $HOME/.inputrc содержить клавишные привязки и др. вещи.
Примеры этих файлов приведены ниже. Первый и наиболее важный : /etc/profile. Он содержит настройки многих свойств вашей системы, как вы увидите в следующих секциях.


# /etc/profile

# Системные переменные окружения и программы начальной загрузки
# Функции и псевдонимы перенесены в /etc/bashrc

# Этот файл определяет следующие свойства:
#
#   o пути
#   o приглашения командной строки
#   o некоторые переменные окружения
#   o цвет ls
#   o less
#
# Пользователи могут переопределить эти установки и/или добавить другие
# $HOME/.bash_profile

# установим нужный путь

echo $PATH | grep X11R6 > /dev/null
if [ $? = 1 ] ; then   # добавим новые пути
  PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."
fi

# предупреждение пльзователя: регистрирующий или нерегистрирующий shell. Если регистрирующий, то приглашение
# синего цвета; в противном случае бирюзового. Приглашение для Root'а красное.

USER=`whoami`
if [ $LOGNAME = $USER ] ; then
  COLOUR=44
else
  COLOUR=45
fi

if [ $USER = 'root' ] ; then
  COLOUR=41
fi

# задать действительный escape символ вместо ^[. Чтобы сделать это:
# emacs: ^Q ESC   vi: ^V ESC   joe: ` 0 2 7   jed: ` ESC
# Уберите `;1' если вы не любите атрибут `жирный'.
ESC=^[
PS1='$ESC[$COLOUR;37;1m$USER:$ESC[37;40;1m\w\$ '
PS2="Continue> "

# не создавать дамп памяти

ulimit -c 0   

# установка umask

if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
  umask 002
else
  umask 022
fi

# несколько переменных

USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
EDITOR=jed
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000
export PATH PS1 PS2 USER LOGNAME MAIL EDITOR HOSTNAME HISTSIZE HISTFILESIZE

# включить цвет в ls

eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -s -T 0 --color=tty'

# настройка less

LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
VISUAL=jed
LESSCHARSET=latin1
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET

for i in /etc/profile.d/*.sh ; do
  if [ -x $i ]; then
    . $i
  fi
done

Вот пример /etc/bashrc:


# /etc/bashrc

# Общесистемные функции и псевдонимы
# Переменные окружения перенесены в /etc/profile

alias which="type -path"
alias d="ls"
alias dir="d"

Похожий и .bashrc:


# $HOME/.bashrc
# Источник глобальных определений

if [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi

# необходимо предупредить пользователя, что он в нерегистрирующем shell

if [ "$GET_PS1" = "" ] ; then
  COLOUR=45
# определение действительного escape символа вместо ^[
  ESC=^[
  PS1='$ESC[$COLOUR;37m`whoami`:$ESC[37;40m\w\$ '
  export PS1
fi

# псевдонимы

alias cp='cp -i'
alias l=less
alias lyx='lyx -width 900 -height 700'
alias mv='mv -i'
alias rm='rm -i'
alias x=startx

# Несколько полезных функций

inst() # Инсталировать .tar.gz архив в текущую директорию.
{ gzip -dc $1 | tar xvf - }

cz() # Содержание .zip архива.
{ unzip -l $* }

ctgz() # Содержание .tar.gz архива.
{
  for file in $* ; do
    gzip -dc ${file} | tar tf -
  done
}

tgz() # Создать .tgz архив по типу zip.
{
  name=$1 ; tar -cvf $1 ; shift
  tar -rf ${name} $*
  gzip -S .tgz ${name}
}

Это пример .bash_profile:


# $HOME/.bash_profile

# Пользовательские переменные окружения и программы начальной загрузки
# Этот файл содержить пользовательские настройки, который переопределяют
# установленные в /etc/profile

# Взять псевдонимы и функции
if [ -f ~/.bashrc ]; then
  GET_PS1="NO"  # не изменять цвет приглашения
  . ~/.bashrc
fi
    
# назначить несколько директорий `по умолчанию'
export CDPATH="$CDPATH:$HOME:$HOME/text:$HOME/text/geology"

# исправить забой в rxvt 2.45
if [ "$COLORTERM" != "" ] ; then
  stty erase ^?
  ESC=^[  # задать действительный escape символ вместо ^[
  echo -n "$ESC[36l"
fi

Это пример .inputrc:


# $HOME/.inputrc

# клавишные привязки

"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line
# (F1 .. F5) are "\e[[A" ... "\e[[E"
"\e[[A": "info \C-m"

set bell-style visible          # убрать писк
set meta-flag On                # разрешить 8-битный ввод (например, диакритические знаки)
set convert-meta Off            # не выдалять 8-битные символы
set output-meta On              # корректно отображать 8-битные символы
set horizontal-scroll-mode On   # пролистывать длинные команды
set show-all-if-ambiguous On    # после нажатия TAB

Для того, чтобы backspace и delete корректно работали в  xterm и других  X11 приложениях, необходимо сделать следующее:

  • поместите это в ваш  .xinitrc:
    usermodmap=$HOME/.Xmodmap
    xmodmap $usermodmap
  • поместите это в ваш  .Xmodmap:
    keycode 22 = BackSpace
    keycode 107 = Delete
    это исправит консоль. Для исправления xterm:
  • поместите в ваш  .Xdefaults:
    xterm*VT100.Translations: #override ?Key>BackSpace: string(0x7F)\n\
            ?Key>Delete:        string(0x1b) string("[3~")\n\
            ?Key>Home:          string(0x1b) string("[1~")\n\
            ?Key>End:           string(0x1b) string("[4~")\n\
            Ctrl?Key>Prior:     string(0x1b) string("[40~")\n\
            Ctrl?Key>Next:      string(0x1b) string("[41~")
    
    nxterm*VT100.Translations: #override ?Key>BackSpace: string(0x7F)\n\
            ?Key>Delete:        string(0x1b) string("[3~")\n\
            ?Key>Home:          string(0x1b) string("[1~")\n\
            ?Key>End:           string(0x1b) string("[4~")\n\
            Ctrl?Key>Prior:     string(0x1b) string("[40~")\n\
            Ctrl?Key>Next:      string(0x1b) string("[41~")
rxvt немного более сложный, поскольку на его поведение влияют некоторые параметры, задаваемые во время компиляции. Смотрите выше  .bash_profile.

Более детальную информацию по bash(1) и readline(3) смотрите в man.

Не надейтесь, что все программы будут работать корректно! Если вы, например, запускаете joe в xterm некоторые клавиши не будут работать; подобное верно и для версий rxvt старее 2.21.

3.2 ls(1)

ls может отображать содержание директории используя разные цвета для отображения разных типов файлов. Чтобы включить это свойство, добавьте следующие строчки в /etc/profile:
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'
(Если у вас нет файла /etc/DIR_COLORS, удалите ссылку на него в первой строке.) Это устанавливает переменную окружения LS_COLORS,  которая содержит список цветов установленных в  /etc/DIR_COLORS. Примечание: не спрашивайте меня почему, но это не работает с версией rxvt старее v. 2.21; используйте вместо него  xterm. Схоже на то, что rxvt имеет глюк, который не позволяет ему при некоторых обстоятельствах корректно наследовать окружение.

ls в дистрибутиве Caldera  не имеет цветов, однако есть эквивалент color-ls. Добавьте это к /etc/bashrc:

alias ls="color-ls $LS_OPTIONS"

3.3 less(1)

С помощью этого прекрасного пейджера вы можете просматривать  не только обыкновенный текст, но и сжатые gzip, tar и zip архивы, man страницы и все, что хотите. Его настройка включает несколько шагов:
  • чтобы использовать его с клавишами перемещения, поместите этот ASCII файл .lesskey в вашу домашнюю директорию:
    ^[[A   back-line
    ^[[B   forw-line
    ^[[C   right-scroll
    ^[[D   left-scroll
    ^[OA   back-line
    ^[OB   forw-line
    ^[OC   right-scroll
    ^[OD   left-scroll
    ^[[6~  forw-scroll
    ^[[5~  back-scroll
    ^[[1~  goto-line
    ^[[4~  goto-end
    ^[[7~  goto-line
    ^[[8~  goto-end
    затем выполните команду lesskey. Она создаст двоичный файл .less содержащий клавишные привязки.
  • сохраните следующий файл как /usr/bin/lesspipe.sh
    #!/bin/sh
    # Это препроцессор для 'less'.  Он используется, когда установлена переменная окружения 
    # LESSOPEN="|lesspipe.sh %s"
    
    lesspipe() {
      case "$1" in
      *.tar) tar tf $1 2>/dev/null ;; # Просмотр содержания .tar и .tgz файлов
      *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;;
      *.Z|*.z|*.gz) gzip -dc $1  2>/dev/null ;; # Корректное отображение сжатых файлов
      *.zip) unzip -l $1 2>/dev/null ;; # Просмотр архивов
      *.arj) unarj -l $1 2>/dev/null ;;
      *.rpm) rpm -q -p -i -l $1 2>/dev/null ;;
      *.cpio) cpio --list -F $1 2>/dev/null ;;
      *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1`
        FILE=`echo $FILE | cut -d ' ' -f 2`
        if [ "$FILE" = "troff" ]; then
          groff -s -p -t -e -Tascii -mandoc $1
        fi ;;
      *) file $1 | grep text > /dev/null ;
        if [ $? = 1 ] ; then # это не некоторый тип текста
          strings $1
        fi ;;
      esac
    }
    
    lesspipe $1

    и не забудьте сделать его выполняемым с помощью комманды  chmod 755 lesspipe.sh.
  • поместите эти строки в /etc/profile:
    LESS="-M-Q"                     # не показывать длинные сообщения
    LESSEDIT="%E ?lt+%lt. %f"       # редактировать верхнюю строку
    LESSOPEN="| lesspipe.sh %s"     # фильтр
    VISUAL=jed                      # редактор по умолчанию --- вставьте ваш любимый
    LESSCHARSET=latin1              # отображать диакритические символы если нужно 
    export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET
    Переменная LESSCHARSET зависит от факта, что я живу в Италии и хочу использовать таблицу символов ISO 8859/1. Вы друзья американцы, японцы, русские и тому подобное лучше не устанавливайте ее.

3.4 emacs(1)

Я не использую  emacs, поэтому я могу посоветовать вам только одно. Некоторые дистрибутивы emacs поставляются без предустановленной цветовой и синтаксической подсветки. Допишите это в ваш .emacs:
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)
Это работает только для X11. Я отправляю вас внимательно почитать всю документацию по emacs, чтобы вы смоголи настроить его под свои нужды -- потенциально, это можеть занять несколько месяцев отладки...

3.5 joe(1)

Некоторые "товарищи" сообщают, что  joe работает с цветами под X11, но не в tty. К тому же, не работают некоторые специльные клавиши. Насколько мне известно, никто не нашел решения для маленькой старой клячи; кое-кто предлагает отлаживать  /etc/termcap.

Если вы столкнулись с этой проблемой, быстрое и плохое (и неэлегантное) решение следующее:

~$ export TERM=vt100
~$ joe myfile
   (edit your file)
~$ export TERM=linux

3.6 jed(1)

Это мой любимый редактор: он делает то, что я хочу, его легче и проще настраивать чем emacs, и IMHO отлично эмулирует другие редакторы. Многие пользователи в моем университете хотят, чтобы jed эмулировал EDT, редактор системы VMS.
Настроечным файлом для jed является .jedrc и все, что в /usr/lib/jed/lib/; предыдущий может быть взят из  jed.rc  в указанной дериктории.
  • чтобы заставить jed корректно использовать специльные клавиши, создайте файл /usr/lib/jed/lib/defaults.sl, который содержит только одну строку:
    () = evalfile("linux");
  • отредактируйте /usr/lib/jed/lib/linux.sl; снимите комментарий со строки Info_Directory = "/usr/info"; и добавьте  /bin/mail после UCB_Mailer =;
  • способ заставить jed эмулировать  EDT (или другие редакторы ) довольно прямолинеен : вы только должны отредактивновать несколько строк в  .jedrc. Если вы хотите использовать клавишу "+" на цифровой клавиатуре для удаления слов вместо единичных символов, добавьте это в.jedrc:
    unsetkey("\eOl");
    unsetkey("\eOP\eOl");
    setkey("edt_wdel", "\eOl");
    setkey("edt_uwdel", "\eOP\eOl");
    после строки, следующего вида () = evalfile("edt");.
  • чтобу xjed использовал цифровую клавиатуру для эмуляции  EDT, вставьте следующее в .Xmodmap:
    keycode 77  = KP_F1
    keycode 112 = KP_F2
    keycode 63  = KP_F3
    keycode 82  = KP_F4
    keycode 86  = KP_Separator
    Более того, убедитесь, что ваш /etc/X11/XF86Config содержит следующие строки:
    #    ServerNumLock  # должен быть откоментирован
        XkbDisable
    Это применяется для XFree 3.2. Если только вы не используете американский стандарт клавиатуры , заметьте, что  ``XkbDisable'' создает проблемы. Вы исследуете это сами.
  • настройка цветов для  xjed производится добавлением следующих строк к .Xdefaults:
    xjed*Geometry: 80x32+150+50
    xjed*font: 10x20
    xjed*background: midnight blue
    ``Аббревиатуры'' - это неоценимое средство сохранения времени. Создайте файл
     подобный следующему и сохраните в $HOME/.abbrevs.sl:
    create_abbrev_table ("Global", "");
    define_abbrev ("Global", "GG", "Guido Gonzato");
    create_abbrev_table ("TeX", "\\A-Za-z0-9");
    define_abbrev ("TeX", "\\beq", "\\begin{equation}");
    define_abbrev ("TeX", "\\eeq", "\\end{equation}");
    % and so on...
    и выполните ESC x abbrev_mode, чтобы включить его. Чтобы аббревиатуры были включены по умолчанию, добавьте следующие строки к вашему .jedrc:
    define text_mode_hook ()
    {
      set_abbrev_mode (1);
    }
    %
    define fortran_hook ()
    {
      set_abbrev_mode (1);
      use_abbrev_table ("Fortran");
    }
    % and so on...

3.7 efax(1)

Этот пакет вероятно самый удобный для простой отправки/получения факсов. Вам нужно будет создать скрипт /usr/bin/fax; легко работающий, но с некоторыми причудами, вызвавшими у меня головную боль:
  • DIALPREFIX: простой выбор только `T' или `P' не будет работать в большинстве стран. Задайте вместо этого `ATDT' или `ATDP';
  • INIT и RESET: эти строки содержат инициализаторы `-i' и `-k', необходимые для efax. Если вы хотите добавить AT команду, добавьте ее к соответствующей строке без `AT' с предшествующим ключом `-i' или `-k'. Например: чтобы добавить команду `ATX3' к INIT, вы добавите `-iX3'.

3.8 TeX и аналоги

Я предположу, что у вас дистрибутив teTeX. Остановимся здесь только на нескольких вещах:
  • чтобы определить схему переносов для вашего языка, отредактируйте файл /usr/lib/texmf/texmf/tex/generic/config/language.dat, затем выполните:
    ~# texconfig init ; texconfig hyphen
  • если вы добавили пакет LaTeX, после добавления файлов в /usr/lib/texmf/texmf/tex/latex/ выполните команду texhash, чтобы teTeX узнал о новом пакете;
  • чтобы настроить dvips, нужно редактировать файл /usr/lib/texmf/texmf/dvips/config/config.ps. Помните, что строки, отвечающие за разрешение по умолчанию, также определяют поведение  xdvi; если вам надоело задавать фонты каждый раз, когда вы запускаете пакет, поместите строку
    XDvi*mfmode:
    в .Xdefault. Это должно помочь.

3.9 PPP

Здесь я буду предполагать, что поддержка PPP + TCP/IP уже встроена в ядро при компиляции, активирован loopback интерфейс, вы уже имеете корректно инсталированный пакет pppd и зарегистрированы под root. Обычно ваш интернет провайдер должен поддерживать PPP.

Существует теперь два способа заставить PPP работать: a) ручная настройка, и b) с помощью конфигурационной программы, которая это делает сама. Какой бы вариант вы не выбрали, вам потребуется следующая информация:

  • номер телефона вашего провайдера;
  • сервер имен вашего провайдера;
  • сервер почты и новостей вашего провайдера;
  • домен вашего провайдера;
  • ваше регистрационное имя и пароль.
Ручная настройка более хлопотная. Нужно отредактировать некоторые файлы и написать скрипты; не очень много работы, но легко наделать ошибок и новички часто пугаются. Здесь вам может помочь PPP-HOWTO. Как альтернатива, существуют утилиты, которые спрашивают перечисленную выше информацию и делают всю работу сами.

Будет несравненно лучше для вас, исли вы посетите товарища, который уже имеет настроенную связь с провайдером и скачаете один из следующих прекрасных инструментов:

  • для X11 есть утилита EzPPP, домашняя страница которой находится по адресу http://www.serv.net/~cameron/ezppp/index.html . Очень легка в использовании и почти сама настраивается;
  • для соединения в  tty, попробуйте утилиту с  ftp://sunsite.unc.edu/pub/Linux/system/network/serial/ppp. Одной из лучших является pppsetup-X.XX.tar.gz.
  • наипростейшей настроечной утилитой на сегодня уверенно можно назвать wvdial. Вы даете ей телефон вашего провайдера, ваш логин, ваш пароль, и вы уже в полете. Из README файла: ``Сейчас для wvdial есть web страница по адресу: http://www.worldvisions.ca/wvdial''. Очень хороший инструмент.

3.10 POP клиент

Для получения вашей почты с POP сервера, вы используете таких POP клиентов как fetchpop или fetchmail. Последний более продвинут, и вероятно является единственным выбором, если PPP сервер вашего провайдера не может работать с командой LAST. Они доступны на ftp://sunsite.unc.edu/pub/Linux/system/mail/pop.

Для настройки этих клиентов:

  • fetchpop: при первом запуске он вас спросит некоторые сведения. Ответьте на вопросы и вы готовы к работе.
  • fetchmail: настройте подобно примеру .fetchmailrc:
    # $HOME/.fetchmailrc
    poll mbox.myisp.com with protocol pop3;
      user john there with password _Loo%ny is john here
    Вы должны установить права доступа к этому файлу с помощью команды chmod 600 .fetchmailrc, в противном случае fetchmail скорее всего не захочет запуститься. Этот пример показывает только основные настройки и предполагает, что у вас запущен sendmail; в принципе, возможности настройки безграничны. Почитайте http://www.ccil.org/~esr/fetchmail.

3.11 Система X Window

Как только вы заставили X работать (правильный выбор видеокарты и т.п.), существуют безграничные возможности для настройки - все зависит от того, какой менеджер окон вы выбрали. В любом случае, все сведется к редактированию одного или нескольких ASCII файлов в вашей домашней директории. Так для менеджеров окон:
  • fvwm: скопируйте /etc/X11/fvwm/system.fvwmrc в вашу домашнюю директорию как .fvwmrc, просмотрите его и начинайте экспериментировать. Этот встроенный system.fvwmrc является по моему мнению слишком простым и не делает погоды в fvwm.
  • fvwm95-2: скопируйте /etc/X11/fvwm95-2/fvwm2rc95 в вашу домашнюю директорию как .fvwm2rc95, затем отредактируйте его. Встроенный пример достаточно хорош.
  • TheNextLevel: этого немного труднее настраивать. Скопируйте /etc/X11/TheNextLevel/.* в вашу домашнюю директорию, внимательно их изучите, затем попробуйте поэкспериментировать с ними. Первое, на что нужно смотреть, это  .fvwm2rc.defines.
К тому же, убедитесь, что у вас корректный  .xinitrc. Например:
#!/bin/sh

# $HOME/.xinitrc

# настройка корректной работы некоторых клавиш

usermodmap=$HOME/.Xmodmap 
xmodmap $usermodmap

xset s noblank  # выключить хранитель экрана
xset s 300 2    # хранитель экрана запустится через 5 минут
xsetroot -solid "medium blue" ?

# rxvt занимает меньше памяти, но у версий старше 2.21 есть глюки 
# касательно клавиш и способа наследования окружения. Обновите версию или
# используйте вместо него xterm.

xterm -ls -bg black -fg white -sb -sl 500 -j -ls -fn 10x20 -fb 10x20bold \
-title "Color xterm" -geometry 80x25+150+0 ?

fvwm95-2

3.12 Fortran

Судя по моему опыту, если вам нужен Фортран, то лучшей альтернативой использованию  g77 будет Фортран --> Си транслятор f2c и перед ним yaf77.

yaf77-X.Y.tgz можно получить на ftp://sunsite.unc.edu/pub/Linux/devel/lang/fortran .

3.13 Настройки пользователей

Хорошая идея предоставить новому пользователю несколько готовых настроечных файлов во время первой регистрации в системе. Поместите следующие файлы в /etc/skel: .bashrc .bash_profile .bash_logout .inputrc .less .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc .abbrevs.sl. .joerc .emacs

Заметьте, что .pinerc  может быть не одинаковым; удостоверьтесь, что, как минимум, user-domain, smtp-server, и nntp-server установлены правильно.

3.14 Модернизация

Если вы обновляете ваш компьютер, не забудьте сохранить до этого некоторые дополнительные файлы. Некоторые из них: /etc/X11/XF86Config, /usr/bin/fax, ...

4. Окончание

4.1 Авторские права

Если по другому не определено, то права на Linux HOWTO документы принадлежат их авторам. Linux HOWTO документы могут быть перевыданы и распространены полностью или по частям, в печатной или электронной форме, до тех пор пока авторские права распространяются на все копии. Коммерческое распространение разрешается и одобряется; однако, автор хотел бы, чтобы его уведомляли о таком распространении.

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

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

Если у вас есть вопросы, пожалуйста свяжитесь с Tim Bynum, Linux HOWTO координатором, по адресу linux-howto@sunsite.unc.edu via email.

4.2 Обратная связь

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

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

4.3 Отречения

``Configuration HOWTO'' написано Guido Gonzato, guido@ibogfs.cineca.it. Огромное спасибо всем остальным HOWTO авторам и man page создателям/держателям, чью работу я бессовесно своровал.

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

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

Удачи,

Guido =8-)

[ опубликовано 26/01/2003 ]

Guido Gonzato, перевод: Ilgiz Kalmetev - Configuration HOWTO, v1.3.0, 15 апреля 1998 г.   Версия для печати