Tcsh: эталонный конфиг
Однако в нашем распоряжении после создания пользовательского аккаунта, использующего регистрационный шелл /bin/tcsh
, и авторизации под новым именем имеется только файл ~/.cshrc
с некоторыми минимальными, но вполне разумными настройками, который выглядит так:
alias h history 25 alias j jobs -l alias la ls -a alias lf ls -FA alias ll ls -lA# A righteous umask umask 22 set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin) setenv EDITOR vi setenv PAGER more setenv BLOCKSIZE K if ($?prompt) then # An interactive shell -- set some stuff up set filec set history = 100 set savehist = 100 set mail = (/var/mail/$USER) if ( $?tcsh ) then bindkey "^W" backward-delete-word bindkey -k up history-search-backward bindkey -k down history-search-forward endif endif
Можно видеть, что он естественным образом распадается на ряд секций, хотя они и не выделены явным образом:
- сначала идёт определение псевдонимов (
alias
) для наиболее употребимых команд; - затем устанавливаются права доступа по умолчанию для вновь образуемых файлов и каталогов;
- далее определяются значения встроенной переменной
path
-- в них включены все каталоги, в которых потенциально могут быть исполняемые файлы; - вслед за этим устанавливаются пользовательские переменные окружения -- редактор и пейджер по умолчанию и единица измерения для блоков, в которых соответствующими утилитами выводится размер файлов, объем, занимаемый каталогами, объем занятого или свободного дискового пространства;
- последняя секция -- условный оператор, определяющий, по наличию переменной
prompt
, является ли данный экземпляр шелла интерактивным, и если да, устанавливающий ряд переменных, в том числе специфичных дляtcsh
.
На самом деле двух конфигурационных файлов оказывается много: ~/.cshrc
существует только для совместимости с иными платформами и ни во FreeBSD, ни в Linux'е не нужен -- достаточен ~/.tcshrc
. Почему его следует выбрать из двух, казалось бы, равноценных вариантов? Да потому, что в нём можно указывать параметры, не воспринимаемые чистым C-shell'ом.
Содержание . .