본문 바로가기
Linux

2.7 bash shell

by 평범한kiki 2023. 2. 18.

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