Вот перечень файлов, которые мы будем настраивать: /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 страницы и
все, что хотите. Его настройка включает несколько шагов:
#!/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. Остановимся здесь только на
нескольких вещах:
3.9 PPP
Здесь я буду предполагать, что поддержка PPP + TCP/IP уже встроена в ядро
при компиляции, активирован loopback интерфейс, вы уже имеете корректно
инсталированный пакет pppd и зарегистрированы под root. Обычно
ваш интернет провайдер должен поддерживать PPP.
Существует теперь два способа заставить PPP работать: a) ручная настройка,
и b) с помощью конфигурационной программы, которая это делает сама. Какой
бы вариант вы не выбрали, вам потребуется следующая информация:
-
номер телефона вашего провайдера;
-
сервер имен вашего провайдера;
-
сервер почты и новостей вашего провайдера;
-
домен вашего провайдера;
-
ваше регистрационное имя и пароль.
Ручная настройка более хлопотная. Нужно отредактировать некоторые файлы
и написать скрипты; не очень много работы, но легко наделать ошибок и новички
часто пугаются. Здесь вам может помочь PPP-HOWTO. Как альтернатива, существуют
утилиты, которые спрашивают перечисленную выше информацию и делают всю
работу сами.
Будет несравненно лучше для вас, исли вы посетите товарища, который
уже имеет настроенную связь с провайдером и скачаете один из следующих
прекрасных инструментов:
3.10 POP клиент
Для получения вашей почты с POP сервера, вы используете таких POP клиентов
как fetchpop или fetchmail. Последний более продвинут,
и вероятно является единственным выбором, если PPP сервер вашего провайдера
не может работать с командой LAST. Они доступны на ftp://sunsite.unc.edu/pub/Linux/system/mail/pop.
Для настройки этих клиентов:
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,
...
|