셸(Shell)이란?
리눅스에서 셸이란 리눅스와 사용자를 연결해주며, 터미널에 입력한 명령을 해석하고 관리해주는 역할을 합니다.
셸(shell)은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다. 셸(껍데기의 영어 단어)은 사용자와 운영 체제의 내부(커널) 사이의 인터페이스를 감싸는 층이기 때문에 그러한 이름이 붙었다.
https://ko.wikipedia.org/wiki/%EC%85%B8
리눅스의 표준 셸은 bash이며, 원한다면 다른 셸을 사용하는 것도 가능합니다.
배시(Bash, Bourne-again shell, 본 어게인 셸)은 본 셸을 대체하는 자유 소프트웨어로서 GNU 프로젝트를 위해 브라이언 폭스(Brian Fox)가 작성한 유닉스 셸이다. 1989년 발표되어 GNU 운영 체제와 리눅스, 맥 OS X 그리고 다윈 등 운영 체제의 기본 셸로 탑재되어 광범위하게 배포되었다.
https://ko.wikipedia.org/wiki/%EB%B0%B0%EC%8B%9C_(%EC%9C%A0%EB%8B%89%EC%8A%A4_%EC%85%B8)
기본 명령어와 외부 명령어
셸에 입력 가능한 명령어는 기본 명령어와 외부 명령어로 나누어집니다.
- 기본 명령어: 셸 내부에 내장된 명령입니다. cd, mv, echo 등이 있습니다.
- 외부 명령어: 셸 내부가 아니라 /usr/bin, /usr/sbin 디렉터리에 존재하는 명령어입니다. ls, cat 등 대부분의 명령어가 외부 명령어로 제공됩니다.
외부 명령어는 PATH(환경 변수)에 등록되어 있는 디렉터리에서 실행됩니다. 현재 설정된 PATH를 보려면 아래와 같이 입력합니다.
echo $PATH
※ 환경 변수 설정에 대해서는 이후에 자세히 다룰 예정입니다.
터미널에서 셸(Shell) 조작하기
우분투와 같은 리눅스 운영체제에서는 앞서 설명한 터미널(Terminal)과 같은 CUI(command-line interface, 명령줄 인터페이스)에 익숙해지는 것이 매우 중요합니다. 하지만 초보자에게도 친절한 우분투 운영체제에서는 미려한 GUI(graphical user interface, 그래픽 사용자 인터페이스)를 제공합니다. GUI로 우분투 리눅스의 분위기에 익숙해졌다면, 이제는 CUI에 도전할 차례입니다.
명령어 사용해보기
간단한 명령어 몇 가지를 시험해보기로 하죠. 현재 설치된 우분투 시스템의 버전 정보를 살펴봅시다. 리눅스 기본 규격(Linux Standard Base, LSB) 릴리즈 정보를 확인하는 lsb_release 명령을 사용합니다.
lsb_release -a
위 명령을 입력하면 아래와 같이 버전 정보가 나타납니다.
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
로그인한 사용자 이름을 알아보려면? who am i(나는 누구?)를 사용합니다.
whoami
현재 위치하고 있는 디렉터리를 살펴보려면? PWD(print working directory)를 사용합니다.
pwd
시스템 종료와 재시작
halt 명령으로 시스템을 정지시킬 수 있습니다(전원을 끄지 않고, 모든 프로세스를 종료).
halt
shutdown 명령으로 시스템을 종료할 수 있습니다(시스템 전원까지 차단).
shutdown [시간]
- shutdown : 1분 후에 종료
- shutdown +10 : 10분 후에 종료
reboot 명령으로 시스템을 재시작할 수 있습니다.
reboot