[AI 헬스캠프] CLI 환경 알아보기

 

CLI (Command Line Interface) 

오늘은 CLI (Command Line Interface)에 대해 알아보려고 합니다.

CLI 는 사용자가 텍스트 명령어를 입력하여 컴퓨터를 제어하는 명령줄 인터페이스를 의미합니다.

CLI를 사용할 수 있도록 텍스트 기반 입출력을 제공하는 프로그램이 있는데, 이를 터미널(Terminal) 이라고 합니다.

 

터미널은 입력받은 명령어를 쉘(Shell)을 통해 해석하고 실행하여

쉘이 실행한 결과를 다시 사용자에게 텍스트로 출력하는 역할을 합니다.

터미널은 그래픽 사용자 인터페이스(GUI)가 없던 시절부터 사용되어 왔고,

현재도 서버 관리, 개발, 자동화 작업 등에서 널리 사용되고 있습니다.

 

CLI와 GUI를 간략하게 표로 비교해보겠습니다.

CLI
(Comman Line Interface)
커맨드 라인 인터페이스
텍스트 기반 명령어,
직접 입력을 통한 시스템 제어 
키보드를 통한 명령어 입력,
결과도 텍스트로 출력됨
반복적인 작업, 복잡한 시스템 제어를 간단하고 효율적으로 수행 가능
GUI
(Graphical User Interface)
그래픽 사용자 인터페이스 
마우스, 터치스크린 이용
그래픽 요소를 클릭하여
시스템 제어 
사용자 친화적,
복잡한 명령어 없이 직관적인 컴퓨터 사용
터미널에 비해 복잡한 작업의 자동화나 대규모 시스템 관리에 제한적

 

CLI 를 배워야 하는 이유로는 두가지로 말할 수 있습니다.

- 많은 개발 도구와 프레임워크는 CLI 도구를 제공. 

(ex. Git, Node.js, Docker, Kubernetres, AWS CLI, Terraform 등)

- 많은 서버가 CLI 환경에서 관리됨.

(특히 리눅스 서버는 CLI가 기본 관리 도구로 사용됨. 원격 서버 접속 후 서버 관리 및 배포 시 CLI 사용)

 

CLI에 대해 알아보았으니, 터미널을 실행해보겠습니다.

각 운영체제 별 터미널은 다음과 같습니다.

- Windows: CMD, PowerShell, WSL

- Mac: Bash, Zsh 쉘

- Linux: Bash 쉘

 

제가 사용하는 Windows의 터미널 각 특징은 다음과 같습니다.

° CMD (명령 프롬프트): 기본적인 윈도우 명령어를 사용해 파일 및 디렉토리 관리, 네트워크 설정 등 수행

° WSL (Windows Subsystem for Linux): Windows 스토어에서 설치 후 실행 가능. 윈도우에서 리눅스 명령어를 사용할 수 있는 환경 제공. 리눅스 명령어, 패키지 관리자 등을 윈도우에서 실행 가능.

° PowerShell: 윈도우 시스템 관리에 더 강력한 기능 제공, 객체 지향 프로그래밍 지원, 스크립트 작성과 자동화 작업에 유리.

 

저는 Windows의 CMD, PowerShell을 실행해보겠습니다.

<CMD>

• Win+R 키를 눌러 실행 창을 엽니다.

• cmd를 입력하고 Enter 를 누르면 명령 프롬프트가 실행됩니다.

CMD 가 실행된 모습입니다.

 

<PowerShell>

시작 메뉴를 열고 "PowerShell"을 검색합니다. 

 

• "열기" 버튼을 통해 PowerShell을 실행해줍니다.

PowerShell이 실행된 모습입니다.
출처: https://iconscout.com/free-icon

 

이제 PowerShell 을 열었으니, 터미널 기초명령어에 대해 알아보고 사용해보도록 하겠습니다.

 

1. 파일 및 디렉토리 관리

* 디렉토리: 윈도우의 폴더. 운영체제들은 폴더 안에 폴더를 만들어 계층구조로 파일 및 폴더를 관리함.

° 1s: 디렉토리 내 파일 목록보기 (예시: 1s -1)

- PowerShell 과 Bash 에서 디렉토리 내 파일과 폴더 목록을 표시하는데 사용됩니다.

° cd: 디렉토리 이동 (예시: cd /path/to/directory)

- PowerShell과 Bash 모두 동일하게 디렉토리 이동에 사용

° mkdir: 디렉토리 생성 (예시: mkdir new_directory)

° echo: 파일 생성 (예시: echo "Hello, World!"(담을내용) > example.txt(만들 파일명)

° cp: 파일 복사 (예시: cp source.txt(복사할 파일명) destination.txt(복사후 파일명)

° rm: 파일 삭제 (예시: rm file.txt)

- 파일 삭제시 사용, 디렉토리를 삭제할 때는  rm -r을 사용.

 

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

° cat: 파일 내용 출력 

° echo: 텍스트 출력

 

3. 디렉토리 및 파일 정보

° pwd: 현재 작업 디렉토리 표시

° clear: 터미널 화면 지우기

 

4. 프로세스 및 시스템 정보

° ps: 실행중인 프로세스 목록 보기

° kill: 프로세스 종료 

 

5. 네트워크 작업

° ping: 네트워크 연결 테스트

 

6. 환경 변수

° $PATH: 시스템 경로 확인

° export: 환경 변수 설정

 

직접 해본 스크린샷과 시행착오를 공유해보겠습니다.

제가 해본 내용은 [Desktop 으로 이동> Beginner-track 폴더 생성> .txt 확장자 텍스트 파일을 만들어 내부 내용을 자유롭게 입력> 만든 파일을 copy.txt 라는 이름으로 복사> 복사한 파일을 화면에 출력] 이었는데요.

 

Desktop 으로 이동 후 폴더를 생성하고, txt 파일을 생성 후 copy 했으나 copy.text 로 생성하여 제대로 나오지 않아

재생성하였고, 파일내용을 화면에 출력까지 성공 후 과정을 다시 되짚어 보니 바탕화면에 파일을 생성한 걸 깨닳았습니다. 🥲

아이구 저런..

다시 생성한 폴더로 이동하여 이전 과정을 반복 후 과제를 완료할 수 있었습니다. 👌

 

CLI 환경에 대해 알아보고,

터미널도 직접 사용해보며 바로 접목시키는 실습까지 하여 뿌듯함을 느낄 수 있었습니다.

다음은 Git 와 GitHub에 대해 알아보겠습니다. 

감사합니다. 😊