반응형
리눅스 데스크톱 환경에서 '로그인 셸'과 '일반 셸'의 차이
리눅스 데스크톱 환경에서 '로그인 셸'과 '일반 셸'의 차이는 주로 셸이 초기화되는 방식과 환경 변수 설정의 차이로 구분됩니다. 이 두 셸의 주요 차이점은 다음과 같습니다.
1. 로그인 셸 (Login Shell)
- 정의: 로그인 셸은 사용자가 시스템에 처음 로그인할 때 시작되는 셸을 말합니다. 이때는 사용자가 시스템에 접근을 인증한 후에 셸이 시작됩니다.
- 실행 방식: 주로
bash -l또는 단순히 로그인할 때 자동으로 시작됩니다. - 환경 설정 파일: 로그인 셸은 시스템 전체와 사용자별 초기화 파일을 실행하여 환경을 설정합니다. 대표적인 설정 파일은 다음과 같습니다.
/etc/profile: 시스템 전체에 적용되는 설정 파일~/.bash_profile,~/.bash_login,~/.profile: 사용자별로 적용되는 설정 파일
- 환경 변수: 로그인 셸은 기본적으로 시스템 및 사용자별 환경 변수들을 모두 초기화하므로 환경 변수 설정이 완전하게 이루어집니다. 보통 PATH, LANG과 같은 변수가 설정되며, 전체 환경을 설정합니다.
2. 일반 셸 (Non-Login Shell)
- 정의: 일반 셸은 이미 로그인한 후에 터미널을 열거나 새로운 셸 세션을 시작할 때 사용하는 셸을 말합니다. 주로 GUI 환경에서 터미널을 실행할 때 이 일반 셸이 사용됩니다.
- 실행 방식: 일반 셸은
bash명령어로 시작되며,-l옵션을 사용하지 않습니다. - 환경 설정 파일: 일반 셸에서는 로그인 셸과 달리 기본적으로 다음 설정 파일만 읽어옵니다.
~/.bashrc: 사용자별 설정 파일- 일반 셸은 시스템 전체 초기화 파일을 건너뛰고, 개인 설정 파일만 불러옵니다.
- 환경 변수: 일반 셸은 로그인 셸이 이미 설정한 환경 변수를 그대로 가져옵니다. 따라서 새로운 PATH를 추가하거나 시스템 환경에 대한 변경이 필요할 때는 로그인 셸을 사용해야 합니다.
사용 예시와 상황에 따른 선택
- 로그인 셸: SSH로 원격 서버에 접근하거나 시스템에 직접 로그인할 때 사용하는 셸입니다. 이때는 전체 환경을 초기화하고, PATH나 기타 환경 설정을 완전히 적용합니다.
- 일반 셸: GUI에서 터미널을 열 때나 이미 로그인한 상태에서 새로운 셸을 열 때 주로 사용됩니다. 로그인 시 설정된 환경을 그대로 이어받기 때문에 추가적인 초기화가 필요하지 않은 경우에 유용합니다.

정리
로그인 셸은 초기 로그인 시 전체 환경을 설정하는 데 사용되고, 일반 셸은 로그인 셸의 설정을 그대로 이어받아 이후 작업을 진행할 때 사용됩니다. 데스크톱 환경에서는 GUI환경이 시작되면서 로그인이 이루어지기 때문에 '로그인 셸'은 큰 의미가 없지만 원격 시스템에 로그인할 때는 '로그인 셸'을 거칩니다.
'리눅스 > 리눅스 기초' 카테고리의 다른 글
| C Shell의 특별한 기능 (2) | 2024.11.07 |
|---|---|
| 리눅스 셸의 종류가 다양한 이유 (3) | 2024.11.06 |
| 현재 시스템의 아키텍처 표시, arch (1) | 2024.11.01 |
| 단축키로 정의할 때 유용한, alias (0) | 2024.10.31 |
| 리눅스 운영체제는 모든 것이 파일로 구성 (2) | 2024.10.23 |