안녕하세요. 미씨오입니다.
쉘 스크립트에 대해 간단한 설명 공유드립니다.
쉘 스크립트 : 쉘(Shell)은 사용자가 입력한 명령을 해석해서 커널에 전달하고, 커널의 실행 결과를 다시 사용자에게 전달해주는 역할을 하는데 일반적인 프로그램에서의 컴파일러(interpreter:해석기:사람-컴퓨터) 기능이 필요없이 직접 메모장 등에 명령어를 기록해서 실행할 수 있기 때문에 매우 강력하고도 가벼운 프로그래밍 언어이다.
C/C++ 과 같은 형태로 이뤄지므로 Windows(쉘과 유사한 작동을 해오던 batch 프로그래밍 언어에서 진보된 매우 강력한 Linux에서의 bash, kcrn... 쉘과 유사한 기능의 power shell 이라는 도구가 windows 7/windows server 2008부터 추가되었다)/linux 계통에서 잘 작동한다.
bash(Bourne Again Shell)
모든 Linux의 기본 쉘인데 이는 Korn shell(ksh), C shell(csh)의 빠르기와 장점을 합한 쉘이다.
- history(default 20개의 명령어를 기억), Alias(별칭:cname [canonical name]) 기능이 있다, 연산기능 job control 기능, TAB키를 사용한 자동완성기능, Prompt(프롬프트)[fedora@localhost ~]# 제어기능 명령어 편집기능이 있으며, 확장 명령어를 사용할 수 있다.
보통 쉘 명령어를 사용할 때 여러 옵션/인자(argument)를 줄 수 있는데 commands options arguments의 형태를 이룬다.
ls ; ls -l ; rm -rf /mydir ; find . -name "*.txt" ; … 이들에 대한 정보는 man page를 사용하거나 명령어 --help를 사용해서 정보를 얻을 수 있다.man ls or ls --help 식이다.
쉘도 프로그래밍 언어이기 때문에 C/C++ 프로그래밍 언어와 유사하게 변수, 제어문, 반복문 형태가 존재한다.
별도의 편집기(이클립스...등등)는 필요없이 메모장에서 작성하면 된다.
ex) gcc/g++ -p a.out 식의 컴파일 과정이 필요없다.
linux를 배우면서 쉘을 강조하는 이유는 Linux에서 사용되는 여러서버 프로그램이나 모듈이 대부분 쉘 형태로 되어있기 때문이다. 서버 관리나 보안을 위해서는 perl, Ruby(meterpreter), python, PHP(웹) html 기본, java scripts, C(C++), power shell등을 이해하고 있으면 좋다.
다음글에 대해서는 추가적인 쉘 스크립트에 대해 설명해드리도록 하겠습니다.
'지식 공유 > 리눅스' 카테고리의 다른 글
centos 7 이상 mysql 설치 및 초기 설정 방법 (0) | 2019.08.01 |
---|---|
리눅스 nfs mount mount nobody 이슈 (0) | 2019.07.31 |
IPtables란? (0) | 2019.07.22 |
Firewall과 함께 linux에서 보안으로 SELinux(Secure Enhanced Linux)를 사용할 수 있다. (0) | 2019.07.18 |
리눅스 서버 보안 사항 (0) | 2019.07.17 |