Tag Archives: System

Пример конфигурации ZSH

Думаю, многие знают о существовании такого замечательного шелла, как zsh :)

О его достоинствах можно почитать, например, здесь. Подробных статей о настройке также полно. Цель данного поста – показать пример моего конфигурационного файла “для ленивых”, а также оставить себе некую памятку, чтобы в случае чего быстро восстановить конфиг на другой машине.

Итак, cat ~/.zshrc

#Сокращённый ввод имён директорий (/u/l/p вместо /user/local/ports)
autoload -U compinit
compinit
setopt autocd

#Выключить пищалку
setopt No_Beep

#Корректировка ошибок при вводе команды
setopt CORRECT_ALL
SPROMPT=”Вы хотели ввести %r вместо %R? ([Y]es/[N]o/[E]dit/[A]bort) ”

#История
setopt APPEND_HISTORY
setopt HIST_IGNORE_SPACE
setopt HIST_REDUCE_BLANKS
setopt HIST_IGNORE_ALL_DUPS
HISTFILE=~/.zhistory
SAVEHIST=5000
HISTSIZE=5000

#Приглашение
autoload promptinit
promptinit
prompt fade blue    # здесь я использую уже готовую тему

#Поиск команд в истории
autoload -U predict-on
zle -N predict-on
zle -N predict-off
bindkey “^X^Z” predict-on   # Включить
bindkey “^Z” predict-off       # Выключить

#Алиасы
alias -g L=’| less’
alias -g G=’| grep’
alias -g GI=’|grep -i’
alias -g H=’| head’
alias -g T=’| tail’
alias -g S=’| sort’
alias -g SU=’| sort -u’
alias -g P=’| patch -p1′
alias -g PD=’| patch -p1 –dry-run’
alias -g WC=’| wc -l’
alias -g IK=’| iconv -c -f koi8r -t cp1251′
alias -g IU=’| iconv -c -f utf8 -t cp1251′
alias -g MF=’mount /mnt/flash’
alias -g UF=’umount /mnt/flash’

alias -g GP=’ping google.com’    #проверка соединения с интернетом ;)

alias -s {avi,mpeg,mpg,mov,m2v}=mplayer
alias -s {odt,doc,sxw,rtf}=openoffice.org
alias -s {ogg,mp3,wav,wma}=mpg123

alias ls=”ls -FG”    # цветной ls

hosts=(‘hostname’ ftp.freebsd.org leonidov.su google.com)    # часто используемые хосты

#SSH – автозаполнение хостов, юзеров
hosts=(${${${(f)”$(<$HOME/.ssh/known_hosts)”}% %\ *}% %,*})    # (!!!) пробелы между “% %” убрать. (!!!)
zstyle ‘:completion:*:hosts’ hosts $hosts
zstyle ‘:completion:*:(ssh|scp):*’ tag-order ‘! users’

#Заголовок терминала (в данном случае мы показываем текущую директорию)
case $TERM in
xterm* | rxvt)
precmd(){print -Pn “\e]0;%n@%m: %~\a”}
;;
esac

#Пути к манам
manpath=”/usr/share/man:/usr/local/man:/usr/X11R6/man”
export MANPATH

#Опции “меню”
zmodload zsh/complist
setopt menucomplete
zstyle ‘:completion:*’ menu yes select
#удобный kill и killall
zstyle ‘:completion:*:processes’ command ‘ps -xuf’
zstyle ‘:completion:*:processes’ sort false
zstyle ‘:completion:*:processes-names’ command ‘ps xho command’
#Настройки цвета меню (это одна строка!):
zstyle ‘:completion:*:default’ list-colors
‘no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;
35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;31:’
# конец строки!
#Комбинации клавиш:
bindkey -M menuselect ” ” accept-and-menu-complete
bindkey -M menuselect “^H” undo

#Настройка нормальной работы кнопок Home, End, Delete и т.п.
autoload zkbd
[[ ! -d ~/.zkbd ]] && mkdir ~/.zkbd
[[ ! -f ~/.zkbd/$TERM ]] && zkbd
source ~/.zkbd/$TERM

[[ -n ${key[Backspace]} ]] && bindkey “${key[Backspace]}” backward-delete-char
[[ -n ${key[Insert]} ]] && bindkey “${key[Insert]}” overwrite-mode
[[ -n ${key[Home]} ]] && bindkey “${key[Home]}” beginning-of-line
[[ -n ${key[PageUp]} ]] && bindkey “${key[PageUp]}” up-line-or-history
[[ -n ${key[Delete]} ]] && bindkey “${key[Delete]}” delete-char
[[ -n ${key[End]} ]] && bindkey “${key[End]}” end-of-line
[[ -n ${key[PageDown]} ]] && bindkey “${key[PageDown]}” down-line-or-history
[[ -n ${key[Up]} ]] && bindkey “${key[Up]}” up-line-or-search
[[ -n ${key[Left]} ]] && bindkey “${key[Left]}” backward-char
[[ -n ${key[Down]} ]] && bindkey “${key[Down]}” down-line-or-search
[[ -n ${key[Right]} ]] && bindkey “${key[Right]}” forward-char

В итоге должно получиться что-то вроде этого.

Первоначальная настройка FreeBSD

