Linux - Shell
Shell
- 입력받은 명령어를 Kernel이 이해할 수 있도록 전달
- 사용자 명령을 해석
Kernel
- 하드웨어를 제어하여 처리 수행
- 하드웨어에서 기계어처리 결과를 Kernel에게 알려주면 Kernel 이 Shell에게 결과를 알려줌
bash
~$ echo $0
-bash
- 현재 shell중에서 bash 프로그램을 쓰고있는 것(보통 bash가 기본 shell)
- Bash is a Unix shell and command language
- bash shell은 일종의 프로그램 쉘 프로그램을 이용해서 kernel에게 명령을 내리는 것
- bash 는 /bin (root 하위 bin폴더에있음)
- /bin : 기본적으로 유닉스 계열에 탑재되어있는 프로그램이 /bin에 저장되어있음
- zsh (zshell) 도 설치할 수 있음
Shell Script
shell script : 쉘에서 실행되어야할 script, 명령어들의 실행순서 각본
여러개의 쉘 명령어들을 한번에 사용하기에 용이하게 하는 shell script
~$ mkdir script
~$ cd script
~/script$ touch a.log b.log c.log
~/script$ ls
a.log
b.log
c.log
~/script$ mkdir bak
~/script$ cp *.log bak
~/script$ ls
a.log
b.log
c.log
/bin
- bash script 작성하기
~/script$ vim backup
- inside the backup file
#!/bin/bash
if ! [ -d backup ]; then
mkdir backup
fi
cp *.log backup
- #!/bin/bash : 이 밑에 작성되는 코드들이 bin 폴더하위의 bash로 해석되어야한다.
~/script$ ls -l
-rw-rw-r-- backup
~/script$ ./backup
~/script$ chmod +x backup
~/script$ ls -l
-rwxrwxr-x backup
~/script$ rm -rf bak
~/script$ ./backup
~/script$ ls -l bak
a.log
b.log
c.log