Курс выживания в консоли
Andrushock
Xakep, номер #061, стр. 061-080-3
manpath=(/usr/local/man /usr/share/man)
Указываем путь до почтового ящика в формате mbox:
mailpath=(/var/mail/$USERNAME'?You have new spam, Master!')
Удаляем из перечисленных массивов повторяющиеся пути:
typeset -U path cdpath fpath manpath
Используем жесткие лимиты на все параметры, кроме размера стека, и не даем размножаться коркам в нашей файловой системе:
unlimit
limit stack 8192
limit core 0
limit -s
Определяем права доступа (в данном случае 0755), которые будут автоматически назначаться файлу при его создании:
umask 022
Особо параноидальные товарищи могут задуматься о значении umask 077, когда только владелец файла имеет право на чтение и запись.
Во власти переменных
Для управления средой командного интерпретатора и корректной работы внешних программ определяем необходимые значения переменных окружения:
BLOCKSIZE=k
TERM=xterm-color
TZ=Europe/Moscow
CVS_RSH=/usr/bin/ssh
CVSROOT=anoncvs@anoncvs1.ca.openbsd.org:/cvs
Как видишь, перед каждой переменной писать команду export совсем не обязательно. Мелочь, а приятно.
Настроить среду и поведение оболочки также можно с помощью специальных переменных, значения которых изменяются встроенными командами setopt и unsetopt:
setopt autocd ignoreeof histignoredups histignorespace
autocd - отказываемся от использования команды "cd". Это может быть удобным при большой многовложенности каталогов. Например, чтобы вернуться на три директории вверх, достаточно набрать "../../../";
ignoreeof - не закрываем терминал по сочетанию клавиш Ctrl+D (выходим, только используя команду exit);
histignoredups и histignorespace - избавляемся от пробелов и дубликатов в истории команд.
Скажите, это ваше настоящее имя?
Псевдонимы (алиасы) - очень удобное свойство оболочек, при грамотном использовании которого можно существенно минимизировать объем введенных команд и рутинных процедур:
alias j='jobs -l'
alias h='history M'
alias o='bg; fg %-'
Элегантно подсчитываем использование дискового пространства:
alias duh="du -h . | grep -v '/.*/' | sort -n"
Корректно завершаем сеанс работы:
alias exit='sync; sync; clear; exit'
Частенько бывает лениво расставлять пробелы, верно? :)
alias psaux='ps -aux M'
Ты, наверное, заметил, что в двух примерах участвовала магическая буква М. Это не очепятка, а одна из фич zsh под названием «глобальный псевдоним», работу которого лучше всего объяснить на примере. При установке большого числа программ порядком надоедает вводить одну и ту же команду:
$ ./configure --help | more
Но после определения глобального псевдонима
alias -g M='-help | more'
литера М становится равнозначной конвейеру '-help | more', и теперь можно использовать вот такой формат записи:
$ ./configure M
Tab'у на ][
Zsh выгодно отличается от своих конкурентов потрясающей системой автодополнения, правила которой можно настроить и запрограммировать по своему усмотрению в зависимости от контекста. Но для начала расширим стандартные возможности оболочки:
autoload -U compinit
compinit
Вот теперь есть где разгуляться. Не хватает автодополнения хостов? Пожалуйста: