본문 바로가기
공부 일지/프로그래밍 언어

[CLI] CLI 기초 및 명령어

by Joshbla 2022. 10. 8.

CLI

 

컴퓨터를 제어하는 방식

- 명령줄 인터페이스 (Command-Line Interface, CLI)

- 그래픽 사용자 인터페이스 (Graphic User Interface, GUI )

 

프로그래밍에서 CLI가 중요한 이유 : 상대적으로 높은 안정성과 빠른 속도

 

CLI 기초

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

 

CLI 작동 방식

컴퓨터를 조작하기 위한 입력과 출력을 I/O (Input/Output)이라고 한다.

이런 입출력을 가능하게 해주는 소프트웨어를 터미널(terminal)이라고 한다.

그리고 사용자가 입력한 명령어를 해석해주는 소프트웨어를 쉘(shell)이라고 한다.

 

터미널에서 키보드를 통해 입력을 확인하고 편집할 수 있는 명령줄의 대기모드를 프롬프트(prompt)라고한다.

 

CLI 를 편리하게 사용할 수 있는 에디터 : vim, nano 등이 있다

 

CLI 기본 명령어

  • pwd : 현재 위치 확인하기
  • mkdir : make directory 폴더 만들기
  • touch : ls : 특정 폴더에 포함된 폴더나 파일 확인하기
  • cd : 폴더에 진입하기
  • touch : 파일 생성하기 A > B : A실행결과를 B파일에 저장하기
  • echo : 입력 내용을 화면에 출력하기
  • cat : 파일의 내용을 터미널에 출력하기
  • rm : 파일 삭제하기 (-rf 옵션과 사용하면 폴더도 제거가능)
  • mv : 폴더나 파일의 이름을 변경/ 위치 옮기기
  • cp : 폴더나 파일을 복사하기

절대 경로와 상대 경로

  • 절대경로 : 루트폴더부터 현재폴더까지 모든 경로를 한줄로 표현한 구문
  • 상대경로 : 현재위치를 기준으로 특정폴더의 위치를 기준점으로 나타낸 구문
  • (ex) 현재폴더는 . 로 표현하고 상위폴더는 .. 현재폴더아래의 ./

사용 권한 

  • d: 폴더를 의미 -: 폴더가 아님을 의미 r : 읽기 권한 (read permission) w : 쓰기 권한 (write permission) x : 실행 권한 (execute permission)
  • 파일형식+ rwx를3번에 걸쳐 표시 => 각각 사용자(user), 그룹(group), 나머지(other)에대한 권한 )
  • (예를 들어 drwxrw-r--) --> 폴더이고 사용자는 읽쓰실 권한, 그룹은 읽쓰, 나머지는 읽

환경 변수

  • 환경변수란? 프로그램의 동작에 영향을 미치는 값들
  • 지역 환경변수 : 환경변수를 생성한 특정 사용자만 사용가능 (ex) hello=kimcoding
  • 전역 환경변수 : 모든 사용자가 사용할 수 있는 환경 변수를 의미한다.
    (ex) export hello=kimcoding 공백이 있는경우 따옴표로 감싸주어야한다.
    (ex) export life="is good" 환경변수의 개별 값 확인하는 방법 echo $(환경변수이름)
  • chmod : 권한을 변경하는 명령어

패키지

  • 패키지 : 여러 파일이 담겨있는 하나의 압축파일 (패키지를 사용하지 않으면 설치할 파일의 위치를 각각 알아야하므로 업데이트, 관리가 어렵다) 패키지 매니저 : 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구 apt : 패키지 매니저 종류
  • 루트폴더에 접근하려면 관리자권한이 필요하다. sudo : 관리자 권한을 획득하는 명령어
  • CLI에서 삭제한 파일은 휴지통에 가지 않고 즉시 삭제된다.

'공부 일지 > 프로그래밍 언어' 카테고리의 다른 글

[Git] 명령어 모음  (0) 2022.10.21
[JAVA] 객체지향 프로그래밍 - 기초  (0) 2022.10.09
[Git] Git 기초  (0) 2022.10.05
[Security] JWT  (0) 2022.09.29
[Security] 인증처리 흐름/컴포넌트  (0) 2022.09.23