DEV/Linux
Shell
초록매실원액
2015. 12. 14. 12:49
Shell == like Window 'CMD'
대화형 사용자 인터페이스
Bash Shell 구동과정
- 최초로 구동되는 프로세스는 PID 1의 init 프로세스
- init 프로세스가 /bin/mingetty 프로세스를 실행
- 사용자 및 패스워드 입력후 /etc/passwd에서 해당 사용자에게 설정된 shell(Bash shell)을 실행
- 시스템 파일은 /etc/profile을 찾아서 그 안의 명령어를 실행
- 사용자의 홈 디렉토리 .bash_profile의 내용을 읽는다
구동 순서
- init(fork) : /etc/inittab
- getty(exec) : /bin/mingetty : 로그인 대기
- login(fork) : bash shell 프로세스를 실행-> /etc/passwd , /etc/shadow
- bash : /etc/bashrc , /etc/profile
- $user
exec()
- 원래의 프로세스가 더는 남아 있을 필요가 없을 때 호출
- exec 호출을 통해서 다른 프로그램을 실행하고 새로운 프로세스로 자신을 대체 할수 있다
fork()
- 원래의 프로세스가 계속 존재해야 할 때 호출
- 자기의 복사본 프로세스를 먼저 만들고 복사본 프로세스에서 exec를 호출
리눅스 Prompt구조
구분자 |
의미 |
root |
로그인한 사용자 계정명 |
lcalhost |
리눅스 시스템의 호스트명(etc/sysconfig/network) |
~ |
현재 작업 디렉토리 위치 |
# |
관리자계정(#), 일반계정($) |
[root@localhost ~] #
[aegisone@localhost ~]$