터미널과 쉘은 사용자와 운영체제 간의 상호작용을 가능하게 하는 핵심 요소입니다. 이 둘의 역할과 차이, 그리고 터미널이나 쉘에서 자주 사용하는 필수 명령어에 대해 정리해 보겠습니다.
정의:
터미널은 텍스트 기반의 인터페이스를 제공하는 응용 프로그램으로, 사용자가 명령어를 입력하고 시스템의 출력을 텍스트 형태로 확인할 수 있는 환경입니다.
터미널 에뮬레이터(예: GNOME Terminal, iTerm2, Windows Terminal 등)는 실제 물리적 단말기 역할을 대신합니다.
주요 역할:
정의:
쉘은 명령어 해석기(Command Interpreter)로, 사용자가 터미널에 입력한 명령어를 해석하여 운영체제 커널에 전달하고, 그 결과를 사용자에게 보여줍니다.
즉, 운영체제의 핵심 기능(커널)을 감싸는 "껍데기" 역할을 하며, 사용자와 OS 간의 중개자 역할을 합니다.
주요 역할:
쉘의 종류:
ls -l
을 입력하면, Bash 쉘이 해당 명령어를 해석하고, 디렉토리 내용을 목록 형식으로 출력한 후 터미널에 결과를 표시합니다.터미널과 쉘에서 자주 사용되는 기본 명령어들을 정리하면 다음과 같습니다:
pwd
: 현재 작업 중인 디렉토리 경로를 출력합니다.$ pwd
/home/user
ls
: 현재 디렉토리의 파일 및 폴더 목록을 나열합니다.$ ls
Documents Downloads Pictures Music
$ ls -l
total 24
drwxr-xr-x 2 user user 4096 Apr 1 10:00 Documents
drwxr-xr-x 3 user user 4096 Apr 1 11:00 Downloads
cd
: 디렉토리를 변경합니다.$ cd Documents
$ cd ..
$ cd ~ # 홈 디렉토리로 이동
mkdir
: 새 디렉토리를 생성합니다.$ mkdir new_folder
touch
: 새 파일을 생성하거나 기존 파일의 수정 시간을 업데이트합니다.$ touch new_file.txt
cp
: 파일이나 디렉토리를 복사합니다.$ cp source.txt destination.txt
mv
: 파일이나 디렉토리를 이동 또는 이름 변경합니다.$ mv old_name.txt new_name.txt
$ mv file.txt /path/to/directory/
rm
: 파일 또는 디렉토리를 삭제합니다.$ rm file.txt
$ rm -r directory/ # 디렉토리 삭제 (재귀적 삭제)
cat
: 파일의 내용을 출력합니다.$ cat file.txt
less
/ more
: 긴 파일 내용을 페이지 단위로 출력합니다.$ less file.txt
head
/ tail
: 파일의 앞부분/뒷부분 몇 줄을 출력합니다.$ head -n 10 file.txt
$ tail -n 10 file.txt
ps
: 현재 실행 중인 프로세스 목록을 출력합니다.$ ps aux
top
: 실시간 시스템 프로세스 및 리소스 사용량을 모니터링합니다.$ top
kill
: 프로세스를 종료합니다.$ kill <PID>
$ kill -9 <PID> # 강제 종료
df
: 파일 시스템의 디스크 공간 사용량을 확인합니다.$ df -h
du
: 디스크 사용량을 파일 및 디렉토리 단위로 확인합니다.$ du -sh *
uname
: 시스템 정보를 출력합니다.$ uname -a
ping
: 특정 호스트와의 네트워크 연결 상태를 확인합니다.$ ping example.com
ifconfig
또는 ip addr
: 네트워크 인터페이스의 상태를 확인합니다.$ ifconfig
$ ip addr
cd
), 파일 및 디렉토리 목록 확인(ls
), 파일 생성(touch
), 디렉토리 생성(mkdir
), 파일 복사(cp
), 파일 이동/이름 변경(mv
), 파일 삭제(rm
), 파일 내용 출력(cat
, less
), 프로세스 관리(ps
, top
, kill
) 등이 있으며, 시스템 및 네트워크 정보를 확인하는 명령어(df
, du
, uname
, ping
, ifconfig/ip addr
)도 자주 사용됩니다.