10

Всякий раз, когда я захожу на свой сервер Linux, мне бы хотелось, чтобы несколько команд запускались автоматически (установить некоторые переменные, изменить местоположение и т.д.)

Это необходимо сделать при входе пользователя в систему, а не при запуске системы.

Как я могу настроить это сделать это?

4 ответа4

23

Поместите команды в ~/.bashrc . Все, что там происходит, выполняется каждый раз, когда вы входите в систему.

Если вам нужно, чтобы команды выполнялись только при входе через ssh (но не при физическом входе в систему), вы, вероятно, можете проверить наличие переменной среды SSH_CONNECTION и запускать команды только в том случае, если вы обнаружите, что она существует.

8

Просто поместите это в ~/.bashrc или /etc/bash.bashrc, если вы хотите это для всех пользователей:

if [[ -n $SSH_CONNECTION ]] ; then
    echo "I'm logged in remotely"
fi
0

На самом деле ~/.ssh/rc - подходящее место для добавления команды

 ~/.ssh/rc
         Commands in this file are executed by ssh when the user logs in,
         just before the user’s shell (or command) is started.  See the
         sshd(8) manual page for more information.
0

В качестве альтернативы вы можете указать команду, которая будет запускаться во время вызова ssh:

$ ssh -t server 'cmd; exec bash -l'

Последняя команда в списке должна начать интерактивный сеанс в вашей предпочтительной оболочке. Если вам нужно выполнить много команд, подумайте о создании файла сценария на вашем SSH-сервере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .