생활코딩 생활코딩 리눅스 강좌 내용을 들으면서 정리하는 노트
•
1. 쉘과 커널 (Shell & Kernel)
1.1 리눅스의 구조
•
kernel: hardware를 직접적으로 제어하는 운영체제의 가장 중심적인 부분
•
shell: 사용자의 명령을 해석해서 kernel에게 전달하는 역할
•
kernel과 shell을 분리하면 다양한 shell이 만들어질 수 있기 때문에 사용자의 선택의 폭이 넓어짐
1.2 bash vs. zsh
•
$ echo $0: 현재 shell 확인 (bash or zsh)
•
bash or zsh: 기능의 차이가 약간 존재함 (zsh의 편의성이 더 뛰어남)
•
선호하는 shell을 설치해서 자신에게 최적화하여 사용 가능
◦
각각의 user마다 선호하는 다른 shell을 사용 가능
2. 쉘 스크립트(Shell script)
•
여러 개의 명령을 순차적으로 실행함으로써 하나의 업무가 이루어질 때 그 명령들을 script로 작성
→ 저장 & 재사용 가능
•
script 작성
◦
첫 줄에 #!/bin/bash: 이 밑에 작성되는 코드가 bin/bash를 통해 해석되어야한다는 사실을 명시
•
script 작성 예시
◦
스크립트 파일 backup 생성
#!/bin/bash
if ! [ -d bak ]; then # -d : 존재하는 디렉토리인지 체크
mkdir bak
fi
cp *.log bak
Bash
복사
◦
내용: 현재 디렉토리에 bak 디렉토리가 존재하지 않는다면 bak 디렉토리를 만들고, .log로 끝나는 파일을 bak 디렉토리로 복사한다.
•
script 실행
◦
파일권한 변경: $ chmod +x backup (실행가능하게 변경)
▪
실행: ./backup
참고자료