Command Line Interface 이란?

조 은길·2021년 11월 28일
0
post-thumbnail
post-custom-banner

Command Line Interface 이란?

Command Line Interface(이하 CLI)는 Graphic User Interface(이하 GUI)와는 다르게, 마우스와 각종 UI 컴포넌트 대신, 표준 입출력 시스템(Standard I/O)을 통한 입력과 그에 따른 결과를 출력하는 형태로 나타난다. 컴퓨터의 시작은 GUI가 아닌 CLI였으며, 시대를 거쳐서 우리는 마우스나, 터치를 이용한 직관적인 프로그램의 형태를 만날 수 있었다.

그러나 여전히 CLI는 여러가지 측면에서 유리하고, 개발자라면 반드시 배워야 할 주요 스킬이다. 강력하고 빠른 배치 작업들을 수행할 수 있으며, 컴퓨터, 특히 Unix/Linux 시스템을 깊이 알기 위해서는 많은 부분을 CLI를 이용해야만 한다.

  • Why CLI??
    1. 빠르고, 강력하다.
      => 마우스로 여러 번 왔다갔다 해야 실행될 작업들을 명령어 몇 줄로도 실행할 수 있다.
    2. 접근성이 좋다.
      => 원격에 있는 서버에 접근하고 싶다면, CLI를 통해서 마치 개인 컴퓨터에 접근하듯이 이용할 수 있다.

이번 시간에는 Unix/Linux의 주요 Command Line 명령어를 정리해보면서, Achievement Goals들을 달성해보자.

들어가기 앞서, 왜 window OS가 아닌 Unix/Linux 계열의 명령어를 배워야 하는가??

=> 이러한 이유로, 서버를 연습하고자 할 때는 리눅스 서버라고 보통은 생각하고 작업을 한다.

Achievement Goals

  • 터미널에서 CLI를 사용하는 것이 GUI로 작동하는 것과 차이가 없음을 이해할 수 있다.
  • 기본적인 unix/linux 명령어를 사용할 수 있다
    • ls
    • cd
    • mkdir
    • rm
    • pwd
    • touch
    • cat
    • mv
    • cp
  • 명령어를 사용할 때, 현재 내가 위치한 디렉토리를 파악할 수 있다.
  • 명령어를 사용할 때, 등장하는 키워드에 대해 이해할 수 있다
    • 홈 디렉토리 ~
    • 루트 디렉토리 /

명령어 정리

기본 명령어 같은 경우 다른 곳에서 더 잘 정리해놨기 때문에, 해당 링크를 참고해보면서, 필요한 명령어가 있을 때마다 적용해보도록 하자.

Advanced Challenge (optional)

  • 권한과 관련된 unix/linux 명령어를 사용할 수 있다. (advanced)

    1. sudo



    => 뭔가 새로운 프로그램을 설치할 때도, 이런 sudo를 요구한다.

    => sudo는 매번 password를 요구하는 것이 아니라, 한 번만 인증하면, 그 이후로는 더이상 묻지 않는다.

    2. chown

    • unix/linux의 파일/디렉토리 소유권에 대해 이해할 수 있다. (advanced)

      ex) => 해당 예시에서는 소유자가 steve이고, 소유 그룹은 staff인 것을 알 수 있다.
      즉, sudo로 무언가를 만들었을 때, 소유자가 steve가 아닌 root가 되며, sudo로 만들어진 파일에 접근하거나, 수정할 수 없는 상황이 발생한다.
      ex) sudo (관리자 권한)을 통해서, testfile.txt를 생성했다. 그리고 ls -al를 통해서 소유자가 root임을 알 수있다. 이제, 해당 파일을 열어서 변경이 가능한지 확인해보자! 이렇게 변경 후, 저장을 하려고 하면, 저장이 실패해서, 관리자 권한(sudo)으로 다시 시도해볼 것인가?? 하고 뜬다. 물론, 여기서 관리자 권한으로 파일을 변경할 수 있다. 그러나, file의 소유자를 변경하므로써, 이 문제를 해결할 수 있는데, 이 때 등장하는 것이 바로 chown이다. sudo chown steve:staff testfile.txt 즉, "소유자를 steve로 이전하고, 소유 그룹은 staff로 이전한다."라는 의미이다. 그리고 ls -al을 통해서 변경되었음을 알 수있다. 이제 다시 한 번, 변경 후에 저장을 시도해본다면, 정상적으로 변경되었음을 알 수 있다.

      - chown의 필요성

      위와같이 파일의 소유자가 누구인지는 굉장히 중요하다. 예를 들어서, 특정 리눅스 시스템이 꼬여서 새로운 프로그램을 설치하지 못할 때, 특정 폴더를 자신의 소유로 바꿔주므로써, 그 문제를 해결할 수도 있다.

GUI 환경에서도 CLI를 함께 쓰면, 더 편해진다

=> GUI 프로그램을 실행시키려고 할 때도, 일일히 폴더를 찾아들어가지 않고, 명령어 몇 줄로 간편하게 끝낼 수 있기 때문에, CLI가 편할 때가 있다.

앞으로 자주 사용하게 된 CLI 프로그램들

profile
좋은 길로만 가는 "조은길"입니다😁
post-custom-banner

0개의 댓글