панель управления> электропитание (или можно щелкнуть правой кнопкой по рабочему столу> избранные свойства> экранная заставка> питание),
Можно скорректировать все параметры питания отсюда. Я также отключаю, в спящем режиме, в то время как я нахожусь в области.
Мне нравятся некоторые из других решений, упомянутых здесь лучше, но я думал, что вывожу решение, которое я в настоящее время использую на своем ударе и csh VMs для предотвращения разъединений SFTP, должных повторить команды в моих сценариях запуска, на всякий случай любой находит информацию полезной.
В Bash:
if [ $TERM == "xterm" ] || [ $TERM == "xterm-256color" ]; then
echo "Xterm display identified: echo enabled"
echo_disable="0"
else
echo_disable="1"
fi
# Use the following for all subsequent echo commands
if [ $echo_disable == 0 ]; then
echo "Safe to display on Xterm"
fi
В csh:
if ($TERM == "xterm") then
echo "Xterm display identified: echo enabled"
set echo_disable = "0"
else
set echo_disable = "1"
endif
# Use the following for all subsequent echo commands
if !( "$echo_disable" ) echo "Safe to display on Xterm"
Это - немного грубая сила, но это действительно работает.
Вот первые строки моего (значения по умолчанию) .bashrc
файл:
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
проверка на интерактивную сессию старается не портить с SCP, SFTP или ssh remote-host command
режим.
Без этого, если Ваш файл .bashrc
использует echo
или некоторая другая печать материала на stdout, можно получить этот вид ошибок:
Received message too long 168435779
protocol error: unexpected <newline>
Ответ Майка, вероятно, сработает. Но стоит отметить, что вы можете выполнить это, тщательно выбрав, в какие файлы запуска следует поместить подробный материал. Из справочной страницы bash:
Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с --login, сначала он считывает и выполняет команды из файла / etc / profile, если этот файл существует. После чтения этого файла он ищет ~ / .bash_profile, ~ / .bash_login и ~ / .profile в указанном порядке, а также читает и выполняет команды из первого, существующего и доступного для чтения. Параметр --noprofile может использоваться при запуске оболочки, чтобы запретить такое поведение.
Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~ / .bashrc, если этот файл существует. Это может быть запрещается с помощью параметра --norc. Параметр файла --rcfile заставит bash для чтения и выполнения команд из файла вместо ~ / .bashrc.
Инструменты sftp / scp запускают интерактивную оболочку без входа в систему, поэтому будет получен .bashrc. Многие дистрибутивы исходят из .bashrc из .bash_profile или наоборот, так что это может сбивать с толку. Хороший трюк для проверки чистоты вашей среды входа в систему - это использовать ssh с помощью команды, которая имитирует тот же способ подключения scp / sftp. Например: ssh myhost / bin / true
точно покажет вам, что scp / sftp видит при подключении.
Простая демонстрация:
insyte@mazer:~$ echo "echo Hello from .profile" > .profile
insyte@mazer:~$ echo "echo Hello from .bashrc" > .bashrc
sazerac:~ insyte$ ssh mazer /bin/true
Hello from .bashrc
sazerac:~ insyte$
insyte@mazer:~$ rm .bashrc
sazerac:~ insyte$ ssh mazer /bin/true
sazerac:~ insyte$
Первый тест вызовет scp / sftp / rsync и т. Д. сломать. Вторая версия будет работать нормально.
Если вы используете csh:
if ($?prompt)
... interactive stuff ...
И если это bash:
if [[ $- == *i* ]]; then
... interactive stuff ...
fi
или, альтернативно, используете регулярные выражения bash:
if [[ $- =~ i ]]; then
... interactive stuff ...
fi
Эти строки должны предшествовать строкам, в которых вы выводите / выводите что-то в ответ .
Решение Майка тоже сработало для меня. Но поскольку моя оболочка по умолчанию - TCSH, мне пришлось немного отредактировать исправление следующим образом (в .tcshrc):
if ( $?SSH_TTY ) then
exec /bin/bash
endif
Просто подумал, что поделюсь всем для всеобщего блага.