Когда я работаю над ssh моего сервера FreeBSD, он всегда предполагает, что ширина терминала составляет 80 столбцов. Например. Страницы руководства отображаются в одном тонком столбце, и все программы, использующие переменные среды COLUMNS и LINES для определения размера терминала, работают только в 80 столбцах по умолчанию.
Есть ли способ заставить tcsh правильно устанавливать переменные среды и отправлять их дочерним программам?
sh: отключено COLUMNS LINES; срок экспорта = xterm
csh: unsetenv COLUMNS LINES; setenv TERM xterm
Терминалы с динамическим размером, шрифтом или разрешением являются нормой, а не исключением.
Когда это произошло, Unix поместил эту информацию в атрибуты tty ядра и исключил $ COLUMNS, $ LINES и данные измерений termcap / terminfo.
Вы можете увидеть потускнение ядра, запустив "stty -a". Ssh, rlogin и современный telnet передают эти параметры удаленной стороне.
Обычно беспокойство вызывает лучшее поведение. Иногда оболочка сбрасывает переменные env (на основе информации "stty").
tcsh наследует среду от родительской оболочки. Чтобы добавить дополнительные окружения, вы можете:
source envvar
где envvar содержит, например:
set history = 5000
# Set save history
set savehist = 5000
# Set a prompt
set prompt = `whoami`%' '
# Add to the default exported $PATH from the parent shell.
set path = `echo $path ~/bin`
# Create a new environment variable
set newShellVar = whatEver
Как только вы войдете в оболочку, например тип tcsh <return>
вы можете активировать файл, используя:
source envvar
Конечно, если вы назовете свой файл envvar как ~/.tcshrc
, то файл автоматически выбирается при выполнении команды tcsh.
Скрипт изменения размера поставляется с xterm, который вы можете установить из портов (хотя вы получите libX11 и т. Д. С ним).
Не уверен в tcsh, но для bash, sh и ksh:
eval `resize`
Должен сделать свое дело.