IT/CLI

터미널, 쉘, POSIX, CLI 이란?

DS지니 2021. 3. 20. 00:39
728x90
반응형

위키백과

명령 줄 인터페이스(Command-line interface) CLI, 커맨드 라인 인터페이스) 또는 명령어 인터페이스 가상 터미널 또는[텍스트 터미널]을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 뜻한다. 즉, 작업 명령은 사용자가 툴바 키보드 등을 통해 문자열의 형태로 입력하며, 컴퓨터로부터의 출력 역시 문자열의 형태로 주어진다.

 

1) 터미널(Terminal)

터미널은 원래 유닉스 기반의 대형 컴퓨터에서 사용자들이 컴퓨터에 접속하기 위해 사용했던 단말기를 의미 합니다.

즉, 하나의 컴퓨터를 케이블로 연결해 여러명이 접속해 사용하는 방식이었습니다. 지금은 개인용 컴퓨터를 사용하기 때문에 과거와 같은 터미널을 사용하지는 않습니다. 대신 원격으로 컴퓨터에 접속하거나 혹은 명령어입력을 통해 컴퓨터를 직접 제어 하는데, 이때 사용하는 소프트웨어를 터미널 혹은 콘솔(Console)이라고 합니다.

 

지금과 같은 GUI(Graphical User Interface)가 보편화되기 전에는 CLI(Command Line Interface)를 주로 사용했고 현재 CLI의 사용은 급속도로 감속했습니다. 다만 유닉스 계열에서는 아직 CLI를 더 많이 사용하고 PC의 경우에도 최근에는 개발에 필요한 소프트웨어를 설치하고 모듈을 관리하고 프로젝트 구조를 생성하거나 github을 통해 공유하는 과정에서 CLI사용이 급증하고 있는 추세입니다.

 

최근 파이썬, 루비, node, github 등의 사용이 많은데 이들을 사용하기 위해 CLI가 주로 사용됩니다. GUI환경의 개발도구 등에서도 모두 지원 가능한 기능이지만 CLI가 더 신속하고 편리하기 때문에 최신개발을 위해서는 CLI에 익숙해져야 합니다.

 

2) 쉘(Shell)

쉴은 조개 껍데기의 의미로 터미널을 사용하기 위한 소프트웨어 환경을 말합니다.

예를 들어 키보드 입력과 명령을 실행할 수 있도록 해주고 디렉토리의 이동과 파일의 생성 등을 지원하며 필요시 스크립트 작성을 지원해 복잡한 작업을 한번에 처리할 수 있도록 하는 등의 기능을 제공합니다.

 

유닉스 사용을 위해 제일 처음 배우는 것이 바로 쉘 이며 쉘 역시 소프트웨어이므로 여러 종류의 쉘이 존재합니다.

쉘에 따라 명령어 자동완성이나 텍스트 강조 등 여러 기능에 차이가 있습니다.

 

- 종류 : sh, ksh, csh, bash 등

 

- Mac OS 쉘 : 유닉스 커널 사용, POSIX 공식 지원 (=유닉스와 동일한 환경보장)

 

- Windows 쉘 : 과거 DOS부터 이어져 오는 cmd (command) 프로그램이 쉘입니다. 지금은 Power shell이 윈도우의 기본 쉘입니다. 유닉스 호환 쉘을 사용하기 위해서는 최신 윈도우 10 업데이트 + 개발자 모드 활성화 + 리눅스 서브시스템 추가기능 사용 설정을 해야합니다.

 

3) POSIX (Portable Operating System Interface X(Unix))

POSIX는 IEEE가 제정한 유닉스 운영체제의 공통 API 규격으로 이식성이 높은 유닉스 응용프로그램을 개발하기 위함에 있습니다. 이 규격을 따르면 유닉스와 직접적인 연관이 없어도 유닉스호환(Unix-like) 운영 체제라고 볼 수 있습니다.

리눅스의 경우 유닉스와는 별도로 개발되었지만 POSIX 표준을 거의 다 준수하기 떄문에 리눅스는 유닉스 호환 운영 체제로 말할 수 있습니다.

 

유닉스 계열인 Darwin BSD 에 기반하는 macOS 도 POSIX를 따르고 있으며 10.5버전부터는 POSIX 정식인증을 받아 유닉스와 동일한 운영환경을 보장하고 있습니다.

 

윈도우즈의 경우 XP에서 POSIX 지원이 사라져 cygwin 이라는 프로그램을 이용해야 했으나 Windows 10 Anniversary Update에 들어서 WSL(Windows Subsystem for Linux)이라는 리눅스 서브시스템을 다시 탑재해 POSIX 환경을 이용할 수 있게 되었습니다. 

 

따라서 POSIX를 지원하는 경우 윈도우, 맥, 리눅스 등에서 모두 동일한 명령어와 사용법으로 CLI를 사용할 수 있습니다.

 

4) CLI(Command Line Interface)

CLI는 윈도우 화면에서 마우스 등을 이용해 컴퓨터를 조작하는 것이 아니라 터미널에서 텍스트로 컴퓨터를 조장하는 방식을 말합니다.

 

CLI를 사용하기 위해서는 터미널 프로그램이 필요합니다. 리눅스기본 터미널을 사용하면 되고 개인 취향의 터미널 프로그램을 다운로드해서 사용해도 됩니다.

Visual Studio Code 혹은 Elips, IntelliJ 와 같은 개발 도구들은 자체적으로 터미널 프로그램을 내장하고 있어 간단한 작업은 개발도구에서 제공하는 터미널을 써도 무방 합니다.

 

윈도우의 경우 기본 cmd에서는 유닉스 명령어가 동작하지 않고 일부 다른 명령어를 사용하는 경우가 많습니다. 윈도우즈 Power Shell의 경우 일부 유닉스 쉘 명령어가 동작하기 때문에 기본적인 사용은 Power Shell로 충분합니다.

만일 윈도우에서 본격적으로 리눅스 환경과 같이 CLI를 사용하고 싶다면 WSL(Window Subsystem for Linux)을 설치해야 합니다. 

 

- WSL 설치 :

제어판 프로그램 및 기능 - Windows 기능 켜기/끄기 - Linux용 Windows 하위 시스템 체크 후 컴퓨터 리부팅 - 윈도우 스토어 앱 linux 검색 - 윈도우에서 리눅스 앱 실행하기 선택 - 리눅스 목록 중 원하는 것 설치(ex. ubuntu) - power shell에서 bash 실행(또는 ubuntu앱 실행) - 완료(윈도우와 독립적으로 가상의 리눅스 환경이 실행되어 동작하는 구조가 됩니다.)

728x90
반응형

'IT > CLI' 카테고리의 다른 글

파이썬 가상환경 설정  (0) 2021.03.20
CLI 기본 명령어  (0) 2021.03.20
CLI의 기능  (0) 2021.03.20
Interface 인터페이스  (0) 2021.03.19
CLI 관련 Youtube 영상 및 자료  (0) 2021.03.19