SSH를 통한 원격 명령을 위한 기본 셸

SSH를 통한 원격 명령을 위한 기본 셸

내 우분투 10.04 상자에 다음 설정이 있습니다.

~$ echo $SHELL
/bin/bash
~$ grep $USER /etc/passwd
ubuntu:x:1000:1000:Ubuntu,,,:/home/ubuntu:/bin/bash

그러나 원격 명령을 실행하면 zsh가 기본 셸인 것 같습니다.

$> ssh -i /path/to/ssh/key ubuntu@<my-host> "echo $SHELL"
/bin/zsh

이 문제를 어떻게 해결합니까?

답변1

당신이 보고 있는 것은 로컬 로그인 셸입니다.

ssh user@host "echo $SHELL"

위와 같이 $SHELL큰따옴표로 묶여 있기 때문에 ssh가 실행되기 전에 확장됩니다. 따라서 원격 끝 echo /bin/zsh에서는 echo $SHELL.

$SHELL로컬로 확장되는 것을 방지하려면 작은따옴표를 사용하세요 .

ssh user@host 'echo "$SHELL"'

보다배쉬FAQ 96이에 대한 자세한 내용은.

답변2

귀하 또는 다른 사람이 원격 호스트를 로 구성했어야 합니다 zsh. Bash로 다시 전환하려면 다음을 사용하세요.

chsh -s /bin/bash

원격 호스트에서.

여담이지만, zsh매우 유용한 기능이 많이 포함된 멋진 쉘이라고 추천하고 싶습니다. 이 쉘을 활성화해도 bash를 사용할 수 있는 것이 막히지는 않습니다.

#!/bin/sh 

bash에서 스크립트를 계속 실행합니다.

답변3

로그인과 비로그인 쉘에 대해 읽어보세요. ~/.bash_profile, ~/.bashrc또는 에서 뭔가 재미있는 일을 하고 있는 것 같으니 ~/.profile내용을 확인해 보세요.

관련 정보