(SEB_FE) Section1 Unit7 [Linux/Git] 기초 <Command-Line Interface>

PYM·2023년 2월 24일
0

(SEB_FE) SECTION1

목록 보기
25/38
post-thumbnail
  1. 리눅스 터미널을 실행할 수 있다.
  2. CLI를 이용한 작업과 GUI를 이용한 작업이 동일함을 이해할 수 있다.
  3. 리눅스 터미널에서 기본적인 명령어를 사용할 수 있다.
  4. 명령어를 사용할 때, 등장하는 키워드에 대해 이해할 수 있다.
  5. 관리자 권한을 이해할 수 있다.
  6. 절대 경로와 상대 경로의 차이를 이해할 수 있다.
  7. 텍스트 에디터 nano를 이용해 파일을 수정하고, 저장할 수 있다.

⭐터미널: CLI(Command-Line Interface)

  • 입력하는 글자와 출력되는 글자로 컴퓨터와 소통할 수 있다.
  • ubuntu 단축키: ctrl + alt + t

프롬프트(Prompt)

  • 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간

⭐명령어

💫pwd: 현재 위치 확인하기

  • GUI(Graphical User Interface)의 대표주자 윈도우즈에서는 파일의 현재 위치를 확인하기 위해서는 파일탐색기의 상단에 위치한 현재 폴더의 이름을 클릭하면 현재 폴더가 위치한 경로가 나타난다.

  • BUT, CLI터미널에서는 간단하게 pwd(print working directory)를 프롬프트에 입력하고, Enter(엔터 키)를 누르면 현재 경로가 나타남.

💫mkdir: 새로운 폴더 생성하기

  • make directories로, 새로운 폴더를 생성한다. 폴더명은 space로 구분.
mkdir helloWorld

💫ls: 특정 폴더에 포함된 파일이나 폴더 확인하기

  • list의 약자로 특정 폴더에 포함된 파일이나 하위 폴더의 리스트를 출력

  • 옵션 la가 있다.

    • 옵션 a는 "all"이라는 의미. 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력
    • 옵션 a와 함께, 자주 사용하는 옵션 l: 폴더나 파일의 포맷을 전부 표현하라는 의미
    • ls -l
    • ls -a
    • ls -al 또는 ls -la
  • 출력되는 폴더나 파일의 포맷 중에서 가장 먼저 등장하는 d 또는 -(dash)의 의미: d(ex.drwxr-xr-x)로 출력된 경우는 폴더, -(ex.-rw-r--r--)로 출력된 경우는 파일

    • 이때, 폴더는 cd를 통해 진입할 수 있지만, 파일이라면 진입할 수 없다.

💫cd: 폴더에 진입하기

  • change directory의 약자로, 프롬프트로 상호작용하는 폴더를 다른 폴더로 변경한다는 의미

💫touch: 파일 생성하기

💫cat: 파일의 내용을 터미널에 출력하기

  • 명령어 cat은 이어지는 파일을 순서대로 읽고 터미널에 출력.

💫rm: 폴더나 파일 삭제하기

  • 명령어 rm은 단일 파일을 삭제할 수 있다.
  • 폴더를 삭제하기 위해서는 옵션을 이용해야 한다.
    • rf
    • rm -rf (폴더명) 와 같이 사용
    • 옵션r은 "recursive"를 뜻하고, 옵션 f는 "force"를 뜻한다.
    • 옵션 r은 폴더를 지울 때 사용하고, 옵션 f는 질문을 받지 않고 지울 때 사용
    • CLI에서 삭제된 파일은 즉시 삭제된다. 즉 휴지통에서 복구할 수 없다.

💫mv: 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기

  • mv는 move의 약자
  1. 폴더나 파일을 이동할 때 사용
  • GUI에선 Drag & Drop(드래그 앤 드롭)을 사용해서 폴더 이동
  • CLI에서는 명령어 mv로 폴더나 파일을 다른 폴더로 옮길 수 있다.
  • mv [폴더나 파일의 이름] [도착 폴더의 이름]
  1. 폴더나 파일의 이름을 변경할 때 사용
  • mv [변경할 폴더나 파일 이름] [변경 후 이름]

