웹사이트 검색

Linux의 셸 초기화 파일 및 사용자 프로필 이해


Linux는 다중 사용자, 시간 공유 시스템으로, 두 명 이상의 사용자가 로그인하여 시스템을 사용할 수 있음을 의미합니다. 그리고 시스템 관리자는 소프트웨어, 실행할 수 있는 프로그램, 보기/편집할 수 있는 파일 등의 설치/업데이트/제거 측면에서 다양한 사용자가 시스템을 작동할 수 있는 방법에 대한 다양한 측면을 관리하는 임무를 맡습니다.

또한 Linux에서는 시스템 전체(글로벌) 구성과 사용자별(개인) 구성을 사용하는 두 가지 주요 방법으로 사용자 환경을 생성하거나 유지 관리할 수 있습니다. 일반적으로 Linux 시스템을 사용하는 기본 방법은 셸이며, 셸은 사용자 로그인 성공 후 초기화 과정에서 읽는 특정 파일에 따라 환경을 생성합니다.

권장 읽기: Linux에서 환경 변수를 설정하는 방법

이 문서에서는 Linux에서 로컬 사용자 관리를 위한 사용자 프로필과 관련된 셸 초기화 파일에 대해 설명합니다. 사용자 정의 셸 함수, 별칭, 변수 및 시작 프로그램을 보관할 위치를 알려드리겠습니다.

중요: 이 기사의 목적에 따라 우리는 sh 호환 셸인 bash에 중점을 둘 것입니다. Linux 시스템에서 가장 인기 있고 사용되는 쉘입니다.

다른 셸(zsh, ash, fish 등..) 프로그램을 사용하는 경우 해당 프로그램의 설명서를 읽고 여기서 설명할 관련 파일에 대해 자세히 알아보세요.

Linux에서 쉘 초기화

쉘이 호출되면 쉘 자체와 시스템 사용자를 위한 환경을 설정하는 데 도움이 되는 특정 초기화/시작 파일이 읽혀집니다. 이는 사전 정의된(및 사용자 정의된) 함수, 변수, 별칭 등입니다.

셸에서 읽는 초기화 파일에는 두 가지 범주가 있습니다.

  • 시스템 전체 시작 파일 – 시스템의 모든 사용자에게 적용되는 전역 구성이 포함되어 있으며 일반적으로 /etc 디렉토리에 있습니다. 여기에는 /etc/profiles/etc/bashrc 또는 /etc/bash.bashrc가 포함됩니다.
  • 사용자별 시작 파일 – 시스템의 단일 사용자에게 적용되는 구성을 저장하며 일반적으로 사용자 홈 디렉토리에 도트 파일로 위치합니다. 시스템 전체 구성을 재정의할 수 있습니다. 여기에는 .profiles, .bash_profile, .bashrc.bash_login이 포함됩니다.

다시 말하면, 쉘은 세 가지 가능한 모드로 호출될 수 있습니다:

1. 대화형 로그인 셸

사용자가 /etc/passwd 파일에 저장된 자격 증명을 읽은 후 /bin/login을 사용하여 시스템에 성공적으로 로그인하면 셸이 호출됩니다.

쉘이 대화형 로그인 쉘로 시작되면 /etc/profile 및 이에 상응하는 사용자별 ~/.bash_profile을 읽습니다.

2. 대화형 비로그인 쉘

셸은 $/bin/bash 또는 $/bin/zsh 등의 셸 프로그램을 사용하여 명령줄에서 시작됩니다. /bin/su 명령을 실행하여 시작할 수도 있습니다.

또한 그래픽 환경 내에서 konsole, 터미네이터 또는 xterm과 같은 터미널 프로그램을 사용하여 대화형 비로그인 셸을 호출할 수도 있습니다.

이 상태에서 쉘이 시작되면 상위 쉘의 환경을 복사하고 추가 시작 구성 지침을 위해 사용자별 ~/.bashrc 파일을 읽습니다.

su
ls -la

3. 비대화형 쉘

쉘은 쉘 스크립트가 실행 중일 때 호출됩니다. 이 모드에서는 스크립트(셸 또는 일반 시스템 명령/함수 세트)를 처리하며 달리 지정하지 않는 한 명령 사이에 사용자 입력이 필요하지 않습니다. 상위 쉘에서 상속된 환경을 사용하여 작동합니다.

