코딩하는 김딸기
CLI 본문
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)을 사용할 수 있습니다.
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 로 변경
- cp images asset:
- 이 명령어는 images라는 단일 파일을 asset이라는 위치로 복사합니다.
- 만약 images가 디렉토리라면, cp 명령은 기본적으로 디렉토리를 복사하지 않기 때문에 오류 메시지를 표시합니다.
- cp -r images asset:
- -r (또는 --recursive) 옵션을 사용하면, cp 명령어는 디렉토리를 재귀적으로 복사합니다.
- images가 디렉토리일 경우, 이 명령어는 images 디렉토리 내의 모든 파일과 하위 디렉토리를 포함한 전체 구조를 asset 디렉토리 아래로 복사합니다.
- asset이 기존에 존재하는 디렉토리라면, images 디렉토리의 내용은 asset/images로 복사됩니다.
따라서, cp images asset는 단일 파일 복사에 적합하며, cp -r images asset는 디렉토리와 그 안의 내용을 복사할 때 사용됩니다