Библиотека сайта 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