CLI,Git,GitHub

CLI 기본 명령어

프도의길 2021. 10. 19. 08:16

컴퓨터를 조작하기 위해서는 다양한 입력(Input)이 필요합니다. 이 화면을 보기 위해 마우스를 사용하고, 메시지를 입력하기 위해 키보드를 사용합니다. 입력을 담당하는 키보드나 마우스를 입력소스(Input source)라고 합니다. 키보드나 마우스 외에도 카메라나 마이크 등 컴퓨터에 새로운 명령을 전달하는 모든 소스가 입력소스입니다.

 

반대로, 입력소스에 의해 또는 작성된 프로그램에 의해 모니터에 화면을 나타내거나, 음악을 재생하면 소리를 스피커로 전달하여 사용자가 인식할 수 있도록 하는 일을 출력(Output)이라고 합니다. 시각적 출력를 담당하는 모니터나 청각적 출력를 담당하는 스피커를 출력소스(Output source)라고 합니다. 모니터나 스피커 외에도 스마트 홈을 연결하여 전등이나 공기청정기를 조작하는 경우, 전등이나 공기청정기도 출력소스가 될 수 있습니다.

 

* 컴퓨터를 조작하기 위한 입력과 출력을 간단하게 I/O(Input/Output)라고 표기하며, "아이오"라고 읽습니다.

리눅스의 터미널은 키보드의 입력과 모니터의 출력으로 모든 작업을 할 수 있습니다. 리눅스 터미널은 GUI가 개발되기 이전부터 컴퓨터를 조작하기 위해 사용되었기 때문에, GUI가 할 수 있는 모든 작업은 CLI로 할 수 있습니다. 다만 사람이 키보드로 입력하면, 모니터에 글자로 출력하기 때문에 GUI에 익숙해진 현대인에게 낯설게 느껴질 뿐입니다.

 

GUI가 PC(Personal Computer, 개인 컴퓨터)시장을 지배하게 되었지만, CLI는 여전히 여러가지 측면에서 유리합니다. 대표적으로 아마존 웹 서비스(AWS, Amazon Web Service)의 클라우드 컴퓨팅처럼, 대량의 서버 컴퓨터를 설치해야 하는 서비스를 잠시 살펴보겠습니다. AWS는 4천 평이 넘는 규모의 데이터센터를 29개 이상 가지고 있고, 계속해서 확장하고 있습니다. 하나의 데이터 센터에는 최소 5만개 이상의 서버 컴퓨터가 설치됩니다. 이렇게 수많은 컴퓨터에 GUI를 적용하기 위해 서버 컴퓨터마다 I/O 소스(키보드, 마우스, 모니터 등)를 부착하는 일은 불가능에 가깝습니다.

AWS 이전부터 서버 컴퓨터를 대여하는 일은 존재했습니다. AWS 이전 세대의 선배 개발자들은 GUI가 없는 서버 컴퓨터를 어떻게 다룰 수 있었을까요? CLI를 이용해 서버 컴퓨터로 접속을 요청하면, 서버 컴퓨터는 요청한 컴퓨터의 출력소스(모니터)를 이용합니다. 선배 개발자들은 서버 컴퓨터에 직접 찾아갈 필요없이, 자신의 모니터로 서버 컴퓨터와 소통했습니다. 이 방법은 매우 효율적이어서, 지금도 수많은 현직 개발자가 이 방법을 통해 서버 컴퓨터와 소통합니다. 그리고 대부분의 서버 컴퓨터는 무료로 이용할 수 있는 Linux 운영체제가 설치되어 있습니다. Linux 환경에서 CLI를 이용하는 방법은 개발자가 되기를 원하는 사람이라면, 반드시 학습해야 합니다.

 

기본적인 명령어

  • pwd: 현재 위치를 확인하는 명령어
  • mkdir: 새로운 폴더를 생성하는 명령어
  • ls: 폴더나 파일의 목록을 출력하는 명령어
  • nautilus (Ubuntu), open (macOS): 현재 폴더를 파일 탐색기로 여는 명령어
  • cd: 폴더에 진입하는 명령어
  • touch: 새로운 파일을 생성하는 명령어
  • cat: 파일의 내용을 터미널에 출력하는 명령어
  • rm: 폴더나 파일을 삭제하는 명령어
  • mv: 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어
  • cp: 폴더나 파일을 복사하는 명령어
  • sudo: 관리자 권한을 이해할 수 있다.

 

'CLI,Git,GitHub' 카테고리의 다른 글

Git 브랜치 명령어 모음  (0) 2022.05.10
기본적인 명령어  (0) 2021.10.19