Остановить ZSH от попыток исправить ssh на .ssh в качестве аргумента

Если вы хотите иметь более длительный период соединения, то в клиенте добавьте:

echo 'ServerAliveInterval 30' | sudo tee -a ~/.ssh/config
echo 'ServerAliveCountMax 1200' | sudo tee -a ~/.ssh/config

ServerAliveCountMax по умолчанию установлено значение 3. Поэтому, как только ServerAliveInterval отправит 3 маленьких пакета информации на ваш сервер, он автоматически выйдет из системы. Установка в 1200 означает, что этот процесс должен произойти как минимум 1200 раз. Короче говоря, вы должны быть подключены как минимум 30*1200 секунд (10 часов).

3
07.02.2018, 09:39
1 ответ

Установите CORRECT_IGNORE_FILE. Например, чтобы игнорировать исправления во всех точечных файлах:

$ cd
$ PS1='%% ' zsh -f
% setopt CORRECT_ALL
% touch ssh
zsh: correct 'ssh' to '.ssh' [nyae]? a
% CORRECT_IGNORE_FILE='.*'
% touch ssh
% rm ssh

Это задокументировано вzshall(1)

   CORRECT_IGNORE_FILE
          If set, is treated as a pattern during  spelling  correction  of
          file  names.   Any  file  name that matches the pattern is never
          offered as a correction.  For example, if the value is `.*' then
          dot  file  names  will never be offered as spelling corrections.
          This is useful with the CORRECT_ALL option.

для этого требуется несколько более поздняя версия zsh(, более поздняя, ​​чем поставляется с Centos 7 ). Если вы застряли на старой версии zsh, вам нужно либо отключить CORRECT_ALL, либо использовать nocorrect, чтобы отключить исправления для каждой проблемной команды (, возможно, поэтому CORRECT_IGNORE_FILEбыл добавлен ).

7
27.01.2020, 21:13

Теги

Похожие вопросы