bash shell은 본쉘의 업그레이드버전이므로 본 쉘 문법을 모두 사용할 수 있다.
다른 쉘 사용시 bash shell 사용으로 전환시 bash 입력, 이전으로 빠져나갈려면 exit 명령 사용
1. bash shell의 시작
- 리눅스 부팅되면 init이라는첫번째 프로세스 생성(PID는 1)
-> getty : 터미널 포트 오픈하고 로그인 프롬프트 보여준다
-> login shell 실행
-> bash 프로세스는 /etc/profile 시스템 파일을 찾아 명령라인에서 실행하게 된다.
-> 유저 홈 디렉토리의 .bash_profile 파일 찾아 실행. .bash_profile 파일 실행시 .bashrc라는 환경 파일 실행
-> default 달러($) 기호를 모니터에 보여주며 유저의 명령을 기다린다.
2. bash shell 환경
- bash shell 초기화 파일
* /etc/profile
유저가 로그인했을때 가장 먼저 읽어 들이는 시스템 초기화 파일. 또한 bash 명령 실행시에도 실행됨
* .bash_profile
유저의 홈 디렉토리에 있다. 유저 자신만의 환경 설정 파일
.bash_profile > .bash_login > .profile 순서로 실행
cat ~/.bash_profile : 유저의 home(~)의 .bash_profile 실행 의
* .bashrc
앨리아스(별칭) 추가(명령어관련..), 언어설정(LANG=en_US.UTF-8)
- 쉘 프롬프트
배시쉘은 4가지 프롬프트 제공
* PS1($), PS2(>), PS3, PS4
3. 명령라인
- 빌트인 명령(쉘 내장명령어)과 help명령
- 종료상태
프로그램 종료상태는 0~255사이 숫자값, 정상종료시 0 리턴하며 그외에는 명령실패
ubuntu@instance-20221119-1126:~$ grep multi /etc/passwd
ubuntu@instance-20221119-1126:~$ echo $? #종료상태출력
1 #실패
ubuntu@instance-20221119-1126:~$ grep script /good
grep: /good: No such file or directory
ubuntu@instance-20221119-1126:~$ echo $?
2 #디렉토리 없음
ubuntu@instance-20221119-1126:~$ grip multi /etc/passwd
Command 'grip' not found, but can be installed with:
sudo apt install grip
ubuntu@instance-20221119-1126:~$ echo $?
127
- 명령라인에서 다중 명령어
세미콜론으로 분리(;)
ubuntu@instance-20221119-1126:~$ date; cal
Sat 11 Mar 2023 02:59:11 AM UTC
March 2023
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
- 명령의 그룹화
(pwd; date; cal) > grouping
- 명령의 조건 실행
pwd && cal (&&은 첫번째 명령이 성고하면, 종료상태가 0이면 && 뒤의 명령 실행)
pwd || cal (||은 첫번째가 성공-> 첫번째만 실행, 첫번째 실패-> 두번째 실행)
ubuntu@instance-20221119-1126:~$ pwd || cal
/home/ubuntu
ubuntu@instance-20221119-1126:~$ ppwd || cal
Command 'ppwd' not found, did you mean:
command 'pawd' from deb am-utils (6.2+rc20110530-3.2ubuntu2)
command 'hpwd' from deb hfsutils (3.2.6-14)
command 'pppd' from deb ppp (2.4.7-2+4.1ubuntu5.1)
command 'hppwd' from deb hfsplus (1.0.4-15)
command 'pwd' from deb coreutils (8.30-3ubuntu2)
Try: sudo apt install <deb name>
March 2023
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
'Linux' 카테고리의 다른 글
[Linux] centos 여러버전 jdk 관리 (0) | 2023.05.08 |
---|---|
[Linux] centos wget (0) | 2023.05.08 |
2.6 본쉘 (0) | 2023.02.05 |
2.1 리눅스의 부팅 과정과 로그인 쉘 (0) | 2023.01.21 |