Back-end/DEV notes

[linux]Shell / shell script 란 ?

cheersHena 2019. 3. 23. 20:46
반응형

SHELL 이란?

쉘(Shell)은 운영체제에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램이다. 

쉘은 Unix나 Linux에만 있는건 아니고 Windows운영체제나 다른 os에서도 Shell은 필수요소이다. 

운영체제는 로그인한 사용자가 없다면 하나의 쉘도 실행되지 않은 상태이다.

사용자가 로그인을 시도하면 운영체제는 id/pw 받아들이는 로그인 프로그램을 실행하고 입력한 ip/pw를 검증한 뒤 정상적인 사용자라면 쉘을 실행하여 사용자 세션을 넘겨준다.


역할: 사용자가 입력한 명령을 해석하여 실행해줌.

쉘 내부 명령어: 스스로 실행하고 결과를 화면에 표시

쉘 외부 명령어: PATH 환경변수에 지정된 경로에서 입력받은 명령과 같은 파일을 찾아 exec() 시스템콜을 호출하여 실행한 뒤 키보드와 마우스 등의 입력장치와 모니터에 해당하는 표준 출력장치의 제어권을 해당 프로그램에 넘겨준 후, 프로그램이 끝날때 까지 대기한다,


쉘 스크립트 Shell script 란? 

*script: 일반적으로 interpret방식으로 동작하는 컴파일 되지 않은 프로그램.

             프로그램의 한 라인을 읽어들여 해석하고 실행하는 과정을 반복하도록 만들어진 프로그래밍 언어로 작성된 컴파일 되지 않은 파일에 저장된 프로그램.

쉘 스크립트는 운영체제의 쉘 즉, bash , ksh, csh 등이 읽어 실행해주는 스크립트 언어이고 펄 스크립트는 perl이라고 하는 인터프리터 엔진이 읽어 실행해주는 스크립트 언어이다. *자바 스크립트는 웹 브라우저가 실행해준다.



쉘의 종류 

-Unix / Linux : ps명령을 실행하면 보이는 프로세스 중에서 .bash / .sh / .ksh / .csh 등.. 

-Windows : 작업관리자에서 볼 수 있는 explorer.exe / cmd.exe 등..


쉘의 환경변수 

쉘은 사용자가 임의로 변경이 가능한 여러가지 환경변수를 사용한다. 하지만, 미리 정의된 환경변수의 이름을 변경할 수 없다.

환경변수는 쉘의 종류에 따라 설정 및 확인방법이 다르다. (bash - exv / csh-set ..)

환경변수는 사용자와 운영체제 사이에서 사용자가 입력한 명령어를 신속하게 찾고 운영체제와 사용자 , 사용자가 실행한 다른 프로그램과의 소통을 위해 사용한다.

환경변수들은 사용자가 읽을수만 있는것(read only)와 편집가능한 것이 있는데 대표적인 환경변수는 PATH가 있다.

환경변수 PATH는 사용자가 입력한 명령이 내부명령어인지 확인하고, 해당 명령은 외부명령어(실행파일)인 것으로 간주한다.


쉘 환경변수 설정

쉘 환경변수는 로그인 시 설정된다. 사용자 환경은 profile파일에서 설정되는데 profile은 글로벌 profile/ 계정 profile 두가지가 있으며 이 profile의 파일 위치와 이름은 운영체제와 쉘의 종류에 따라 조금씩 다르다.


sh , ksh : /etc/profile , 사용자 홈디렉토리의 .profile  

bash : /etc/profile , /etc/bashrc 두개의 파일과 사용자 홈디렉토리의 .bashrc가 환경변수가 설정될 수 있는 파일이다.

sch : /etc/csh.login , 사용자 홈디렉토리의 .cshrc




반응형

'Back-end > DEV notes' 카테고리의 다른 글

Tiles 타일즈란 ?  (2) 2019.04.24
소스 말 때 형상관리 주용어  (0) 2019.03.25
siteMesh 사이트메쉬란?  (0) 2018.12.06
이클립스 프로젝트 깃허브에 업로드하기.  (0) 2018.10.15
형상관리 SVN이란?? SubVersioN  (0) 2018.10.11