Linux는 여러 사용자가 시간을 공유하는 시스템이므로 한 명 이상의 사용자가 로그인하여 시스템을 사용할 수 있습니다. 그리고 시스템 관리자는 소프트웨어 설치/업데이트/제거, 실행할 수 있는 프로그램, 보고/편집할 수 있는 파일 등의 측면에서 다양한 사용자가 시스템을 작동하는 방법의 다양한 측면을 관리하는 작업을 수행합니다.
Linux는 또한 시스템 전체(전역) 및 사용자별(개인) 구성을 사용하는 두 가지 주요 방법으로 사용자 환경을 생성하거나 유지 관리할 수 있습니다. 일반적으로 Linux 시스템에서 작업하는 기본 방법은 쉘이며 쉘은 성공적인 사용자 로그인 후 초기화 과정에서 읽은 특정 파일에 따라 환경을 생성합니다.
권장 읽기:나> Linux에서 환경 변수를 설정하는 방법
이 기사에서는 Linux에서 로컬 사용자 관리를 위한 사용자 프로필과 관련된 셸 초기화 파일에 대해 설명합니다. 사용자 정의 셸 함수, 별칭, 변수 및 시작 프로그램을 보관할 위치를 알려드립니다.
중요 :이 기사의 목적을 위해 우리는 bash에 초점을 맞출 것입니다. , 쉿 호환 가능한 셸은 Linux 시스템에서 가장 널리 사용되는 셸입니다.
다른 쉘(zsh, ash, fish 등) 프로그램을 사용하는 경우 해당 문서를 읽고 여기에서 이야기할 관련 파일에 대해 자세히 알아보세요.
Linux의 셸 초기화
쉘이 호출될 때 쉘 자체와 시스템 사용자를 위한 환경을 설정하는 데 도움이 되는 특정 초기화/시작 파일을 읽습니다. 미리 정의된(및 사용자 정의된) 함수, 변수, 별칭 등입니다.
셸에서 읽는 초기화 파일에는 두 가지 범주가 있습니다.
- 시스템 전체 시작 파일 – 여기에는 시스템의 모든 사용자에게 적용되는 전역 구성이 포함되며 일반적으로 /etc에 있습니다. 예배 규칙서. 여기에는 다음이 포함됩니다. /etc/profiles 및 /etc/bashrc 또는 /etc/bash.bashrc .
- 사용자별 시작 파일 – 시스템의 단일 사용자에게 적용되는 이러한 저장소 구성은 일반적으로 사용자 홈 디렉토리에 점 파일로 위치합니다. 시스템 전체 구성을 재정의할 수 있습니다. 여기에는 다음이 포함됩니다. .profile , .bash_profile , .bashrc 및 .bash_login .
다시, 쉘은 세 가지 가능한 모드로 호출될 수 있습니다:
1. 대화형 로그인 셸
쉘은 사용자가 /bin/login을 사용하여 시스템에 성공적으로 로그인한 후 호출됩니다. , /etc/passwd에 저장된 자격 증명을 읽은 후 파일.
셸이 대화형 로그인 셸로 시작되면 /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과 같은 특정 시스템에서 , "당신이 무엇을 하고 있는지 알지 못하면 이 파일을 변경하지 않는 것이 좋습니다. 맞춤 .sh를 만드는 것이 훨씬 좋습니다. /etc/profile.d/의 셸 스크립트 향후 업데이트에서 병합할 필요가 없으므로 환경을 사용자 지정 변경합니다."
/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 file – 이 파일은 ~/.bash_profile이 없을 때 읽습니다. 및 ~/.bash_login; 시스템의 다른 쉘에서도 액세스할 수 있는 동일한 구성을 저장할 수 있습니다. 여기서는 주로 bash에 대해 이야기했기 때문에 다른 쉘이 bash 구문을 이해하지 못할 수도 있다는 점에 유의하십시오.
다음으로 bash 초기화 파일일 필요는 없는 다른 두 가지 중요한 사용자별 파일도 설명합니다.
~/.bash_history 파일 – bash는 시스템에서 사용자가 입력한 명령의 기록을 유지합니다. 이 명령 목록은 ~/.bash_history의 사용자 홈 디렉토리에 보관됩니다. 파일.
이 목록을 보려면 다음을 입력하십시오.
$ history or $ history | less
~/.bash_logout 파일 – 셸 시작에는 사용되지 않지만 로그아웃 절차에 대한 사용자별 지침을 저장합니다. 사용자가 대화형 로그인 셸을 종료할 때 읽고 실행됩니다.
한 가지 실용적인 예는 로그아웃 시 터미널 창을 지우는 것입니다. 이것은 원격 연결에 중요하며 닫은 후 깨끗한 창을 남깁니다.
# cat bash_logout
추가 통찰력을 얻으려면 다양한 Linux 배포판에서 이러한 셸 초기화 파일의 내용을 확인하고 bash 매뉴얼 페이지도 읽어보십시오.
지금은 여기까지입니다! 이 기사에서는 Linux에서 쉘 시작/초기화 파일에 대해 설명했습니다. 아래 의견 양식을 사용하여 답장을 보내주십시오.