왜 내 별칭이 ssh에서 작동하지 않습니까? 정의되어 있습니다.

내 별칭이 정의되어 있습니다. .bashrc

alias l.='ls -d .* --color=auto'

매우 유용합니다 🙂 그러나 다음을 통해 작동하지 않습니다 ssh.

$ ssh localhost l.
bash: l.: command not found

왜 그런 겁니까?



답변

시험:

ssh localhost -t bash -ci l.

노트 :

  • 별명은 ~/.bashrc로컬 시스템이 아닌 원격 서버에 있어야합니다 .

  • -i옵션은 bash대화식 쉘을 실행하도록 지시 합니다. 별명은 기본적으로 대화식 쉘에서만 사용 가능합니다.

  • -t옵션 알려줍니다 ssh의사 청각 장애를 할당 할 수 있습니다. 이 옵션이 없으면 bash대화식 모드에서 시작할 때 경고 메시지가 나타납니다. 이것은 또한 ls색상 을 가능하게 합니다. 그것 없이는을 사용해야합니다 --color=always.를 참조하십시오 man ls.

  • 대화식 플래그를 설정하지 않고 별명을 사용 가능하게하는 또 다른 방법이 있습니다 shopt -s expand_aliases. 그래서 당신은 시도 할 수 있습니다 :

    ssh localhost 'bash -c "shopt -s expand_aliases; l."'

    하나:

    • 당신 .bashrc을 소싱 쉘이 상호 작용하는 경우 힘에만 별칭을 정의합니다. 이 예에서 당시 쉘은 대화식이 아닙니다.

    • 같은 줄에 별명을 정의하려고하면 this를 참조 하십시오 .