본문 바로가기
컴소니/리눅스

[리눅스] 환경설정 파일 적용 순서 알아보기(~/.bashrc, ~/.bash_profile)

by 금소니 2023. 1. 2.
반응형

#243

1. 리눅스 환경설정 파일 종류

1) /etc/profile

로그인 시 시스템 전체 환경(모든 사용자)에 적용되는 환경설정 파일입니다.

전역변수를 선언할 때 사용되지만 root 권한이 필요하기 때문에 꼭 필요한 상황에만 사용하는 것이 좋습니다.

직접 파일을 수정하여 환경을 설정할 수도 있지만 /etc/profile.d/ 디렉토리에 설정 파일을 작성하여 적용할 수 도 있습니다.

소스코드 주요 내용은 아래와 같습니다.

로그인 하였을 때 기본 경로와 사용자 정보, 서버 정보들을 확인하여 시스템에서 이용할 수 있도록 지정합니다.

그리고 사용자의 권한을 확인하여 일반 사용자 계정일 경우 기본적인 파일 혹은 폴더를 생성하였을 때의 권한을 부여하기 위한 umask 값을 가지고 있습니다.

 

2) /etc/bashrc

/etc/profile과 비슷하게 시스템 전체 환경에 적용되는 환경설정 파일입니다.

이 곳에는 전역으로 사용하게될 함수나 별칭(alias)을 추가하여 사용하기를 권장합니다.

동일하게 /etc/profile.d/ 디렉토리에 설정 파일 작성하여 적용할 수 있습니다.

다만 다른 점은 비로그인 쉘(nonlogin shell)의 경우에는 이 설정 파일에만 영향을 받게 됩니다.

3) ~/.bash_profile

사용자별로 존재하는 환경설정 파일이며, 사용자 디렉토리(~/)에 포함되어 있습니다.

/etc/profile의 사용자 버전으로 수정 시 해당 사용자(지역변수)에만 적용이 됩니다.

/etc/profile보다 나중에 적용되어 전역변수를 덮어쓸 수 있습니다.

 

소스코드는 아래와 같으며, 저와 같이 자바 환경변수 등을 설정할 때 사용합니다.

4) ~/.bashrc

~/.bash_profile과 사용자별로 사용자 디렉토리에 포함되는 설정파일로써 지역적인 함수나 별칭을 작성할 때 사용되는 설정파일입니다.

 

소스코드는 아래와 같으며, 저의 경우에는 clear 명령에 대한 alias만 추가하였습니다.

2. 설정 파일 적용 순서

그럼 설정 파일이 이렇게 다양한데 어떻게 적용되는지 알아보도록 하겠습니다.

우선 순서를 알기 전에 로그인 쉘(login shell)과 비로그인 쉘(nonlogin shell)이라는게 있습니다.

(이 내용은 다음 포스팅에서 알아보도록 하겠습니다.)

 

[리눅스] 로그인 쉘(login shell)과 비로그인 쉘(non-login shell)

#244 1. 로그인 쉘(login shell)과 비로그인 쉘(non-login shell) 1) 로그인 쉘(login shell) 시스템에 로그인을 통하여 접근하는 일반적인 쉘입니다. 2) 비로그인 쉘(non-login shell) 로그인 쉘로부터 파생되는 쉘

goldsony.tistory.com

이 두 쉘에 따라 적용하는 순서가 다릅니다.

 

1) 로그인 쉘(login shell)

/etc/profile -> /etc/bashrc -> ~/.bashrc -> ~/.bash_profile

출처 : 제타위키

시점에 따라 조금 다르긴 하지만 보통 설정 내용을 설정 파일의 제일 하단(저의 경우)에 작성하기 때문에 END 기준으로 작성하였습니다. (만약 상단에 작성하신다면 START 기준으로 보셔야 합니다.)

~/.bash_profile 파일을 예로 들었을 때 설정 내용을 상단에 작성했을 때와 하단에 작성했을 때 적용 순서가 달라질 수 있습니다.

 

2) 비로그인 쉘(nonlogin shell)

/etc/bashrc -> ~/.bashrc

비로그인 쉘의 경우 profile과 관련된 설정파일은 제외하고 적용됩니다.

따라서 비로그인 쉘의 경우에 변수 선언이 필요할 경우 해당 설정파일에 작성이 필요합니다.

반응형

댓글