CLI(Command Line Interface) 친해지기

 CLI(Command Line Interface) 친해지


시스템과 상호작용하는 인터페이스는 여러가지가 존재합니다. 그들 중 대표로 3가지의 인터페이스에 대해서 간략하게 설명하고 그중 CLI의 환경에서 익숙해지는 방법을 서술하겠습니다.


시스템과 상호작용하는 인터페이스는 대표적으로 3가지가 있다.

1. GUI (Graphical User Interface)

2. CUI (Character User Interface)

3. CLI (Command Line Interface)


각각 상세하게 예시를 들어서 설명하자면

GUI (Graphical User Interface).

그래픽 요소(아이콘, 버튼, 윈도우 등)을 사용하여 사용자와 컴퓨터가 상호작용 한다.

ex) Windows, mac 등의 운영체제


CUI (Character User Interface)

텍스트 기반의 인터페이스로, 명령어를 입력하여 작업을 수행한다.

ex) DOS, UNIX 등 GUI운영체제가 나오기 전 운영체제


CLI (Command Line Interface)

명령줄을 통해 입력하는 방식으로 작업을 수행한다.

ex) 터미널, 콘솔, CMD.


왜 GUI가 있는데 CUI와 CLI를 알아야 할까?

GUI는 굉장히 효율적인 인터페이스입니다. 여타 알고 있듯이 바탕화면에서 단순히 폴더를 생성한다고 생각한다면 마우스 클릭 몇번이면 순식간에 생성할 수 있다.

허나, CUI나 CLI는 직접 키보드로 타이핑 하여 명령어를 입력해야만 원하는 작업을 수행할 수있다.

이렇듯 GPU가 더 간편하고 효율적인데 어째서 우리는 CUI나 CLI를 알아야 할까?

그 이유는 간단하다.

GUI의 운영체제는 컴퓨터의 시스템을 건들이는 과정이 굉장히 보수적이다. 혹은 아예 접근 자체를 막는 경우도 있다. 하지만, CLI를 이용한다면 시스템 관리를 적극적으로 이용할 수 있기 때문이다.

이 글을 읽는 분이 개발자를 목표로 잡으셨다면 GUI환경보다 CUI, CLI환경에 더 익숙해져야 한다. 해당 환경은 시스템 관리, 서버 작업 등등 기술적인 작업에서 GUI보다 더 강력한 도구로 활용되기 때문이다.


실습을 시작하겠습니다.


간단하게 용어 정리를 먼저 하겠습니다. 

GUI환경에서 '폴더'라고 명명한 것은 CLI환경에서 디렉토리(directory)라고 말합니다. 

폴더나 디렉토리 모두 같은 의미라고 생각하시면 됩니다.


검색창에 CMD 혹은 명령 프롬프트 를 검색하신 뒤에, 관리자 권한으로 실행합니다.


CMD 실행 화면

보시면, 윈도우의 버전과 밑에 C:\WINDOWS\system32>와 같은 주소가 나타날 것입니다.

이는, C드라이브 안의 WINDOWS디렉토리 안에 system32 디렉토리 경로라는 뜻입니다. 해당 경로는 사용자마다 다르기 때문에, 위 사진의 경로와 다르다고 해서 걱정할 필요는 없습니다.

GUI환경에서는 이렇게 확인할 수 있습니다.


다음 목표로 특정 디렉토리로 이동하는 것을 알려 드리겠습니다. 

원활한 테스트 및 실습을 위해, 바탕화면에 임의로 된 디렉토리와 그 안에 다수의 디렉토리 및 파일을 생성합니다.


우선, GUI환경에서 간단하게 생성을 완료합니다.

해당 디렉토리를 생성했다면, 이제 해당 디렉토리로 이동해보겠습니다.

GUI환경에서는 단순히 클릭으로 해당 디렉토리로 이동할수 있으나 CLI환경에서는 명령어를 입력해야 합니다.

해당 디렉토리의 위치 주소를 GUI환경에서 복사한 뒤 CMD에 

cd <원하는 디렉토리 주소> 를 입력한 뒤 엔터를 누릅니다.





