CLI

jeyoon·2021년 1월 28일
0
post-custom-banner

Command Line Interface(CLI)

  • 가상 터미널 또는 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식

  • Graphic User Interface(사용자가 화면을 통해 컴퓨터와 소통하는 방식, 이하 GUI)와는 다르게, 마우스와 각종 UI 컴포넌트 대신 표준 입출력 시스템(Standard I/O)을 통한 입력과 그에 따른 결과를 출력하는 형태로 나타남

  • Why Command Line Interface?

    • 빠르다
    • 강력하다
    • 접근성이 좋다
  • Why *NIX(LINUX/UNIX)?

    • 서버 시장에서 점유율이 매우 높음
    • AWS 및 Azure 등에서 제공하는 서버는 대부분 *NIX 계열
  • 프롬프트란?

    • 터미널의 CLI 명령줄 대기모드
    • 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간
    • 프롬프트에 아래의 명령어들 입력

CLI 기본 명령어

  • pwd - 현재 위치(디렉토리=폴더) 확인

  • mkdir [dir_name] - 새로운 폴더 생성

  • ls - 특정 폴더에 포함된 파일이나 폴더 확인

    • ls-a - 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력

    • ls-l - 폴더나 파일의 포맷을 전부 표현

    • ls-al 또는 ls-la - 모든 항목의 포맷을 표현

      • 명령어 ls와 함께 옵션 l을 사용하면, 가장 왼쪽에 출력되는 두 글자 d-를 확인할 수 있다. 여기서 d로 출력된 경우는 폴더를, -로 출력된 경우는 파일을 나타낸다. 폴더는 다음 명령어 cd를 통해 진입할 수 있지만, 파일이라면 진입할 수 없다.
 jeyoon@MacBookAir desktop % ls -la
total 9368
drwx------@ 13 jeyoon  staff      416  4 14 09:46 .
drwxr-xr-x+ 32 jeyoon  staff     1024  4 14 09:32 ..
-rw-r--r--@  1 jeyoon  staff    10244  4 14 09:39 .DS_Store
-rw-r--r--   1 jeyoon  staff        0  3  3 22:14 .localized
drwxrwxr-x@  4 jeyoon  staff      128  1 27 21:42 05-Guess-My-Number
drwxr-xr-x  16 jeyoon  staff      512  4  9 09:47 IM27
drwxr-xr-x   5 jeyoon  staff      160  4  1 05:36 NomadCoder
drwxr-xr-x   6 jeyoon  staff      192  4 14 00:47 codestates
drwxr-xr-x   2 jeyoon  staff       64  4 14 09:39 helloWorld
drwxr-xr-x  12 jeyoon  staff      384  4  1 05:28 images
-rw-r--r--@  1 jeyoon  staff  4781530  4 14 00:36 pathways.pdf
drwxr-xr-x   4 jeyoon  staff      128  4 14 01:25 udemy
drwxr-xr-x   6 jeyoon  staff      192  4  1 05:35 생활코딩
  • cd - 폴더(디렉토리)로 이동

    • 홈 디렉토리 (현재 사용자의 개인화 파일들이 있는 디렉토리)
      cd ~

    • 루트 디렉토리 (시스템의 최상위 디렉토리)
      cd /

    • 현재 디렉토리
      cd .

    • 부모 디렉토리
      cd ..

    • 파일 이름에 공백이 있을 경우엔?

      • 일단 [Tab]키 눌러보기 --> 자동 생성될 수도 있음
      • My Documents라는 디렉토리로 이동하고 싶다면?
        cd My\ Documents
  • open . - 현재 폴더를 GUI의 탐색기로 실행하기

  • touch [file_name] - 새로운 파일 생성

  • cat [file_name] - 텍스트 파일의 내용을 터미널에 출력

    • 이어지는 파일을 순서대로 읽고 터미널에 출력함.
  • rm - 폴더나 파일 삭제

    • rm 명령어는 정말 삭제할 것인지 확인하지 않으며 한번 삭제된 파일은 휴지통에 들어가지 않는다!(조심해서 써야함)

    • rm [filename] - 파일 삭제

    • rm -rf [dirname] - 폴더 삭제

  • mv - 폴더나 파일의 이름 변경 또는 위치 옮기기

    • 파일 및 디렉토리 옮기기
      mv [file_or_dir] [target_dir]
    • 파일 및 디렉토리 이름 바꾸기
      mv [file_or_dir] [new_name]
  • cp - 폴더나 파일을 복사

    • cp [원본 파일 이름] [복사할 파일 이름]

    • cp -rf [원본 폴더 이름] [복사할 폴더 이름]

