。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

강의/DevOps Linux

[DevOps-Linux] 7. Shell -1

quarrrter 2023. 7. 15. 23:39

기본 개념

명령의 종류


Shell의 정의

운영체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램

쉘은 사용자와 운영체제의 내부(커널)사이의 인터페이스를 감싸는 층. 

 

커널을 통해 하드웨어 제어하는데 커널에 접속하려면 쉘을 통해 ,,, 함. 쉘(컴퓨터가 사람에게 제공하는 인터페이스)

 

Shell의 특성 - 인터페이스 

REPL (Read - Eval - Print - Loop) 레플 

입력 - 평가 -출력 - 입력  loop

 

터미널을 통해 ls -al읠 입력하면 

read 후 

명령어 라인 분석 (Parsing) -명령, 옵션, 인자

입력어가 내부 명령어인지, 외부인지 Eval(평가) : 명령어 분석 ~ 판단 후 

print (shell 내부 함수 호출 or 파일 실행)

종료 (프롬프트 복귀)

 

Shell의 특성 - 인터프리터

인터페이스(REPL)의 본질 : 인터프리터(Interpreter 통역, 번역) - 사용자가 작성한 코드를 즉시 실행하고 결과를 반환(JS,Python)

인터프린터 응용 -> 쉘 스크립트 실행 : 실행할 명령을 소스코드의 형태로 모아서 한꺼번에 실행, 고유의 문법有(변수 선언, 조건, 반복 등)

 

REPL과 인터프리터

REPL : 크롬 브라우저 콘솔 (또는 node.js) , 사용자가 입력한 라인마다 실행 

Shell과 JavaScript엔진의 차이점

JavaScript엔진: JS 소스코드를 실행하기 위한 수단 

Shell: 사용자 명령 또는 스크립트를 통한 시스템 관리

 

인터페이스
(REPL)
사용자 입력에 대한 응답
사람이 실행
인터프리터
(Interpreter)
스크립트의 실행
(사람 또는 시스템이 실행)
ex) 환경설정 

 

(우분투)리눅스 기본 shell: Bash shell

 

 

Shell의 명령 종류

내부 명령
(빌트인 명령)
외부 명령
Shell 내부에 함수 형태로 구현된 명령
=> help명령으로 확인 가능 (pwd, echo..)
별도의 실행 가능한 바이너리 파일로 구현(프로그램)
=> 파일이므로 ls 명령으로 확인 가능 

 

외부 명령 - 실행 파일 경로 /파일 계층 표준(FHS)에 정의 

사용자 명령 시스템 관리
필수: /bin 필수: /sbin
비필수: /usr/bin 비필수: /usr/sbin
소스코드를 통한 설치: /usr/local/bin 소스코드를 통한 설치: /usr/local/sbin
/bin 또는 /usr/bin : mv, nano,echo,mkdir  /sbin : mkfs, chgpasswd, fdisk

 

내부 명령과 외부 명령의 차이 

type(기능: 명령의 타입 정보 출력) 통해 확인