지난 주말에 반도체 설계를 하는 친구를 만나 이런저런 이야기를 나누다, 그 친구도 개발자는 아니지만 Linux는 6년째 사용 중이며 script파일을 실행해서 주로 업무를 한다는데, 운영체제에 대한 정확한 설명을 하지 못 하는 "나(개발자)" 자신을 보며 공부 좀 해야겠다는 생각에 블로깅한다. 그래서 먼저 Shell을 공부한다.
그림과 같이 user가 command를 shell에 입력해서 Linux Kernel에게 전달
==> user(command) > shell > Linux Kernel
- Bourne shell(sh): Stephen Bourne이 개발한 Original shell, 최초의 unix에 들어간 shell
- C shell(csh, tcsh): Bill Joy가 C언어의 기술을 넣어서 만든 Shell (history, aliases, job control, vi command editing and completion rlsmd vhgka)
- Korn shell(ksh): David Korn이 AT&T에서 기존 bourne shell에 C shell의 기능을 포함시켜 생성.
- Bourne-again shell(bash): 최초의 'bourne shell'과 호환이 잘됨, MAC OS의 기본 shell이고 윈도에서도 wsl을 통해 사용가능
$ cat /etc/shells # 사용 가능한 shell 리스트 확인
$ echo $SHELL # 현재 작업 shell 확인
$ chsh # 로그인 Shell 변경
$ fname=jin
$ score=90
$ echo $fname
$ unset fname
$ export NAME=kim
$ echo #NAME
$ env
sh 파일 안에 아래 작성.
echo "===================="
date +%Y-%m-%d
df -h /
shell script는 실행전에 chmod +x [filename] 으로 x를 할당하여 실행