관리자 권한과 경로

절대 경로와 상대 경로

  • 절대 경로
    • pwd 명령어로 확인 가능
    • 기준점(루트 폴더(/))으로부터의 절대적인 위치를 나타냄. 즉, 루트 폴더로부터 어떤 폴더로 진입하는 경우 특정 폴더나 파일을 만날 수 있는지 나타냄.
  • 상대 경로
    • 특정 폴더 또는 파일의 위치를 현재 위치를 기준으로 나타냄.
    • 현재 폴더는 점(.)으로, 상위 폴더는 두 개의 점(..)으로 표현

관리자(root) 권한

  • 악성코드의 침입, 프로그램들간 충돌로 인한 시스템 강제종료 등의 문제를 관리하기 위해 사용

  • 절대 경로의 기준점인 루트 폴더(/)는 Linux의 관리자 영역으로, 일반 사용자의 권한으로는 어떤 폴더나 파일도 생성, 변경, 삭제할 수 없다. Linux 관리자의 가장 큰 특징은, 어떤 일이 있더라도 일반 사용자에게 관리자 권한(루트 권한)을 완전하게 넘기지 않는다는 것이다. 사용자가 관리자 권한을 필요로 하는 경우는 새로운 프로그램을 설치하거나 프로그램을 변경 또는 삭제하는 경우이므로, 해당 프로그램을 설치, 변경 또는 삭제할 수 있는 관리자 권한만 전달한다. 사용자와 관리자를 명확히 분리하여 사용자의 실수로 발생할 수 있는 시스템 에러로부터 운영체제를 보호한다.

  • Mac에서 사용자 폴더의 경로(Path)는 ~/로 표시된다. 물결기호(~)는 루트폴더(/)로부터 사용자 폴더(username)까지의 경로(/User/username)를 축약한 형태이다.

  • sudo - 관리자 권한을 획득하는 명령어

    • 사용자가 새로운 프로그램을 설치하거나 변경 또는 삭제할 때, 관리자 권한이 필요하다. 이 때 사용자는 명령어 sudo를 이용해 일시적으로 관리자 권한을 획득할 수 있다.
    • sudo는 한시적으로나마 관리자 권한을 가지기 때문에 항상 비밀번호와 함께 사용된다.
    • 아래 터미널 코드에서 sudoMkdir 폴더를 보면 소유자가 root인 것을 알 수 있다. 이는 사용자 권한이 아닌 관리자 권한으로 생성되었다는 뜻이다.
jeyoon@MacBookAir hello % sudo mkdir sudoMkdir 
Password:
jeyoon@jeongjeyun-ui-MacBookAir hello % ls
bye		hi		justMkdir	sudoMkdir
jeyoon@jeongjeyun-ui-MacBookAir hello % ls -l
total 0
drwxr-xr-x  4 jeyoon  staff  128  4 14 10:19 bye
drwxr-xr-x  3 jeyoon  staff   96  4 14 10:41 hi
drwxr-xr-x  2 jeyoon  staff   64  4 14 10:49 justMkdir
drwxr-xr-x  2 root    staff   64  4 14 10:49 sudoMkdir

텍스트 에디터 nano

  • CLI 환경에서 사용할 수 있는 에디터
  • 다른 에디터들(vim(vi), emacs 등)에 비해 사용하기 쉬움

기본사용법

  • 실행: nano

  • 파일 열기: nano -w 파일명

  • 저장: Ctrl+O

  • 끝내기: Ctrl+X, 정말로 끝낼 것인지를 묻는 화면에서 Y를 누르고 저장하려는 파일명을 확인한 후에 엔터

  • 자르기와 붙이기

    • 한줄 자르기 : Ctrl+k
    • 붙이기 : Ctrl+u
    • 여러줄 자르기 : Ctrl+Shift 를 누르고 화살표로 블럭을 설정한 후에 Ctrl+k
  • 찾기: Ctrl+w

post-custom-banner

0개의 댓글