터미널(Terminal)과 셸(Shell)

Kkd·2025년 1월 26일
0

매일메일 개념정리

목록 보기
74/93

터미널과 쉘은 사용자와 운영체제 간의 상호작용을 가능하게 하는 핵심 요소입니다. 이 둘의 역할과 차이, 그리고 터미널이나 쉘에서 자주 사용하는 필수 명령어에 대해 정리해 보겠습니다.


1. 터미널(Terminal)

  • 정의:
    터미널은 텍스트 기반의 인터페이스를 제공하는 응용 프로그램으로, 사용자가 명령어를 입력하고 시스템의 출력을 텍스트 형태로 확인할 수 있는 환경입니다.
    터미널 에뮬레이터(예: GNOME Terminal, iTerm2, Windows Terminal 등)는 실제 물리적 단말기 역할을 대신합니다.

  • 주요 역할:

    • 사용자 입력(명령어)을 받아서 쉘에 전달합니다.
    • 쉘의 출력을 화면에 표시합니다.

2. 쉘(Shell)

  • 정의:
    쉘은 명령어 해석기(Command Interpreter)로, 사용자가 터미널에 입력한 명령어를 해석하여 운영체제 커널에 전달하고, 그 결과를 사용자에게 보여줍니다.
    즉, 운영체제의 핵심 기능(커널)을 감싸는 "껍데기" 역할을 하며, 사용자와 OS 간의 중개자 역할을 합니다.

  • 주요 역할:

    • 명령어 해석 및 실행: 사용자가 입력한 명령어를 읽고 해석한 뒤, 해당 작업을 실행합니다.
    • 스크립트 실행: 여러 명령어를 조합하여 작성된 스크립트를 실행하여 복잡한 작업을 자동화합니다.
    • 환경 설정: 환경 변수 설정, 별칭(alias) 등록 등 사용자 환경을 구성합니다.
  • 쉘의 종류:

    • Bash (Bourne Again Shell): 가장 널리 사용되는 쉘.
    • Zsh, Fish, KornShell 등: 기능과 사용자 경험에 따라 선택 가능.

3. 터미널과 쉘의 관계

  • 터미널은 사용자와 쉘 사이의 인터페이스를 제공합니다.
  • 사용자가 터미널에 명령어를 입력하면, 이 명령어는 쉘에 의해 해석되어 실행되고, 그 결과가 터미널에 출력됩니다.
  • 예를 들어, 터미널에 ls -l을 입력하면, Bash 쉘이 해당 명령어를 해석하고, 디렉토리 내용을 목록 형식으로 출력한 후 터미널에 결과를 표시합니다.

4. 필수 터미널/쉘 명령어

터미널과 쉘에서 자주 사용되는 기본 명령어들을 정리하면 다음과 같습니다:

디렉토리 및 파일 탐색

  • 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)도 자주 사용됩니다.
profile
🌱

0개의 댓글