해당 사진을 보면 본래, C:\WINDWS\system32> 라는 주소에서 C:\Users\yangg\Desktop\test> 의 경로로 이동된것을 확인할 수 있습니다.

디렉토리의 주소를 입력하기전에 있었던 명령어는 CD(change directory) 즉, 말 그대로 디렉토리를 변경한다. 라는 뜻의 명령어입니다.

추가로

cd ..     = 한단계 상위 디렉토리로 이동.

cd /     = 가장 최상위 디렉토리로 이동. 



이제 해당 디렉토리로 이동을 했으니, 그 안에 어떤 파일이 있는지 혹은 어떤 폴더가 있는지 확인하는 방법을 알려드리겠습니다.

폴더를 뜻하는 디렉토리(directory)에서 축약된 dir를 입력하면 됩니다.



해당 사진을 보면, test디렉토리 안에 어떤 dir(폴더)가 있는지, 어떤 text파일이 있는지 확인할 수 있습니다.

만약, 해당 디렉토리 안의 모든 디렉토리의 경로를 알고싶을 때는 tree 명령어를 입력하면 됩니다.


이와 같이 디렉토리의 경로를 한눈에 알아볼 수 있습니다. 



이제는 특정 디렉토리의 생성 및 삭제 등등을 알아보겠습니다.

생성 명령어는 mkdir(make directory) 혹은 md(mkdir)입니다.
mkdir도 너무 길다 해서 간단하게 md로 축약된 것을 확인할 수 있으며, 두 명령어 모두 실제로 작동합니다.

mkdir <디렉토리 이름>
md <디렉토리 이름>

해당 사진을 보면, mkdir / md 모두 실제로 작동하는 것을 확인할 수 있습니다.

실제로 GUI환경에서 폴더가 생성되는 것을 확인할 수 있습니다.
이 뜻은, 반대로 GUI환경에서 폴더를 생성 및 삭제해도 CLI환경에서 확인할 수 있다는 뜻입니다.

다수의 디렉토리를 한번에 생성 할 수도 있습니다.



삭제는 rmdir(remove directory) <삭제를 원하는 폴더 명>입니다.
혹은, 이것도 너무 길다 하면 rd <삭제를 원하는 폴더 명> 입니다.

해당 사진을 보면 rmdir aa의 명령어의 뜻은 aa의 이름을 가진 디렉토리를 삭제한다는 뜻입니다.

삭제 명령어의 경우 굉장히 강력하고 위험하기에 해당 디렉토리 안에 어떤 파일이 있는지, 혹은 명령어의 옵션을 잘 확인해야 합니다.

/s = 지정된 폴더 자체와 그 안의 모든 폴더 및 파일을 지운다. 
/q = /s옵션으로 폴더 트리(경로)를 지우는 데 문제가 없으면 다시 묻지 않는다.

예시로 한때, 위험한 명령어였던 rd C:\ /s /q 가 있습니다.

이 뜻은, C드라이브 안에 있는 모든 파일 및 폴더들을 다시 묻지 않고 전체 삭제라는 뜻입니다.

삭제 또한, 다수의 디렉토리를 삭제 할 수 있습니다.


디렉토리를 이동 시키는 방법은 아래의 명령어를 입력하면 됩니다.
move [이동할 폴더 경로] [이동할 경로]

해당 사진을 보면, abcd 디렉토리를 한글 디렉토리 안으로 이동시키는 명령어입니다.


이번 시간에는 아주 기초적이며, 가장 사용할 일이 많을 명령어를 알아봤습니다.

폴더를 생성/삭제/이동 기능과 해당 폴더 안에 어떤 파일 및 폴더가 있는지. 그리고 해당 폴더의 경로는 어떻게 되어있는지 등 알아봤습니다.

다음시간에는 GitHub의 CLI를 사용한 활용 방법에 대해서 작성하겠습니다.

부족한 글 읽어주셔서 감사합니다.


cd <이동하고싶은 경로>

mkdir <디렉토리 생성>

md <디렉토리 생성>

rmdir <디렉토리 삭제>

rd <디렉토리 삭제>

move <디렉토리 이동>

댓글

이 블로그의 인기 게시물

VScode의 리액트 기능을 통한 웹사이트 개발 방법