CLI

컬럼월드·2025년 9월 7일
post-thumbnail

안녕하세요.
저희 저번 포스터에서 Visual studio code를 다운로드하고, 나만의 에디터 만들기까지 진행해보았습니다.
이제 컴퓨터와 사용자 간의 소통이 가능합니다.
명령어 기반으로 컴퓨터를 제어하고 상호작용할 수 있는 프로그램을 터미널이라고 합니다.
터미널은 그래픽 사용자 인터페이스(GUI)가 없던 시절부터 사용되어 왔으며, 현재도 서버 관리, 개발, 자동화 작업 등에서 널리 사용됩니다.
사용자는 텍스트 기반 명령어를 입력하여 시스템의 다양한 기능을 제어하고 실행할 수 있습니다.
쉽게 말해, 마우스를 클릭하는 대신 키보드로 명령어를 직접 입력하여 컴퓨터에게 특정 작업을 지시하는 '창'이라고 생각하면 됩니다.
사용자가 텍스트 명령어(Command)를 입력하여 컴퓨터와 상호작용을 해서
Command Line Interface, CLI 방식이라고 말하기도 합니다.
이 CLI 방식은 마우스나 터치스크린 같은 그래픽 기반의 조작 방식(GUI)과 대조되는 개념이기도 합니다.

CLI와 GUI의 차이점을 좀 간단히 비교해보겠습니다.

  • CLI 란?
  • 텍스트 기반의 명령어 인터페이스로, 명령어를 직접 입력하여 시스템을 제어합니다.
    사용자는 키보드를 통해 명령어를 입력하고, 그 결과는 텍스트로 출력됩니다.
    터미널은 반복적인 작업이나 복잡한 시스템 제어를 간단하고 효율적으로 수행할 수 있는 장점이 있습니다.
    (예: 터미널, 명령 프롬프트)

  • GUI 란?
  • 마우스와 같은 포인팅 장치를 사용하여 그래픽 요소(아이콘, 창 등)를 클릭하고 시스템을 제어하는 방식입니다.
    사용자 친화적인 환경을 제공하며, 사용자가 복잡한 명령어를 몰라도 직관적으로 컴퓨터를 사용할 수 있습니다.
    그러나 GUI는 터미널에 비해 복잡한 작업의 자동화나 대규모 시스템 관리에는 제한이 있습니다.
    (예: 윈도우 탐색기, 스마트폰 앱)

우리는 왜 CLI를 배워야 할까요?

구글링 해보면 많은 이유들이 나오겠지만, 우선 두가지를 이야기 하고싶습니다.

첫번째, 많은 개발 도구와 프레임워크는 CLI 도구를 제공합니다.

예를 들어, Git, Node.js, Docker, Kubernetes, AWS CLI, Terraform 등은 모두 CLI 기반으로 동작합니다.

두번째, 많은 서버는 CLI 환경에서 관리됩니다.

특히 리눅스 서버는 CLI가 기본 관리 도구로 사용됩니다. 원격 서버에 접속해 서버를 관리하거나 배포할 때, CLI를 사용해야 하므로 CLI 환경은 개발자들에게 필수 요소 입니다.

터미널 실행 방법

운영체제별로 터미널 실행하는 방법이 다릅니다.

Windows에서 터미널 (CMD, PowerShell, WSL)

  1. CMD (명령 프롬프트):
    • 실행 방법:
      1. Win + R을 눌러 실행 창을 엽니다.
      2. cmd를 입력하고 Enter를 누르면 명령 프롬프트가 실행됩니다.
    • 특징: 기본적인 윈도우 명령어를 사용하여 파일 및 디렉토리 관리, 네트워크 설정 등을 수행할 수 있습니다.
  2. WSL (Windows Subsystem for Linux):
    • 실행 방법:
      1. Windows 스토어에서 WSL (Linux 배포판)을 설치한 후, WSL을 실행할 수 있습니다.
      2. 설치 후 cmd 또는 PowerShell에서 wsl 명령을 입력하여 리눅스 배포판에 접속할 수 있습니다.
    • 특징: WSL은 윈도우에서 리눅스 명령어를 사용할 수 있는 환경을 제공합니다.
      리눅스 명령어, 패키지 관리자 등을 윈도우에서 실행할 수 있습니다.
  3. PowerShell:
    • 실행 방법:
      1. 시작 메뉴를 열고 "PowerShell"을 검색하여 실행합니다.
    • 특징: PowerShell은 윈도우 시스템 관리에 더 강력한 기능을 제공하며, 객체 지향 프로그래밍을 지원합니다.
      스크립트 작성과 자동화 작업에 유리합니다.

1-2. Mac에서 터미널

  • 실행 방법:
    1. 애플 메뉴 또는 Finder에서 응용 프로그램 > 유틸리티 > 터미널로 이동하여 터미널을 실행할 수 있습니다.
    2. 또는 Command + Space를 눌러 Spotlight 검색 창을 열고 "터미널"을 검색하여 실행할 수 있습니다.
  • 특징: Mac의 터미널은 기본적으로 Bash 또는 Zsh 쉘을 사용하며, 리눅스와 비슷한 유닉스 기반 명령어를 사용할 수 있습니다.
    MacOS는 GUI 기반 운영체제지만, 터미널을 통해 개발자들이 효율적으로 작업할 수 있는 명령어 환경을 제공합니다.

