[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

💻 CS/시스템프로그래밍

Linux - Shell

inu 2021. 1. 20. 20:34
반응형

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