Judaeng

CLI(Command Line Interface) 본문

Develop/JavaScript

CLI(Command Line Interface)

Judaeng 2021. 1. 27. 19:37

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

 

왜(LINUX/UNIX)? 를 사용하는 것일까? 그것은 서버 시장에서의 유닉스 점유율이 매우 높고, AWS 및 Azure등에서 제공하는 서버는 대부분 리눅스, 유닉스 계열이라고 한다. 그리고 서버는 Open Source이기 때문에 비용적인 측면에서도 유리할 수 있다.

 

우리는 보통 컴퓨터 작업을 할 때, 윈도우창을 보면서 클릭을 하는 GUI(Graphic User Interface, 그래프 유저 인터페이스)를 이용한다. 하지만 CLI(Command Line Interface, 명령 줄 인터페이스)는 더욱 빠르고 강력하며, 원격 서버에서도 같은 환경에서 작업할 수 있다는 장점이 있다. Mac OS, Ubuntu에서는 Terminal이, Window에서는 CMD창이 바로 CLI를 제공하는 프로그램이다.

 

 

CLI 사용해보기


CLI는 명령어를 입력하는 방식으로 작동하기 때문에, 자주 사용하는 명령어는 기억해 두는 것이 좋다.

✔️ ls : 파일 보기

✔️ cd : 지정 디렉토리로 이동

cd ~ : 홈 디렉토리(현재 사용자의 개인화 파일들이 있는 디렉토리)
cd / : 루트 디렉토리(시스템의 최상위 디렉토리)
cd . : 현재 디렉토리
cd ..: 부모 디렉토리
// 파일 이름에 공백이 있을 경우
cd My\ Document/ // 공백에 \ 붙여준다.
// tip이 있다면 cd 입력하고 파일 이름을 cd Do 까지만 입력하고 tab을 누르면 자동완성이 된다.

✔️ pwd : 현재 디렉토리 확인

✔️ touch 파일 이름 : 빈 파일 생성

✔️ mkdir 디렉토리명 : 디렉토리 생성

✔️ cat 파일 이름 : 텍스트 형태의 파일 확인

✔️ mv [파일 이름 또는 디렉토리명] [이동시킬 장소] : 파일 및 디렉토리 옮기기

✔️ mv [파일 이름 또는 디렉토리명] [새로운 이름] : 파일 및 디렉토리 이름 바꾸기

✔️ cp [파일] [폴더명] : 파일을 지정 폴더에 복사

✔️ cp -r 폴더명 : 파일을 폴더에 복사

✔️ rm 파일명 : 파일 삭제 

rm 명령어는 정말 삭제할 것인지 확인을 하지않고 한번 삭제된 파일은 휴지통에 들어가지않고 바로 삭제된다.

✔️ rm -r 폴더명 : 폴더 삭제

✔️ sudo : 관리자(super user) 권한으로 실행 (명령어 앞에 붙여서 사용한다)

가능한 user 권한으로 해결하는 것이 좋다

Ubunto ex) sudo apt-get install tree

✔️ chown owner : 그룹명 파일명 : 파일 소유권 변경

sudo로 사용했을 경우, 소유자와 소유 그룹이 달라지는데 이 때에 소유자와 소유 그룹을 위에 명령어로 바꿔서 파일을 수정할 수 있다.

Ubunto ex) sudo chown [파일소유자이름] [소유 그룹명] [파일] 

✔️ chmod 명령어 : 접근 권한 (읽기/쓰기/실행가능) 여부 확인 ls -al 명령어로 확인할 수 있다.

 

삭제(remove) 명령어인 rm은 정말 조심해서 사용해야 한다고 한다. "정말 삭제할꺼야?" 라고 한번을 물어보지 않고, 휴지통에도 안넣고 바로 삭제해버리기 때문이다. 순간 방심하고 명령어 한 줄에 영혼을 끌어모아서 만든 작업 폴더가 통채로 날아가버릴수도 있다. rm -r, rm -rf 는 정말 조심해서 사용해야한다!

 

CLI & GUI

 

CLI에서 어떤 내용이 변경되면, GUI에도 똑같이 적용이 된다. 예를 들어, Terminal에서 touch 명령어를 사용해 빈 파일을 하나 생성했다면, Finder로 해당 폴더에 가보면 똑같이 파일이 하나 더 생성된 것을 확인할 수 있다.

둘은 사용하는 방식만 다를 뿐, 똑같은 기능을 하고 컴퓨터에 적용된다.

CLI 명령어로 GUI 프로그램을 실행시킬 수도 있다.

 

explorer . : 현재 폴더를 Windows 파일 관리자에서 보기

open . : 현재 폴더를 macOS Finder에서 보기

code . : 현재 폴더를 VS Code 에디터로 열기

 

자주 사용하게 될 CLI 프로그램

 

Git : 버전 관리 시스템

Package Manager (프로그램 추가/삭제)

  • Ubuntu : apt
  • macOS : Homebrew
  • Windows : chocolatey

vim : 텍스트 에디터

AWS CLI : 클라우드 서비스 관리

 

'Develop > JavaScript' 카테고리의 다른 글

expect, matcher  (0) 2021.01.28
Git? GitHub?  (0) 2021.01.27
Closure(클로저), Currying(커링)이란?  (0) 2021.01.26
Scope, let, const, var의 차이점  (0) 2021.01.26
Primitive Type(원시타입) vs Reference Type(참조 타입)  (0) 2021.01.26
Comments