1-3. Linux에서 터미널

  • 실행 방법:
    1. 대부분의 리눅스 배포판에서는 Ctrl + Alt + T를 눌러 터미널을 바로 실행할 수 있습니다.
    2. 또는 응용 프로그램 메뉴에서 터미널을 검색하여 실행할 수 있습니다.
  • 특징: 리눅스는 터미널 중심의 운영체제로, 대부분의 작업을 명령줄에서 수행할 수 있습니다. Bash 쉘이 기본으로 제공되며,
    다양한 패키지 관리 도구(예: APT, YUM)를 통해 소프트웨어 설치 및 관리를 할 수 있습니다. 터미널은 리눅스 시스템을 제어하는 가장 중요한 인터페이스입니다.

2. 우리가 사용할 터미널

앞서 설명한 여러 터미널들이 있지만 가장 기본적인 터미널인

  • Windows 사용자 : PowerShell
  • Mac 사용자 : Bash (기본 터미널)

를 사용하도록 하겠습니다.

터미널 기초 명령어

터미널을 열어 보셨나요? 😘

터미널은 운영체제에 따라 같은 동작에도 다른 명령어를 사용하기도 하지만
오늘은 공통으로 사용할 수 있는 주요 명령어들만 직접 사용해 보겠습니다.
아래의 명령어들을 확인하고 CLI 환경에서 직접 파일을 생성해보도록 하겠습니다.

*디렉토리란??
윈도우의 폴더와 같습니다.
운영체제들은 폴더안에 폴더를 만들어 계층구조(트리구조)로 파일 및 폴더를 관리합니다.

C:\
  └── Users
       └── 내이름
            ├── Documents
            │     └── report.docx
            └── Pictures
                  └── photo.jpg
                  
------------------------------------------------------------------
C:\ → 루트 디렉토리 (가장 위에 있는 폴더)

Users → 디렉토리

내이름 → 디렉토리

Documents → 디렉토리

report.docx → 파일

Pictures → 디렉토리

photo.jpg → 파일

1. 파일 및 디렉토리 관리

  • ls: 디렉토리 내 파일 목록 보기
    • PowerShell과 Bash에서 디렉토리 내 파일과 폴더 목록을 표시하는 데 사용됩니다.
    • 예시: ls -l (상세 정보 표시)
    • 적용 이미지
  • cd: 디렉토리 이동
    • PowerShell과 Bash 모두 동일하게 디렉토리 이동에 사용됩니다.
    • 예시: cd /path/to/directory
    • 적용 이미지
  • mkdir: 디렉토리 생성
    • 두 시스템에서 동일하게 새 디렉토리를 만듭니다.
    • 예시: mkdir new_directory
    • 적용 이미지
  • echo : 파일 생성
    • 파일 생성 명령어중 PowerShell과 Bash 모두 동일하게 사용됩니다.
    • 예시: echo "Hello, World!"(담을내용) > example.txt(만들 파일명)
    • 적용 이미지
  • cp: 파일 복사
    • 파일이나 디렉토리를 복사하는 명령어로, PowerShell과 Bash 모두 동일하게 사용됩니다.
    • 예시: cp source.txt(복사할 파일명) destination.txt(복사후 파일명)
    • 적용 이미지

  • rm: 파일 삭제
    • 두 쉘 모두 파일을 삭제할 때 rm 명령어를 사용합니다.
    • 예시: rm file.txt
    • 단, 디렉토리를 삭제할 때는 rm -r을 사용하여 재귀적으로 삭제해야 합니다.
    • 적용 이미지

2. 파일 내용 보기 및 텍스트 처리

  • cat: 파일 내용 출력
    • 파일의 내용을 터미널에 출력합니다.
    • 예시: cat example.txt
    • 적용 이미지
  • echo: 텍스트 출력
    • PowerShell과 Bash 모두에서 화면에 문자열을 출력하는 데 사용됩니다.
    • 예시: echo "Hello, World!"

3. 디렉토리 및 파일 정보

  • pwd: 현재 작업 디렉토리 표시
    • 현재 디렉토리의 경로를 출력합니다.
    • 예시: pwd
    • 적용 이미지
  • clear: 터미널 화면 지우기
    • 화면을 깨끗하게 초기화합니다.
    • 예시: clear

*(Option) 표시는 좀 더 해보실 분들 해보셔도 좋습니다.

4. (Option)프로세스 및 시스템 정보

  • ps: 실행 중인 프로세스 목록 보기
    • 현재 실행 중인 프로세스를 확인하는 데 사용됩니다.
    • 예시: ps
  • kill: 프로세스 종료
    • 특정 프로세스를 종료할 때 사용됩니다.
    • 예시: kill [PID] (프로세스 ID로 프로세스 종료)

5. (Option)네트워크 작업

  • ping: 네트워크 연결 테스트
    • 두 쉘에서 네트워크 연결을 확인하기 위해 사용됩니다.
    • 예시: ping google.com

6. (Option)환경 변수

  • $PATH: 시스템 경로 확인
    • Bash와 PowerShell 모두에서 경로 변수를 출력할 때 사용됩니다.
    • 예시:
      • Bash: echo $PATH
      • PowerShell: $Env:PATH
  • export: 환경 변수 설정
    • 환경 변수를 설정하는 명령어입니다.
    • 예시: export VAR_NAME=value


저는 터미널로 파일을 만들고, TXT 파일도 만들어 보았습니다.🙂

profile
안녕하세요, 코딩과 잡다한 얘기도 좋아해요.

0개의 댓글