이 글은 양주종의 코딩스쿨 리눅스(Linux) 기초 강좌 30강 모음을 수강하며 정리한 글입니다.
27강 bash - 2
(일반 사용자 id: j, pw: j)
(관리자 id: root, pw: r)
⭐ 로그인 시, Booting 과정
1. 파일 읽어오기 및 내용 적용
/etc/profile
/etc/profile.d/*.sh
2. 홈 dir 내 파일 읽어오기 및 내용 적용
~/.bash_profile (각 사용자의 master file)
[j@hj0216 ~]$ nl .bash_profile
1 # .bash_profile
2 # Get the aliases and functions
3 if [ -f ~/.bashrc ]; then
4 . ~/.bashrc
5 fi
6 # User specific environment and startup programs
7 PATH=$PATH:$HOME/.local/bin:$HOME/bin
8 export PATH
#: 주석
if [ -f ~/.bashrc ]; then: ~/.bashrc home dir에 .bashrc file이 존재한다면,
. ~/.bashrc: .bashrc file을 읽어 올 것
PATH=$PATH:$HOME/.local/bin:$HOME/bin: PATH 변수에 $PATH, 원래 PATH가 갖고 있는 값을 넣고 $HOME/.local/bin, $HOME/bin 추가
export PATH: 지역변수를 전역변수화 시킴
[j@hj0216 ~]$ echo $AGE
30
[j@hj0216 ~]$ bash
# 새로운 shell 실행
[j@hj0216 ~]$ echo $AGE
# bashrc에서 설정한 AGE변수는 지역변수이므로 해당 shell이 아닌 다른 shell에서는 적용되지 않음
[j@hj0216 ~]$ exit
[j@hj0216 ~]$ export AGE
# 변수를 export하므로써 지역변수->전역변수
[j@hj0216 ~]$ bash
[j@hj0216 ~]$ echo $AGE
30
⭐ .bashrc 파일 수정 시, 해당 session에는 반영이 되어있지 않으므로 수정 후 . ~/.bashrc_profile 수정 파일 재실행
~/.bashrc (각 사용자의 보조 file)
[j@hj0216 ~]$ nl .bashrc
1 # .bashrc
2 # Source global definitions
3 if [ -f /etc/bashrc ]; then
4 . /etc/bashrc
5 fi
6 # Uncomment the following line if you don't like systemctl's auto-paging feature:
7 # export SYSTEMD_PAGER=
8 # User specific aliases and functions
if [ -f /etc/bashrc ]; then : etc dir 밑에 bashrc 파일이 존재할 경우,
. /etc/bashrc: etc dir 밑에 bashrc 파일 실행
⭐ alias and functions를 .bashrc에 저장하여 session 변경 시에도 사용할 수 있도록 할 수 있음
/etc/bashrc (모든 사용자들에게 적용되는 bashrc 파일, $PS1* 설정)
[j@hj0216 ~]$ cat /etc/bashrc
# /etc/bashrc
# System wide functions and aliases
# Environment stuff goes in /etc/profile
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
...
Prompt란 컴퓨터가 입력을 받아들일 준비가 되어서 기다리고 있다는 것을 알려주는 메세지로 Linux창에서 $(일반유저), #(관리자)을 의미
윈도우 CMD에서는 Prompt가 1개뿐이지만, Linux에서는 PS(Prompt String)1, PS2, 총 2개가 존재
PS1에서 주로 작업을 하게되며, PS1에서 명령어를 불완전하게 입력할 경우, '>' 표시의 단순한 prompt로 변화하게 되는데, 이 때 이 prompt를 PS2라고 함
~/.bash_history (로그아웃 전 작업 내용 저장)
[j@hj0216 ~]$ nl .bash_history
1 who am i
2 whoami
3 exit
~.bash_logout (로그아웃 시 필요한 작업 내용 저장)
[j@hj0216 ~]$ nl .bash_logout
1 # ~/.bash_logout
참고 자료
📑 [리눅스] 셸 환경변수, 프롬프트(Prompt)란, PS1과 PS2 차이점, 관련 문제
'OS > Linux' 카테고리의 다른 글
리눅스 기초 30강 시리즈 - 29강 출력 내용 저장 (0) | 2023.02.04 |
---|---|
리눅스 기초 30강 시리즈 - 28강 bash - 3 (0) | 2023.02.04 |
리눅스 기초 30강 시리즈 - 26강 bash - 1 (0) | 2023.02.04 |
리눅스 기초 30강 시리즈 - 25강 명령어 역사(history) (0) | 2023.02.04 |
리눅스 기초 30강 시리즈 - 24강 명령어 별칭(alias) (0) | 2023.02.04 |