저는 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
대화형 쉘용이며 대화형 쉘에만 해당됩니다.