처음 로그인할 때 Bash 별칭을 얻지 못했습니다.

처음 로그인할 때 Bash 별칭을 얻지 못했습니다.

저는 virtualbox 가상 머신에서 Debian 8.5(Jessie)를 실행하고 있습니다. 가상 머신에 처음 로그인할 때 실행되지 않는 일부 bash 별칭이 있습니다. 그러나 bash쉘 내부에서 실행하면 작동합니다. 시작 시 작동하도록 시스템을 구성하려면 어떻게 해야 합니까?

yourstruly@mate:~$ tail ~/.bash_aliases
alias quit='exit'
alias reboot='sudo shutdown -r now'
alias halt='sudo shutdown -h now'

yourstruly@mate:~$ halt
-bash: halt: command not found
yourstruly@mate:~$ bash
yourstruly@mate:~$ halt
Connection to localhost closed by remote host.
Connection to localhost closed.

.bashrc나는 include 에 그 줄을 넣었다 .bash_aliases.

yourstruly@mate:~$ tail ~/.bashrc

if [ -f ~/.bash_include ]; then
  . ~/.bash_include
fi

if [ -f ~/.bash_alias ]; then
  . ~/.bash_alias
fi

답변1

Bash가 상호작용을 시작할 때로그인발견된 다음 파일 중 첫 번째 파일을 실행하는 셸: ~/.bash_profile, ~/.bash_login~/.profile.

대조적으로, ~/.bashrc대화형 실행에만 해당됩니다.로그인하지 않았습니다껍데기.

해결책은 실제로 사용하는 ~/.bashrc소스에서 소스를 얻는 것 입니다. 다음과 같은 줄을 추가합니다.~/.bash_profile~/.bash_login~/.profile

if [[ $- = *i* ]]; then . ~/.bashrc; fi

특수 변수 $-에는 활성 셸 옵션이 포함되며 대화형 셸은 i활성 옵션 목록에 포함됩니다. 따라서 이 소스는 ~/.bashrc대화형 쉘용이며 대화형 쉘에만 해당됩니다.

관련 정보