셸 로그 인 에 대한 지식

7414 단어 shell로그 인
우선 로그 인 셸 이 무엇 인지 간단히 소개 해 드 리 겠 습 니 다.
사용자 가 로그 인 한 후에 프로 세 스 를 시작 해 야 합 니 다. 사용자 의 작업 을 커 널 에 전달 하 는 것 을 책임 집 니 다. 이 프로 세 스 는 사용자 가 시스템 에 로그 인 한 후에 실행 하 는 명령 해석 기 나 특정한 프로그램, 즉 Shell 입 니 다.Shell 은 사용자 와 Linux 시스템 간 의 인터페이스 입 니 다.리 눅 스 의 셸 은 여러 가지 가 있 는데, 각각 다른 특징 을 가지 고 있다.자주 사용 하 는 것 은 sh (BourneShell), csh (CShell), ksh (KornShell), tcsh (TENEX / TOPS - 20typeCShell), bash (BourneAgainShell) 등 이 있다.시스템 관리 자 는 시스템 상황 과 사용자 습관 에 따라 사용자 에 게 셸 을 지정 할 수 있 습 니 다.셸 을 지정 하지 않 으 면 시스템 은 sh 를 기본 로그 인 셸 로 사용 합 니 다. 즉, 이 필드 의 값 은 / bin / sh 입 니 다.사용자 의 로그 인 Shell 도 특정한 프로그램 으로 지정 할 수 있 습 니 다. (이 프로그램 은 명령 해석 기 가 아 닙 니 다.)이러한 특징 을 이용 하여 저 희 는 사용자 가 지정 한 프로그램 만 실행 할 수 있 도록 제한 할 수 있 습 니 다. 이 프로그램 이 실 행 된 후에 사용 자 는 자동 으로 시스템 을 종료 합 니 다.일부 리 눅 스 시스템 은 시스템 에 등 록 된 프로그램 만 이 필드 에 나타 날 수 있 도록 요구한다.
현재 로그 인 셸 보기
echo $SHELL

linux 에서 얘 기 하 는 거 예요.
linux 로그 인 시, / etc / profile, ~ /. bashprofflee 등 몇 개의 파일 의 실행 과정.
Linux 에 로그 인 할 때 파일 을 실행 하 는 과정 은 다음 과 같 습 니 다.
Linux 에 처음 로그 인 했 을 때, 먼저 / etc / profile 파일 을 시작 한 다음, 사용자 디 렉 터 리 아래 의 ~ /. bash 를 시작 합 니 다.profile、 ~/.bash_login 또는 ~ /. profile 파일 중 하나 입 니 다. 실행 순 서 는 ~ /. bash 입 니 다.profile、 ~/.bash_login、 ~/.profile。만약 ~ /. bashprofile 파일 이 존재 하면 보통 ~ /. bashrc 파일 을 실행 합 니 다.왜냐하면 ~ /. bashprofile 파일 에는 일반적으로 아래 코드 가 있 습 니 다.
if [ -f ~/.bashrc ] ; then
 . ./bashrc
           fi
~ /. bashrc 에 서 는 일반적으로 다음 과 같은 코드 가 있 습 니 다.
if [ -f /etc/bashrc ] ; then
 . /etc/bashrc
