🍥 CLI(Comand-Line Interface)
CLI는 가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상호작용을 하는 방식을 뜻한다. 글자를 이용해서 컴퓨터에 명령을 내리는 형식이다.
CLI 기본 명령어
🌟 pwd(print working directory)
터미널의 현재 위치를 알려주는 명령어, 현재 작업중인 디렉토리의 절대 경로를 출력
pwd
디렉토리는 컴퓨터에서 파일을 분류하기 위해 사용하는 공간으로 폴더와 같은 역할이다.
🌟ls
list의 약자, 특정 디렉토리의 포함된 파일이나 하위 디렉토리 리스트를 출력
ls [-옵션]
💫ls명령어의 옵션
- ls -a : 숨겨진 파일이나 디렉토리를 포함한 모든 리스트를 출력
- ls -l : 리스트에 자세한 내용까지 포함하여 출력권한, 하위 파일 수, 크기, 수정일 등
- ls -R : 하위 디렉토리의 리스트까지 출력
- ls -r : 리스트를 내림차순으로 정렬하여 출력
- ls -h : 파일 크기를 편리하게 나타내어 출력
- ls -S : 리스트를 파일 크기 순으로 정렬하여 출력
옵션을 두 개 이상 조합하여 사용할 수 있으며 옵션의 순서는 영향을 끼치지 않는다.
🌟cd(change directory)
cd [파일명]
- 마우스와 아이콘이 없는 CLI에서 dir와 dir를 이동하는 명령어이다.
ex) Download라는 폴더로 이동하려면 cd Download라는 명령어를 사용하면 된다.
cd ~
- '~'는 home directory를 뜻하며 cd와 ~사이를 띄워서 입력해야한다.
- 터미널의 어디에서든 cd ~를 사용하면 home dir로 이동할 수 있다.
- cd ~는 cd만 입력해도 정상적으로 실행된다.
cd ..
- '..'은 parent directory를 뜻하며, parent dir은 상위 dir이다.
- 최상위 dir인 root dir에서는 cd .. 명령어를 입력해도 위치가 바뀌지 않는다.
💫 cd 명령어
- cd / 명령어는 root directory로 이동한다.
- cd .은 현재 dir로 이동하는 명령어이며, file이나 dir을 복사할 때 유용하게 사용된다.
- cd 명령어 뒤에 파일의 주소를 복사하여 이동하는 것도 가능하다.
🌟mkdir(make directory)
디렉토리를 만들 때 사용하는 명령어이다.
mkdr [폴더명, 경로]
💫옵션
- 디렉토리 안에 디렉토리를 추가하려면 -p 옵션을 사용한다.
- 디렉토리에 권한을 추가하려면 -m 옵션을 사용한다.
- 디렉토리를 생성할 때 메세지를 출력하려면 -v 옵션을 사용한다.
🌟 touch
touch [파일명]
새로운 파일을 생성할 수 있으며, 이미 해당 파일명의 파일이 존재할 경우엔 해당 파일의 액세스 시간과 수정 시간을 현재 시간으로 수정한다.
🌟파일이 존재하지 않을 경우 경고 표시
touch -c [파일명]
-c 옵션을 사용할 경우엔, 파일이 존재하지 않을 경우 새 파일을 생성하지 않고 경고를 출력한다. 파일을 업데이트 하고 싶을 경우에 사용한다.
💫특정 날짜와 시간으로 수정
touch -t [[CC]YY]MMDDhhmm [파일명]
특정 날짜와 시간으로 파일을 수정할 수 있다.
💫여러 개의 파일 생성
touch [파일명1] [파일명2] [파일명3]
🌟mv
mv [파일명] [폴더명/파일명]
mv [파일명] [변경될 파일명]
파일이나 디렉토리의 위치를 옮기거나 이름을 바꿀 때 사용한다.
mv 명령어는 복사가 아니기 때문에 원본 파일은 사라지고 새 위치에서만 존재하게 되며, 이름을 바꾸는 것도 현재의 위치로 옮기는 것으로 처리된다.
💫 옵션
- -i : 같은 이름의 파일이 있으면 덮어쓸지 물어본다.
- -f : 강제로 덮어쓰기를 진행한다.
- -n : 기존 파일이 있으면 덮어쓰지 않는다.
- -v : 무슨 일이 일어나는지 자세히 보여준다. (verbose 모드)
🐱cat(concatenate)
cat [옵션] [파일명]
파일 내용을 출력하거나, 여러 파일을 이어붙일 때 사용하는 명령어이다.
1. 여러 파일 이어보기
cat test1.txt test2.txt
test1.txt파일과 test2.txt파일을 이어서 보여준다.
2. 파일 합치기
cat test1.txt > test2.txt
두 파일을 합쳐서 test2.txt로 보여준다. 대신 기존의 test1.txt파일은 사라진다.
🐾 옵션
- -n : 출력되는 줄마다 번호를 붙여준다.
- -b : 비어있지 않은 줄에만 번호를 붙여준다.
- -E : 줄 끝에 $를 표시해서 줄바꿈을 확인할 수 있다.
- -T : tab을 ^I로 변환해서 보여준다.
cat은 작은 텍스트 파일을 확인할 때 좋지만, 큰 파일은 빨리 지나가기 때문에 확인하기 힘들다. 이럴 때는 less나 more명령어와 함께 사용하는 것이 좋다.
💾 cp(copy)
cp [옵션] [원본 대상] [복제될 파일명]
파일이나 디렉토리를 복사할 때 사용하는 명령어이다.
📼 옵션
- -r, -R : 재귀적으로 디렉토리 전체를 복사한다.
- -i : 덮어쓰기 전에 물어본다.
- -f : 강제로 덮어쓴다. (force)
- -u : 수정된 파일만 복사한다. (update)
- -v : 복사 과정 보여주기 (verbose)
- -p : 권한, 시간, 정보 유지해서 복사한다.
- --parents : 경로 구조를 유지한 채 복사한다.
🔧 rm(remove)
rm [옵션] [파일/디렉토리]
파일이나 디렉토리를 삭제할 때 사용하는 명령어이다.
🔍 옵션
- -r : 디렉토리와 그 안에 있는 모든 내용을 삭제한다.
- -f : 경고 없이 삭제한다.
- -i : 삭제할 때마다 삭제 여부에 대해 물어본다.
- -v : 삭제되는 항목을 출력한다. (verbose)
💥 자폭 명령어
rm -rf /
해당 명령어는 시스템 전체 삭제로 사용하지 않는게 좋다.
📂 rmdir
rmdir [옵션] [디렉토리 이름]
빈 디렉토리를 삭제하는 명령어이며 디렉토리가 안 비어있다면 에러가 발생한다.
- --ignore-fail-on-non-empty
폴더가 비어있지 않더라도 에러 메세지 없이 종료된다. (삭제❌)
- -p : 폴더가 비어있을 경우 상위 폴더까지 삭제한다.
☃️ -help
명령어 --help
해당 명령어에 대한 설명을 출력한다.
자주 쓰는 옵션 위주로 요약해주기 때문에 더 자세한 정보가 필요할 경우에는 man 명령어를 사용한다.