코딩하는 김딸기

CLI 본문

카테고리 없음

CLI

김딸기* 2024. 7. 29. 19:37

CLI(Command Line Interface)란?

CLI(명령줄 인터페이스)는 디렉토리 생성 및 이동, 복사, 이름 변경, 삭제 등을 미리 약속된 명령어를 사용하여 실행하는 환경입니다.

운영체제는 기본적으로 CLI를 제공하고 있으며 Windows의 경우 CMD(Command Prompt)를 Mac OS나 Ubuntu의 경우 Terminal을 사용하여 명령어를 통해 일련의 작업을 진행할 수 있습니다.

그러나 Windows의 CMD와 Mac OS의 Terminal에서 지원하는 CLI 명령어가 다르기 때문에 각 운영체제 환경에 맞는 명령어를 학습하는 것이 필요합니다.

예를 들어 파일을 삭제할 때 Windows의 CMD에서는 del 명령을 Mac Os의 Terminal에서는 rm 명령을 사용하여야 합니다. 만약 Windows와 Mac OS, Ubuntu에서 동일한 CLI 명령(Unix/Linux 명령어)을 사용하고자 한다면 Windows는 Git bash나 WSL(Windows Subsystem for Linux)을 사용할 수 있습니다.

WSL 설치

CLI 주요 명령어

1. 현재 작업중인 폴더 확인

pwd : print working directory

        현재 작업중인 폴더의 절대경로가 출력

2. 폴더 생성

mkdir : Make Directory

mkdir {디렉토리 이름}

  • mkdir Frontend: 현재 폴더에 Frontend폴더를 생성

3. 디렉토리 이동

cd : change Directory

cd {디렉토리 경로}

  • cd . - 현재 디렉토리 (생략 가능)
  • cd .. - 상위 경로로 한 단계 이동
  • cd ../.. - 상위 경로로 두 단계 이동
  • cd ~/Desktop - 데스크탑 디렉토리로 바로 이동

4. 디렉토리 및 파일 목록 출력

ls : List Segments

ls {디렉토리 경로}{옵션}

  • ls ~/Frontend/assets : Frontend/assets 폴더의 하위 폴더 목록을 출력
  • ls -l ~/Frontend/assets : 폴더 목록을 출력할 때 사용 권한, 소유자, 그룹, 크기, 날짜 등 상세 정보를 함께 표시
  • ls -a ~/Frontend/assets : 폴더 목록을 출력할 때 숨겨진 항목을 포함하여 모든 내용을 출력
  • ls -al ~/Frontend/assets : 폴더 목록을 출력할 때 숨겨진 항목을 포함하여 사용 권한, 소유자, 그룹, 크기, 날짜 등 상세 정보를 함께 표시

5. 파일 생성

touch : 빈 파일을 생성할 경우

echo : 간단한 내용이 들어있는 파일을 생성할 경우

  • $ touch index.html: 내용이 없는 빈 index.html파일 생성
  • $ echo 'let me = "Frontend Developer"' > js/index.js
  • js 폴더안에  `let me = "Frontend Developer"` 라는 코드가 삽입된 `index.js`파일 생성

6. 파일 내용 확인하기

cat : Concatenate

  • cat js/index.js : index.js파일의 내용을 화면에 출력
  • cat index.js app.js : index.js파일의 내용으로 app.js파일 내용 덮어쓰기

7. 파일/(비어있지 않은)디렉토리 삭제

rm : Remove

rm {제거할 파일/디렉토리 이름}

  • rm index.html : index.html파일 삭제
  • rm -r js : js폴더 내부 하위 디렉토리까지 모두 삭제
  • (r은 재귀적으로 수행한다)
  • $ rm -rf assets : assets폴더 안의 하위 디렉토리까지 모두 삭제하되, 경고를 나타내지 않음(매우 조심해서 사용! 다 없어질 수 있음)

8. 디렉토리 제거

rmdir : Remove Directory

rmdir {제거할 디렉토리 이름}

  • $rmdir js: js 폴더 삭제

9. 파일/디렉토리 이동 및 이름 변경

mv : Move(이미 존재하는 파일/디렉토리의 경우 이름 변경이 가능)

  • mv index.html views/index.html: index.html 파일을 views폴더로 이동
  • mv js/index.js js/app.js :js 폴더에 있는 index.js 파일명을 app.js로 변경

10. 파일/디렉토리 복사

cp : Copy

  • cp index.html main.html:index.html파일을 동일한 폴더에 복사한 후 파일명을 main.html 로 변경
  • cp index.html views/main.html :index.html파일을 views 폴더에 복사한 후 파일명을  main.html 로 변경
  1. cp images asset:
    • 이 명령어는 images라는 단일 파일을 asset이라는 위치로 복사합니다.
    • 만약 images가 디렉토리라면, cp 명령은 기본적으로 디렉토리를 복사하지 않기 때문에 오류 메시지를 표시합니다.
  2. cp -r images asset:
    • -r (또는 --recursive) 옵션을 사용하면, cp 명령어는 디렉토리를 재귀적으로 복사합니다.
    • images가 디렉토리일 경우, 이 명령어는 images 디렉토리 내의 모든 파일과 하위 디렉토리를 포함한 전체 구조를 asset 디렉토리 아래로 복사합니다.
    • asset이 기존에 존재하는 디렉토리라면, images 디렉토리의 내용은 asset/images로 복사됩니다.

따라서, cp images asset는 단일 파일 복사에 적합하며, cp -r images asset는 디렉토리와 그 안의 내용을 복사할 때 사용됩니다