В последнее время приходилось частенько ставить и настраивать эту ОС. Кое-что забывается, поэтому решил написать краткий мануал для быстрого освежения памяти :). Описаний типа “почему именно так, а не так, что это такое и зачем оно здесь нужно” не привожу. Для этого есть handbook. Да, в интернете много подобных статей, но ни одна не помогла мне на 100%. Цель данного поста – описать первоначальную рабочую конфигурацию FreeBSD 7.0, которая проверена на моём железе. Итак, начнём.

Русификация консоли:

1) В файл /etc/profile добавляем строчки:

LANG=ru_RU.KOI8-R; export LANG
MM_CHARSET=KOI8-R; export MM_CHARSET

2) /etc/rc.conf:

font8x14=”cp866-8×14″
font8x16=”cp866b-8×16″
font8x8=”cp866-8×8″
keychange=”61 ^[[K"
keymap="ru.koi8-r.win"
scrnmap="koi8-r2cp866"

3) В /etc/ttys меняем все значения cons25 на cons25r.

4) Редактируем /etc/passwd. Находим строчки нужных пользователей:

root:пыщьпыщьпыщь:0:0::0:0:Vladimir &:/root:/usr/local/bin/zsh

Добавляем к каждому нужному юзеру между двумя двоеточиями слово "russian":

root:пыщьпыщьпыщь:0:0:russian:0:0:Vladimir &:/root:/usr/local/bin/zsh

Вот и всё - у нас есть поддержка русских символов в консоли. Для сервера, думаю, этого достаточно, т.к. далее все настройки будут касаться графической оболочки (за исключением звука).

Настройка Xorg:

Для создания пробного конфигурационного файла выполняем:

# Xorg -configure

Копируем полученный  конфиг /root/xorg.conf.new в /etc/X11/xorg.conf и редактируем его.

Настройка мыши

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/sysmouse"
    Option        "ZAxisMapping" "4 5 6 7"
EndSection

В моём случае мы имеем дело с ноутбуком, поэтому необходимо настроить ещё и тачпад (если у вас его нет, переходим к следующему пункту). Редактируем секцию "ServerLayout":

Section "ServerLayout"
  ...
    InputDevice    "Touchpad" "CorePointer"
    InputDevice    "Mouse0" "SendCoreEvents"
  ...
EndSection

И добавляем секцию тачпада:

Section "InputDevice"
    Identifier      "Touchpad"
    Driver          "mouse"
    Option         "Device" "/dev/psm0"
    Option         "Protocol" "PS/2"
    Option         "ZAxisMapping" "4 5 6 7"
EndSection

Также можно использовать драйвер "synaptics", но в моём случае он не поддерживается.

Настройка клавиатуры

У меня возникали проблемы с этой секцией в различных версиях XOrg. Вот мои текущие рабочие настройки:

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver "kbd"
    Option "CoreKeyboard"
    Option "XkbRules" "xorg"
    Option "XkbModel" "pc104"
    Option "XkbLayout" "us,ru"
    Option "XkbVariant" ",winkeys"
    Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll" # переключение между языками (в данном случае Alt+Shift,
            #индикатор смены языка - лампочка Scroll Lock)
EndSection

Итого, в графической оболочке мы имеем рабочую win-клавиатуру с правильной раскладкой русских символов.

Настройка видеокарты:

Ниже описана настройка карточки nvidia, дрова для которой можно взять из портов:

# cd /usr/ports/x11/nvidia-driver/
# make install clean

Я конфигурировал, исопльзуя лишь одну опцию "LINUX". "FREEBSD_AGP" не выбираем, т.к. с ней видео не работает должным образом (по крайней мере, у меня).

Жмём "OK", ждём, пока драйвер скомпиллируется и поставится.

Если при установке не возникло проблем - возвращаемся к редактированию /etc/X11/xorg.conf. Правим секцию "Device" для видеокарты:

Section "Device"
    Identifier  "Card0"
    Driver      "nvidia"
    VendorName  "nVidia Corporation"
    BoardName   "NV43 [GeForce Go 6200/6400]”
    BusID       “PCI:1:0:0″
    Option      “NoLogo” “true”
    Option      “RenderAccel” “true”
EndSection

При желании включаем дополнительные опции, о которых можно почитать на официальном сайте NVIDIA.

В файл /boot/loader.conf добавляем две строчки:

linux_load=”YES”
nvidia_load=”YES”

Далее необходима перезагрузка, но мы это сделаем позже, после настройки звуковой карты.

Настройка звука

У меня интеловская звуковая карта “High Definition Audio”. Для неё, начиная с седьмой версии фри, есть свой модуль ядра (snd_hda.ko). Убедимся в его наличии:

# ls -la /boot/kernel/snd_hda.ko
-r-xr-xr-x  1 root  wheel  83714 24 фев  2008 /boot/kernel/snd_hda.ko*

Посмотреть все доступные модули можно так:

ls -la /boot/kernel/snd_*

Выбираем нужный нам и подключаем его:

# kldload snd_hda

Теперь должен появиться звук. Для того, чтобы при загрузке системы модуль подключался автоматически, в файл /boot/loader.conf добавляем строку

snd_hda_load=”YES”

Перезагружаемся. Теперь в системе должна быть поддержка клавиатуры, мыши, видео и звука. А что ещё для счастья надо? :)