Библиотека сайта rus-linux.net
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: -
поместите это в ваш
.Xmodmap: -
поместите в ваш
.Xdefaults:
usermodmap=$HOME/.Xmodmap xmodmap $usermodmap
это исправит консоль. Для исправленияkeycode 22 = BackSpace keycode 107 = Delete
xterm:
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в вашу домашнюю директорию: -
сохраните следующий файл как
/usr/bin/lesspipe.sh:
затем выполните команду^[[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
содержащий клавишные привязки.
#!/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:
Это работает только для X11. Я отправляю вас внимательно почитать всю документацию по(global-font-lock-mode t) (setq font-lock-maximum-decoration t)
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, который содержит только одну строку: -
отредактируйте
/usr/lib/jed/lib/linux.sl; снимите комментарий со строкиInfo_Directory = "/usr/info";и добавьте/bin/mailпослеUCB_Mailer =; -
способ заставить
jedэмулироватьEDT(или другие редакторы ) довольно прямолинеен : вы только должны отредактивновать несколько строк в.jedrc. Если вы хотите использовать клавишу "+" на цифровой клавиатуре для удаления слов вместо единичных символов, добавьте это в.jedrc: -
чтобу
xjedиспользовал цифровую клавиатуру для эмуляцииEDT, вставьте следующее в.Xmodmap: -
настройка цветов для
xjedпроизводится добавлением следующих строк к.Xdefaults:
() = evalfile("linux");
после строки, следующего видаunsetkey("\eOl"); unsetkey("\eOP\eOl"); setkey("edt_wdel", "\eOl"); setkey("edt_uwdel", "\eOP\eOl");
() = evalfile("edt");.
Более того, убедитесь, что вашkeycode 77 = KP_F1 keycode 112 = KP_F2 keycode 63 = KP_F3 keycode 82 = KP_F4 keycode 86 = KP_Separator
/etc/X11/XF86Config содержит следующие
строки:
Это применяется для XFree 3.2. Если только вы не используете американский стандарт клавиатуры , заметьте, что ``XkbDisable'' создает проблемы. Вы исследуете это сами.# ServerNumLock # должен быть откоментирован XkbDisable
``Аббревиатуры'' - это неоценимое средство сохранения времени. Создайте файл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, затем выполните: -
если вы добавили пакет LaTeX, после добавления файлов в
/usr/lib/texmf/texmf/tex/latex/выполните командуtexhash,чтобы teTeX узнал о новом пакете; -
чтобы настроить
dvips, нужно редактировать файл/usr/lib/texmf/texmf/dvips/config/config.ps. Помните, что строки, отвечающие за разрешение по умолчанию, также определяют поведениеxdvi; если вам надоело задавать фонты каждый раз, когда вы запускаете пакет, поместите строку
~# texconfig init ; texconfig hyphen
вXDvi*mfmode:
.Xdefault. Это должно помочь.3.9 PPP
Здесь я буду предполагать, что поддержка PPP + TCP/IP уже встроена в ядро при компиляции, активирован loopback интерфейс, вы уже имеете корректно инсталированный пакетpppd и зарегистрированы под root. Обычно
ваш интернет провайдер должен поддерживать PPP.
Существует теперь два способа заставить PPP работать: a) ручная настройка, и b) с помощью конфигурационной программы, которая это делает сама. Какой бы вариант вы не выбрали, вам потребуется следующая информация:
- номер телефона вашего провайдера;
- сервер имен вашего провайдера;
- сервер почты и новостей вашего провайдера;
- домен вашего провайдера;
- ваше регистрационное имя и пароль.
Будет несравненно лучше для вас, исли вы посетите товарища, который уже имеет настроенную связь с провайдером и скачаете один из следующих прекрасных инструментов:
-
для 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,
...
Next Previous Contents
