[모두의 리눅스] 2장 셸이란 무엇인가

aramjs·2023년 10월 23일

Linux

목록 보기
2/14

2.1 셸과 명령어

  • date : 현재 날짜와 시간 출력
  • echo Hello : print와 비슷하다.
  • 에러 메시지를 잘 읽고 내용에 맞게 대처해야 한다.

date 명령어 실행 시
1. 셸 : 키보드로 입력한 date 문자열을 받아들임
2. 셸 : date 명령어를 찾아 커널에게 실행 요청
3. 커널 : 발견한 명령어를 실행
4. 셸 : 실행한 결과로 얻은 문자열을 화면에 표시

  • 커널 : 운영 체제의 중심에서 CPU나 메모리 같은 하드웨어를 관리하며 명령어를 실행하고 프로세스를 관리한다.

  • : 커널과 사용자의 인터페이스

    • 리눅스 커널을 감싸는 역할이다.
    • 조개 껍질(shell)을 의미한다.
    • 리눅스를 다룰 때는 셸을 사용한다.
  • 셸과 커널이 분리되어있는 이유

    • 커널을 바꾸지 않고 셸만 변경할 수 있다.
    • 다른 os 사용할 때에도 셸만 이식하면 똑같이 사용할 수 있다.
    • 셸에 부하가 발생해도 커널에는 영향을 미치지 않는다.
    • '한 프로그램에 너무 많은 기능을 넣지 않는다'는 것이 리눅스의 기본 철학이다.

2.2 프롬프트

  • ldk@ldk-VirtualBox:~$ : 프롬프트

    • ldk : 사용자 이름
    • ldk-VirtualBox : 호스트 이름
    • 프롬프트 : 사용자에게 어떤 결정을 내리도록 한다는 의미이다.
    • 셸이 사용자에게 명령어를 받아들일 준비가 되었음을 나타낸다.
  • 로그인 셸 : 로그인 후 처음으로 시작되는 셸

    • echo $SHELL : 사용중인 로그인 셸을 확인하는 방법이다.

    • $ : 값을 참조한다.

    • SHELL : bash 라는 값을 갖는 변수

    /bin/bash 가 로그인 셸이다. 기본값이다.

  • 셸 스크립트 : 일련의 명령어 흐름을 기술한 파일

    • 명령어로 만들어진 프로그램

실행하고 싶은 명령어들을 미리 파일에 기록하고 그 파일을 셸에 넘겨주는 방식으로 명령을 수행할 수 있다.

today 가 20이면 “오늘은 20일입니다. 출근 일자를 확인해주세요” 출력

date +%d : 오늘 날짜 12를 출력함.

man date를 통해 date의 매뉴얼을 확인해보면 %d : day of month

셸 종류

  • sh : 표준 셸. 역사가 길다. 셸 스크립트 작성 시 일반적으로 사용한다. 리눅스 외 다른 os에서도 사용가능. 대화형 불편하고 로그인으로 거의 사용되지 않는다.

  • csh : 오래된 셸. c셸이라 불림. sh와 문법이 달라 스크립트에는 부적합하다.

  • bash : 기본 로그인 셸. sh와 호환성이 있어 sh그대로 사용 가능하다. 기본 로그인 셸로 쓰인다. 대화형에 편리하다. 스크립트 작성에도 적합하다.

  • tcsh : csh 에 이어 개발된 c셸 계열의 셸이다. 프롬프트 기호가 $이 아니라 %이다.

  • zsh : bash와 tcsh의 기능에 독자적인 기능이 추가되었다.

2.4 어떤 셸을 선택해야 할까

  • bash의 장점
    • 리눅스의 기본 로그인 셸
    • 대화형과 스크립트에 적합
    • sh와 호환성
    • 다른 os에서도 사용 가능
    • 사용자수 많음

일시적으로 셸 바꾸기

  • bash에서 sh 명령어 입력 시 : 본 셸 실행

처음에 기본으로 bash 실행 중 sh 를 실행시킨다.

  • bash : bash 셸 실행

이 상태에서 logout입력 시 로그아웃 불가능. 일반 셸에서는 불가능하다.
처음 로그인 셸에서만 logout이 가능하다.

  • exit : sh로 돌아간다.

두 번 입력 시 bash로 돌아간다.

(로그인 셸) bashshbash

로그인 셸 자체를 변경하려면
chsh : change shell 을 사용한다. → 로그인이 안 되는 문제가 발생 할 수도 있다.

2.5 터미널이란

  • 터미널 : 컴퓨터의 입출력만을 담당하는 전용 하드웨어

  • 소프트웨어로 구현한 터미널 에뮬레이터를 사용한다.

  • 원격 접속 시 푸티 등 터미널 에뮬레이터를 사용한다.

  • 원격 접속 터미널에서 echo 입력 시 linux 서버에서 echo 실행하고 터미널에는 출력만 한다.

  • 종류

    • putty
    • terminal
  • 터미널과 셸

    • 터미널 에뮬레이터와 셸은 다르다.
    • 터미널 에뮬에서 입력 → 셸 입출력 → 리눅스 머신
    • 터미널 에뮬은 입출력 화면을 제공하는 소프트웨어이다.
profile
안녕하세요.

0개의 댓글