💟컴퓨터가 파일을 옮기는 방법

  1. 파일의 내용을 잠시 저장한다.
  2. 원래 위치의 파일을 삭제한다.
  3. 도착 폴더에 1에서 저장한 내용으로 새로운 파일을 생성한다.
    (복사의 경우에는 2번 단계가 생략 됨)

내용과 위치가 같고, 이름만 다른 경우에 새로운 파일을 생성하는 일은 비효율적
➡️ 컴퓨터는 폴더나 파일을 삭제 후 새롭게 작성하는 대신, 폴더나 파일의 이름만 변경

💫cp: 폴더나 파일을 복사하기

  • cp는 copy의 약자로, 폴더나 파일을 복사할 때 사용
  • cp -rf [복사하고자 하는 폴더명] [복사한 폴더를 생성할 폴더명]
  • 상위 폴더로 이동하기 위한 상대 경로는 ../

tip: 각 명령어에 포함된 옵션은 명령어 이름만 입력하거나 -h 또는 --help와 같은 옵션을 통해 확인할 수 있다.


⭐관리자 권한과 경로

💫sudo: 관리자 권한을 획득하는 명령어

악성코드와 프로그램의 충돌(이때, 흔히들 알고 있는 Blue Screen이 뜬다)로 인해 고통받는 고객을 보호하기 위해, MS사는 윈도우즈 Vista에 "사용자 계정 컨트롤"을 탑재.

  • 사용자 계정 컨트롤(UAC, User Account Control)은 시스템을 관리하는 관리자와, 일상적으로 PC를 사용하는 사용자를 구분한다.
    이를 통해 사용자가 모르는 사이에 시스템 설정을 변경하는 악성코드가 실행될 때, 접근 권한을 막아 사용자를 보호할 수 있다.

    • 관리자: 프로그램을 설치하거나 변경 또는 삭제하는 권한
    • 사용자: 프로그램을 실행할 수 있지만, 변경할 수 없도록 제한된 권한

이로인해 하나의 PC에 여러 사용자 등록이 가능해 짐.

  • 다운로드한 파일, 프로그램에 대한 접근 권한이 사용자 계정마다 분리되어, 각 사용자는 다른 사용자의 영역을 침범할 수 없다.

  • 리눅스 기반 운영체제에도 이와 같이 사용자 계정 컨트롤이 있다.

    • 윈도우즈처럼 관리자 권한을 이용하면, 사용자를 추가, 변경, 삭제할 수 있다.
    • 리눅스 기반의 운영체제 중 Ubuntu에서는, 사용자가 절대 관리자 권한에 접근할 수 없도록 구분해둠.
    • BUT! 새로운 프로그램을 설치, 변경, 삭제할 때 관리자 권한이 반드시 필요
      특정 명령어(sudo)를 입력하는 것으로 잠시 관리자 권한을 빌려올 수 있다

🚨주의!🚨
관리자 영역을 실수로 변경하면, 운영체제(Operating System)이 먹통이 될 수 있다. 운영체제가 망가지면, 운영체제를 재설치해야 할지도...

TIP!

  • 현재 로그인된 사용자를 확인하는 명령어: whoami_

  • CLI에서 경로 이동 시

    • .: 현재 폴더.
    • ..: 현재 폴더보다 앞에 있는 폴더 (상위 폴더)

⭐CLI 환경의 텍스트 에디터 nano

  • (A) 파일 이름 안내
  • (B) 파일 편집 화면, 실제로 여기서 텍스트 파일을 편집할 수 있다
  • (C) 사용에 필요한 각종 단축키
    사실상 여기에 대부분의 기능에 대한 도움을 얻을 수 있다. 화면에 표시된 ^X와 같은 내용은 Ctrl + X 키 조합을 의미

💫파일 열기

nano [파일이름]

💫파일 편집 후 종료

  • 파일에 변경사항이 존재하면, 종료 시에 저장할지를 물어봄
  • 파일 내용을 편집하고 난 후, 아래와 같이 ^X Ctrl + X를 누르면 다음과 같은 프롬프트가 등장
Save modified buffer (ANSWERIG "No" WILL DESTROY CHANGES) ?
  • 키보드의 Y 와 N를 눌러서 저장 여부를 결정

💫파일 저장

  • 종료하지 않고도 저장하는 방법: ^O WriteOut을 이용
profile
목표는 "함께 일하고 싶은, 함께 일해서 좋은" Front-end 개발자

0개의 댓글