fi
그래서 ~ /. bashrc 는 / etc / bashrc 파일 을 호출 합 니 다.마지막 으로 셸 을 종료 할 때 ~ /. bash 를 실행 합 니 다.logout 파일.
실행 순서: / etc / profile - > (~ /. bash profile | ~ /. bash login | ~ /. profile) - > ~ /. bashrc - > / etc / bashrc - > ~ /. bashlogout
각 파일 의 역할 영역 에 대해 인터넷 에서 다음 과 같은 설명 을 찾 았 습 니 다.
(1) / etc / profile: 이 파일 은 시스템 의 모든 사용자 에 게 환경 정 보 를 설정 합 니 다. 사용자 가 처음 로그 인 했 을 때 이 파일 이 실 행 됩 니 다. 또한 / etc / profile. d 디 렉 터 리 의 설정 파일 에서 셸 의 설정 을 수집 합 니 다.
(2) / etc / bashrc: bash 셸 을 실행 하 는 모든 사용자 에 게 이 파일 을 실행 합 니 다. bash 셸 이 열 렸 을 때 이 파일 은 읽 힙 니 다.
(3)~/.bash_profile: 모든 사용 자 는 이 파일 을 사용 하여 자신 이 사용 하 는 셸 정 보 를 입력 할 수 있 습 니 다. 사용자 가 로그 인 할 때 이 파일 은 한 번 만 실 행 됩 니 다!기본 적 인 상황 에서 그 는 환경 변 수 를 설정 하여 사용자 의 'bashrc 파일' 을 실행 합 니 다.
(4) ~ /. bashrc: 이 파일 은 bash 셸 에 사용 할 bash 정 보 를 포함 하고 있 습 니 다. 로그 인 할 때 와 새 셸 을 열 때마다 이 파일 을 읽 습 니 다.
(5)~/.bash_logout: 시스템 을 종료 할 때마다 이 파일 을 실행 합 니 다. 또한 / etc / profile 에 설 정 된 변수 (전역) 는 모든 사용자 에 게 작용 할 수 있 습 니 다. ~ /. bashrc 등에 설 정 된 변수 (부분) 는 / etc / profile 의 변수 만 계승 할 수 있 습 니 다. 그들 은 '부자' 관계 입 니 다.
(6)~/.bash_profflee 는 대화 식, login 방식 으로 bash 에 들 어가 실 행 됩 니 다 ~ /. bashrc 는 대화 식 non - login 방식 으로 bash 에 들 어가 실 행 된 일반적인 두 가지 설정 이 대체적으로 같 기 때문에 전 자 는 후 자 를 호출 합 니 다.
저 는 실험 을 했 습 니 다. / etc / profile, / etc / bashrc, ~ / bashrc 와 ~ / bashprofile 파일 의 마지막 에 같은 변 수 를 추가 하여 각각 다른 값 을 부여 합 니 다. 실험 결과 변수의 마지막 값 은 ~ /. bash 입 니 다.프로필 의 값.(4 개의 파일 이 다른 설정 을 수정 하지 않 았 습 니 다. 모두 시스템 을 설치 한 후의 기본 값 입 니 다.)
그리고 네 개의 파일 이 모두 같은 파일 에 값 을 추가 합 니 다. 켜 진 후에 이 파일 의 내용 을 보 는 순 서 는 다음 과 같 습 니 다.
/etc/profile
~/.bash_profile
~/.bashrc
/etc/bashrc
----------------------
다른 글:
redhat bash 초기 화 설정
세 가지 개념 을 먼저 설명 하 겠 습 니 다.
 
로그 인 셸
정상 적 인 로그 인 프로그램 이 시 작 된 셸 입 니 다. 로그 인 에 성공 한 후 로그 인 사용자 에 게 시 작 된 셸 입 니 다.
 
비 로그 인 대화 식 셸
이 셸 의 작업 방식 은 사용자 가 입력 한 후에 실행 하고 사용자 가 입력 할 때 까지 기다 리 는 대화 식 입 니 다.분명히 셸 에 로그 인 하 는 것 은 대화 형 셸 이다.
다음 과 같이 우 리 는 대화 형 비 로그 인 셸 을 얻 을 수 있 습 니 다.
[root@localhost ~]# bash [root@localhost ~]# pwd /root
 
비 대화 식 셸
셸 스 크 립 트 를 실행 하기 위 한 셸 입 니 다.
 
FC5 의 bash 를 예 로 들 면 셸 환경 설정 과 관련 된 파일 은 다음 과 같 습 니 다.
 
