.bashrc 와 .bash_profile의 차이를 알아보자

막국수·2024년 2월 1일

출처 및 참고 사이트

.bashrc .bash_profile 와 .profile 의 차이
https://www.tutorialspoint.com/difference-between-bashrc-bash-profile-and-profile
언제 .bashrc 대신 .bash_profile이 사용되는가?
https://apple.stackexchange.com/questions/51036/what-is-the-difference-between-bash-profile-and-bashrc
login shell이 뭐지?
https://www.makeuseof.com/linux-login-shells-explained/#:~:text=A%20login%20shell%20is%20exactly,typically%20not%20a%20login%20shell

배경 설명

remote ubuntu server에서 alias 명령어로 단축 명령어를 설정하고 싶었다.
.bashrc에 alias 명령어를 작성하고 source로 적용하여도 단축 명령어가 실행되지 않아서 왜 그런지 찾아봤다.
참고 : 나만의 마법같은 단축 명령어 | alias

내용 설명

.bashrc, .bash_profile이 무엇인가

  • 둘 다 Bash Shell의 쉘 환경을 설정하는 파일이다.
  • PATH 변수, PS1 변수, alias 등을 설정할 수 있다.

둘의 차이는 무엇인가

  • .bashrc
    • .bashrc는 새 터미널 창이 열릴 때마다 실행된다.
    • non-login shell에서 실행된다.
  • .bash_profile
    • .bash_profile은 user가 system에 log in 할 때 한 번 실행된다.
    • login shell에서 실행된다.

login shell이 무엇인가

  • ssh로 접속하면 login shell을 사용하고, 그냥 terminal 새 창을 열면 non-login shell을 사용한다.

문제가 무엇이었나

  • 내가 remote server에 ssh로 접속해서 login shell을 사용하고 있었고, .bashrc 파일에 alias 명령어를 작성하여도 적용되지 않은 것이었다.

어떻게 해결하나

  • .bash_profile에 .bashrc 파일 내용을 적용하는 코드 넣으면 해결 가능하다.
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
fi

요약

ssh로 접속한 remote linux server에서 shell 환경 설정을 추가하고 싶으면 .bash_profile 파일에 내용을 추가하거나 .bashrc 파일을 사용하고 싶으면 .bashrc 파일 내용을 적용하는 코드를 추가한다.

profile
막 쓰는 블로그

0개의 댓글