반응형
shell & kernel
- 명령어를 입력하면 컴퓨터 내부에서는 shell이 이를 받아들이고, 명령어를 해석하여 kernel을 통해 하드웨어를 조작한다.
- 즉, 사용자가 입력한 명령어를 해석하는 프로그램이 shell인 것이다. linux에는 여러가지의 shell이 존재하기 때문에, 개인에게 맞는 shell을 사용하면 된다.
bash & zsh
- shell에는 대표적으로 bash와 zsh가 있다.
echo $0
커맨드를 사용하면 현재 어떤 shell을 사용중인지 알 수 있다. 딱히 설정하지 않았다면 bash를 사용중일 것이다.sudo apt-get install zsh
를 입력하면 zsh를 설치할 수 있고,zsh
를 입력하면 shell이 zsh로 변경된다.bash
를 입력하면 다시 bash로 변경된다.- zsh는 tab키를 기반으로 자동완성을 제공하는 등 추가적인 기능을 제공한다. 명령어에 대한 반응도 조금 다르다.(https://sunlightmedia.org/ko/bash-vs-zsh/)
shell script
- shell script? 여러개의 명령어를 순차적으로 이루어지도록 하는 일종의 'script'
touch
커맨드로 파일을 생성하고 이를 vim이나 nano같은 편집기를 활용해 수정하여 shell script파일을 만든다.#!/bin/bash
를 파일 처음에 입력하여 script파일임을 표시해준다.- 아래는 shell script의 간단한 예시이다.
#!/bin/bash
if ! [ -d bak ]; then
mkdir bak
fi
cp *.log bak
- bak이라는 directory가 존재하지 않는다면 mkdir로 bak directory를 만들고, 해당 위치에 *.log 파일들을 copy하는 작업의 script이다.
chmod +x [shell script 파일명]
으로 해당 파일에 실행가능권한을 줄 수 있다.- 경로를 명확히 설정하고 해당 파일을 실행하면 자연스럽게 내부에 작성된 명령어들이 모두 수행된다.
- 자세한 shell script 작성법은 https://twpower.github.io/131-simple-shell-script-syntax를 참고하자.
shell startup script
- 쉘이 시작될 때 특정 명령을 자동으로 실행하도록 할 수 있다.
alias l='ls -al'
과 같이 특정명령을 간소화하거나 변경하고 싶은 경우가 대표적인 예시이다. 매번 쉘을 실행할 때마다 해당 명령어를 입력해 변경하는 것은 매우 번거로운 일이다.- bash shell의 경우
nano .bashrc
로 해당 script를 수정해주면 된다.
반응형
'💻 CS > 시스템프로그래밍' 카테고리의 다른 글
Linux - 백그라운드 작업 수행 (0) | 2021.01.21 |
---|---|
Linux - 파일 탐색 (0) | 2021.01.21 |
Linux - IO Redirection (0) | 2021.01.20 |
Linux - apt (0) | 2021.01.20 |
Vim 튜토리얼 (0) | 2020.11.20 |