/etc/profile /etc/profile.d/*.sh /etc/bashrc ~/.bash_profile ~/.bashrc
 
어떤 때 는 별명 을 정의 하 는 것 을 발견 할 수 있 습 니 다. 어떤 때 는 어떤 파일 에서 정의 하 더 라 도 역할 을 할 수 있 는 것 같 습 니 다. 어떤 때 는 역할 을 하지 않 는 것 같 습 니 다. 그것 은 왜 일 까요?이 프로필 들 은 각자 어떤 일 을 서로 책임 졌 습 니까?서로의 관 계 는 어 떻 습 니까?앞서 소개 한 다양한 종류의 셸 과 의 관 계 는 어 떨 까요?다음은 각 문서 에 대해 단독으로 설명 한다.
 
/etc/profile
Linux 는 로그 인 셸 을 시작 하면 이 스 크 립 트 를 실행 하도록 규정 하고 있 습 니 다. 테스트 과정 은 다음 과 같 습 니 다.
LIST 의 정 의 를 / etc / profile 파일 의 끝 에 추가 하고 저장 합 니 다. 다음 과 같 습 니 다: alias LIST = 'ls - l'
다른 셸 설정 파일 이나 디 렉 터 리 의 이름 을 바 꾸 면 시스템 에서 셸 스 크 립 트 를 찾 을 수 없습니다. 실행 하지 않 고 다른 설정 파일 의 방 해 를 피 할 수 있 습 니 다.다음 과 같다: [root@localhost ~]# mkdir /etc/profile.bak [root@localhost ~]# mv /etc/profile.d/* -t /etc/profile.bak/ [root@localhost ~]# mv /etc/bashrc /etc/bashrc.bak [root@localhost ~]# mv ~/.bash_profile ~/.bash_profile.bak [root@localhost ~]# mv ~/.bashrc ~/.bashrc.bak
대화 식 셸, 그리고 테스트 과정 은 다음 과 같 습 니 다.
[root@localhost ~]# bash bash-3.1# LIST bash: LIST: command not found bash-3.1# exit exit [root@localhost ~]#
일반 대화 식 셸 을 시작 할 때 셸 설정 파일 / etc / profile 이 작 동 하지 않 습 니 다.
비 상호작용 셸, 테스트 과정 은 다음 과 같 습 니 다.
검증 을 위해 테스트 스 크 립 트 를 작성 합 니 다. 다음 과 같 습 니 다.
#!/bin/bash LIST
이 스 크 립 트 를 t. sh 로 저장 하고 실행 가능 한 권한 을 추가 합 니 다: [root@localhost ~]# chmod a x t.sh [root@localhost ~]# ./t.sh         ./t.sh: line 2: LIST: command not found [root@localhost ~]#  분명히 비 상호작용 셸 을 시작 할 때 셸 설정 파일 / etc / profile 이 작 동 하지 않 습 니 다.
셸 에 로그 인하 고 테스트 과정 은 다음 과 같 습 니 다. Last login: Wed Nov 19 10: 22: 23 2008 from 192.168.0.97 - bash - 3.1 \ # LIST total 160 drwxr - xr - x  2 root root  4096 Aug 14 12:24 Desktop -rw-r--r--  1 root root  3211 Nov  6 10:15 Session.vim drwxr-xr-x  2 root root  4096 Nov 10 10:58 a -rw-r--r--  1 root root   126 Nov 12 12:42 a.txt -rw-r--r--  1 root root   261 Nov  6 15:23 a.zip -rw-r--r--  1 root root   157 Nov  6 15:23 aa.zip -rw-------  1 root root  1054 Aug 14 11:59 anaconda-ks.cfg -rw-r--r--  1 root root   691 Nov 18 10:09 b.txt -rw-r--r--  1 root root 31671 Aug 14 11:58 install.log -rw-r--r--  1 root root  4155 Aug 14 11:50 install.log.syslog -rw-------  1 root root 20310 Nov 17 13:51 mbox drwxr-xr-x  2 root root  4096 Nov 17 17:22 shell -rwxrwxrwx  1 root root    65 Nov 19 10:11 t.sh drwxr-xr-x 14 root root  4096 Nov  5 15:34 test -bash-3.1#  로그 인 셸 을 시작 할 때 셸 설정 파일 / etc / profile 이 작 동 합 니 다.
 
~/.bash_profile
이 파일 은 / etc / profile 이 작용 하 는 시기 와 같 습 니 다. 로그 인 셸 을 시작 할 때 만 source 에 의 해 작 동 됩 니 다. / etc / profile 과 달리 이 설정 은 한 사용자 에 게 만 영향 을 주 고 다른 사용자 에 게 영향 을 주지 않 습 니 다.
 
/ etc / bashrc 와 ~ /. bashrc 는 말 그대로 이 두 파일 이 루트 bash 와 관련 이 있어 야 한 다 는 것 을 이해 할 수 있 습 니 다. 즉, bash 형식의 셸 을 시작 하면 두 파일 의 설정 이 작 동 합 니 다.셸 이 sh, csh 또는 ksh 라면 두 파일 은 작 동 하지 않 습 니 다.앞서 소개 한 바 와 같이 / etc / bashrc 와 ~ /. bashrc 의 관계 와 / etc / profile 과 ~ /. bashprofflee 의 관 계 는 마찬가지 로 하 나 는 전체 적 이 고 하 나 는 한 사용 자 를 대상 으로 하 는 것 입 니 다.결과 적 으로 는 그 랬 지만 실현 과정 은 달 랐 다.bash 를 시작 할 때 직접 source ~ /. bashrc 를 시작 합 니 다. 이 ~ /. bashrc 에는 source / etc / bashrc 가 들 어 있 습 니 다.
 
/etc/profile.d/*.sh
fc5 에서 이 스 크 립 트 는 / etc / profile 이나 ~ /. bashrc 에서 동시에 source 를 사용 하기 때문에 이 설정 은 서로 다른 분 류 된 전역 환경 설정 입 니 다.
 
 
FC5 다음 로그 인 bash 환경 초기 전 과정 은:
/etc/profile     |     --/etc/profile.d/* ~/.bash_profile     |     --~/.bashrc              |              --/etc/bashrc                  |                  --/etc/profile.d/*
일반 대화 형 bash 의 초기 전 과정 은 ~ / bashrc 입 니 다.    |     --/etc/bashrc        |        --/etc/profile.d/*
비 상호작용 식 bash 의 초기 전 과정 은: 새 셸 스 크 립 트 를 다시 시작 하지 않 고 현재 셸 의 설정 만 계승 합 니 다.

좋은 웹페이지 즐겨찾기