시스템 전체 셸 시작 파일 이해

이 섹션에서는 시스템의 모든 사용자에 대한 구성을 저장하는 셸 시작 파일에 대해 더 자세히 설명합니다. 여기에는 다음이 포함됩니다.

/etc/profile 파일 – 로그인 설정을 위한 시스템 전체 환경 구성 및 시작 프로그램을 저장합니다. 모든 시스템 사용자 환경에 적용하려는 모든 구성을 이 파일에 추가해야 합니다.

예를 들어 여기에서 전역 PATH 환경 변수를 설정할 수 있습니다.

cat /etc/profile

참고: RHEL/CentOS 7과 같은 특정 시스템에서는 '이 파일을 변경하지 않는 한 이 파일을 변경하지 않는 것이 좋습니다'와 같은 경고가 표시됩니다. 당신이 무엇을하고 있는지 알아라. /etc/profile.d/에 사용자 정의 .sh 셸 스크립트를 생성하여 환경을 사용자 정의로 변경하는 것이 훨씬 좋습니다. 향후 업데이트”.

/etc/profile.d/ 디렉토리 – 환경에 대한 사용자 정의 변경을 수행하는 데 사용되는 쉘 스크립트를 저장합니다.

cd /etc/profile.d/
ls  -l 

/etc/bashrc 또는 /etc/bash.bashrc 파일 – 모든 시스템 사용자에게 적용되는 기타 구성을 포함하여 시스템 전체 기능과 별칭이 포함되어 있습니다.

시스템에 여러 유형의 셸이 있는 경우 이 파일에 bash 관련 구성을 넣는 것이 좋습니다.

cat /etc/bashrc

사용자별 셸 시작 파일 이해

다음으로 시스템의 특정 사용자에 대한 구성을 저장하는 사용자별 셸(bash) 시작 도트 파일에 대해 자세히 설명하겠습니다. 이 파일은 사용자의 홈 디렉터리에 있으며 다음을 포함합니다.

ls -la

~/.bash_profile 파일 - 사용자별 환경 및 시작 프로그램 구성을 저장합니다. 아래 스크린샷과 같이 여기에서 사용자 정의 PATH 환경 변수를 설정할 수 있습니다.

cat ~/.bash_profile

~/.bashrc 파일 – 이 파일은 사용자별 별칭과 기능을 저장합니다.

cat ~/.bashrc

~/.bash_login 파일 - 일반적으로 시스템에 로그인할 때만 실행되는 특정 구성이 포함되어 있습니다. ~/.bash_profile이 없으면 bash가 이 파일을 읽습니다.

~/.profile 파일 – 이 파일은 ~/.bash_profile~/.bash_login이 없을 때 읽혀집니다. 이는 시스템의 다른 쉘에서도 액세스할 수 있는 동일한 구성을 저장할 수 있습니다. 여기서는 주로 bash에 대해 이야기했기 때문에 다른 쉘에서는 bash 구문을 이해하지 못할 수도 있다는 점에 유의하세요.

다음으로 bash 초기화 파일이 아닐 수도 있는 두 가지 중요한 사용자별 파일에 대해서도 설명하겠습니다.

~/.bash_history 파일 – bash는 사용자가 시스템에 입력한 명령의 기록을 유지합니다. 이 명령 목록은 사용자 홈 디렉터리의 ~/.bash_history 파일에 보관됩니다.

이 목록을 보려면 다음을 입력하십시오.

history 
or 
history | less

~/.bash_logout 파일 – 셸 시작에는 사용되지 않지만 로그아웃 절차에 대한 사용자별 지침을 저장합니다. 사용자가 대화형 로그인 셸을 종료할 때 읽고 실행됩니다.

한 가지 실제적인 예는 로그아웃 시 터미널 창을 지우는 것입니다. 이는 원격 연결에 중요하며, 닫은 후 깨끗한 창을 남깁니다.

cat bash_logout 

추가적인 통찰력을 얻으려면 다양한 Linux 배포판에서 이러한 셸 초기화 파일의 내용을 확인하고 bash 매뉴얼 페이지도 읽어보세요.

지금은 여기까지입니다! 이 기사에서는 Linux의 쉘 시작/초기화 파일에 대해 설명했습니다. 아래 의견 양식을 사용하여 답장을 보내주세요.