Курс выживания в консоли

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

Вот теперь есть где разгуляться. Не хватает автодополнения хостов? Пожалуйста:

Назад на стр. 061-080-2  Содержание  Вперед на стр. 061-080-4