다음과 같은 명령을 실행할 때 호스팅 계정에서 별칭을 확장하는 데 문제가 있습니다.
ssh user@server "bash -c \"alias\""
내 .bashrc 파일은 다음과 같습니다
echo .bashrc
# .bashrc
shopt -s expand_aliases
# Source global definitions (commenting this out does nothing)
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
alias php="php55"
alias composer="php ~/bin/composer.phar"
위의 ssh 명령을 실행하면 ".bashrc"echo'd가 표시됩니다. 그러나 별칭을 실행하려고하면 아무것도 얻지 못합니다.
"bash -ic"을 시도 할 수 있지만 실제로는 쉽게 변경할 수없는 스크립트에 있으며 이것이 왜 작동하지 않는지 알고 싶습니다.
출력 ssh user@server "bash -c \"shopt\""
.bashrc
autocd off
cdable_vars off
cdspell off
checkhash off
checkjobs off
checkwinsize off
cmdhist on
compat31 off
compat32 off
compat40 off
dirspell off
dotglob off
execfail off
expand_aliases off
extdebug off
extglob off
extquote on
failglob off
force_fignore on
globstar off
gnu_errfmt off
histappend off
histreedit off
histverify off
hostcomplete on
huponexit off
interactive_comments on
lithist off
login_shell off
mailwarn off
no_empty_cmd_completion off
nocaseglob off
nocasematch off
nullglob off
progcomp on
promptvars on
restricted_shell off
shift_verbose off
sourcepath on
xpg_echo off
출력 ssh user@server "bash -c \"echo $SHELL\""
.bashrc
/bin/bash
~/.local/bin
이 때 /etc/profile
자동으로 PATH에 있음을 추가합니다 처리됩니다. 또한 단지 할 수 . /etc/profile
있는 폴더를 생성 한 후에는 재부팅 또는 로그 아웃 / 로그인없이 PATH에 추가하세요.
$PATH
로~/bin:$PATH
는 잘 작동합니다.