왜 내 별칭이 ssh에서 작동하지 않습니까?


9

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

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

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

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

왜 그런 겁니까?


1
.bashrc쉘이 대화식 인 경우에만 읽습니다.
user4556274

1
별칭이 ssh 위에 있으면 색상이 없을 수 있습니다. 별칭을 변경 alias l.='ls -d .* --color'하면 색상이 나타납니다. 내가 추가하겠다고 생각했습니다. 적어도 나는 그것을 경험하고 있었다.
Terrance

나는 그것에 대해 궁금 @Terrance 내가 별칭을 변경 (및 수행 한 후 이전과 색상 (및 열)를 얻을 수 있지만 ... 난 여전히 색상 (없이 열)를 얻을 source .bashrc)
ZANNA

1
아하! 알았어요 쇼 열이 alias l.='ls -dC .* --color'있는 곳으로 별칭을 사용해보십시오 C.
Terrance

1
색상 문제를 해결하기 위해 답변을 편집했습니다.
Matei David

답변:


10

시험:

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를 참조 하십시오 .


1
그 작동 .... 당신의 설명에,하지만, ssh나 자신에게 간다 :)
Zanna

1
나는 일반적으로을 사용할 때 의미했습니다 ssh. 예, localhost문제가되지 않습니다.
Matei David

ssh ... <cmd><cmd>완료 되면 종료 합니다. 이후에 쉘을 유지하려면을 ls시도하십시오 ssh localhost -t 'bash -ci "l.; exec bash"'.
Matei David

아하 이해합니다. 고마워 내 의견을 삭제하겠습니다 :)
Zanna
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.