운영체제/shell(linux)
Shell Script란 ?
MIN--A
2021. 7. 19. 23:52
728x90
Shell (명령어 해석기) :
사용자가 user interface로 전달한 명령을 시스템 언어에 맞게 해석 후 시스템(커널)에 전달
script language :
배치언어 = 작업 제어언어 = 다이나믹 언어
반복되는 여러개의 작업을 간소화하여 매번 명령어를 반복 입력하지 않고 파일을 실행하면 해당 작업을 실행
shell이 이해할 수 있는 명령어를 순차적으로 처리하는 형태의 문장을 작성하여 반복 실행
프로그램 코드를 별도의 처리과정(컴파일) 없이 특정 프로그램이 명령을 실시간으로 한 줄 씩 실행하는 프로그램
==> 컴파일을 하지 않는다 ! ==> 처리과정이 필요 없으므로 빨리 결과를 확인할 수 있다 !
shell script :
쉘을 통해 만들 수 있는 프로그램
Linux,Unix ) ~.sh
Window ) ~.bat , ~.ps(powershell)
※ shell의 종류에 따라 명령어를 지원하지 않거나 동작을 안하는 경우가 있어서 스크립트 작성시 해당 쉘 꼭 표시
지원하는 Shell 목록(쉘의 종류)
# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin //shell 을 부여 X
/bin/dash
기본 스크립트 작성
쉘 스크립트 실행
# ./1.sh
bash: ./1.sh //허가 거부
# ll ./1.sh
-rw-r--r-- 1 root root 55 2021-07-19 18:34 ./1.sh //실행 퍼미션(x)이 X
# chmod 755 /root/1.sh //실행 퍼미션 부여
# ll ./1.sh
-rwxr-xr-x 1 root root 55 2021-07-19 18:34 ./1.sh
# ./1.sh
/root/test01.txt
!!!!! but !!!!!!! sh를 붙여서 실행하면 퍼미션 없이도 실행 가능
# sh /root/1.sh
/root/test01.txt
shell 변경하기
vi /etc/passwd 에서 하나의 계정을 nologin으로 변경한다
# chsh -s /bin/bash test01 //쉘 변경 명령어
Changing shell for test01.
Shell changed.
# grep test01 /etc/passwd
test01:x:501:501::/home/test01:/bin/bash
현재 사용자가 사용하는 쉘 확인
# echo $SHELL
/bin/bash
728x90