본문 바로가기
코드 스테이츠

코드 스테이츠 4/13 - CLI (리눅스, Ubuntu)

by 한휘용 2023. 4. 13.
728x90
코드 스테이츠 3일차

 

CLI란? 

명령줄 인터페이스(Command-Line Interface)의 약자로, 명령어로 컴퓨터를 제어하는 방식이다.

반댓말로는 그래픽 사용자 인터페이스 GUI (Graphic User Interface) 가 있다.

 

CLIGUI보다 높은 안정성과 빠른 속도를 가지고 있기 때문에 프로그래밍을 배운다면 CLI를 잘 다룰 줄 알아야 한다.

GUI는 사용자가 쉽게 컴퓨터를 제어할 수 있다는 장점을 가지지만, 반대로 사용자가 쉽게 제어하기 위해 그래픽에 컴퓨터 자원을 많이 사용하기에 CLI에 비해 느릴 수 밖에 없다. CLI는 그래픽작업을 거치지 않아도 되기 때문에 GUI보다 더 빠르게 동작한다.

 

CLI 기본 명령어 - 1

 

pwd: 현재 위치 확인하기

pwd는 print working directory의 약자다. 여기서 말하는 디렉토리(directory)는 폴더라고도 한다.

CLI에서 폴더를 열거나 닫으며 이동하면, 현재 위치가 헷갈릴 수 있다. 이때 pwd 를 입력하고 Enter를 누르면, 컴퓨터는 현재 작업 중인 폴더의 위치를 출력한다.

 

mkdir

: 새로운 폴더 생성하기

mkdir은 make directories의 약자로, 폴더를 만드는 명령을 컴퓨터에 전달한다. 

명령어 mkdir은 생성할 폴더의 이름을 함께 입력해야 합니다. CLI에서는 명령어와 폴더의 이름을 공백으로 구분합니다.

Ex) mkdir helloWorld

 

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

ls는 list의 약자로, 특정 폴더에 포함된 파일이나 하위 폴더의 리스트를 출력한다.

명령어 ls에는 자주 사용하는 옵션 l과 a가 있다. CLI에서 특정 명령어의 옵션을 사용하는 경우에는 -를 이용해 옵션을 입력했다고 컴퓨터에 전달한다.

 

ls -a

a는 all의 약자로, 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력한다. 

 

ls-l

l은 옵션 a 와 함께, 자주 사용되는 옵션으로 폴더나 파일의 포맷을 전부 표현하라는 의미이다. 하나의 파일 또는 하나의 폴더는 한 줄에 출력됩니다.

 

cd: 폴더에 진입하기

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

예를 들어 앞에 만들어 놓은 helloWorld로 진입하고 싶다면 [ pwd를 사용하여 현재 위치를 확인하고, ls를 사용하여 helloWorld 폴더를 확인한다. 이 후 cd를 사용하여helloWorld 폴더로 진입한다. ] 의 순서로 진행한다.

 

touch: 파일 생성하기

touch 명령어는 파일을 생성할 때 사용한다. 파일(File)은 서류철이라는 뜻이다. 컴퓨터나 스마트폰 등 전자기기에서 문서의 형태로 작성된 모든 것을 파일이라고 합니다.

 

>: 실행 결과를 파일로 저장하기

">"를 사용하여 실행 결과를 파일로 저장할 수 있다. 예를 들어, ls > ls.txt 를 입력하면 ls.txt에 ls 명령어의 실행 결과가 저장된다.

 

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

CLI로 만든 폴더와 파일을 GUI로 동일하게 확인할 수 있다. 이번에는 반대로, GUI에서 변경한 내용을 CLI에서 확인해보자.

cat hi.txt를 입력하면 이전에 >로 입력한 이메일이 표시된다.

 

CLI 기본명령어 - 2

 

rm: 폴더나 파일 삭제하기

rm은 폴더나 파일을 삭제할 때 사용한다. 변경사항을 확인하기 위해서는, 명령어 ls를 자주 입력하면 도움이 된다.

명령어 rm으로 파일을 삭제한 폴더나 파일은, 휴지통을 거치지 않고 삭제된다.

rm 으로는 단일 파일만 삭제할 수 있다. 만약 폴더를 삭제하려면 옵션을 사용하자.

rm -r은 폴더를 지울 때 사용한다

rm -f는 질문을 받지 않고 지울 때 사용한다.

앞으로 폴더나 파일을 삭제할 때 두 옵션을 같이 사용한다.

 

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

CLI에서 명령어 mv로 폴더나 파일을 다른 폴더로 옮길 수 있다.

mv 뒤에 순서대로 (A)[폴더나 파일의 이름] (B)[도착 폴더의 이름] 을 입력한다.

실행하게 되면 (A) 폴더,파일이 (B) 폴더로 이동하게된다

 

또한, mv 명령어로 폴더나 파일의 이름을 변경할 수 있다.

mv (A)[파일의 이름] (B)[변경하고자 하는 파일의 이름]을 입력한다.

실행하게 되면 (A)의 파일 이름을 (B)로 변경한다.

 

CP: 폴더나 파일을 복사하기

cp는 폴더나 파일을 복사할 때 사용한다.

cp (A)[원본 파일 이름] (B)[복사할 파일 이름] 순서로 입력한다.

 

폴더를 복사할 때 는 rm과 동일한 옵션을 사용한다.

cp -rf (A)[원본 폴더 이름] (B)[복사할 폴더 이름] 

 

CLI 명령어 심화

명령어 옵션 -r 과 -f

r은 recursive의 약자로 특정 행동을 순환적으로 반복한다.

f는 force의 약자로 어떤 행위를 강제한다.

 

rm 명령어를 예로 들어 설명해보자.

-r 옵션

기본적인 rm 명령어는 파일 삭제가 가능하다. 여기서 폴더를 삭제하기 위해 옵션이 추가되지 않은 기본 rm 명령어를 입력하게 되면  rm: subdirectory: is a directory라는 메세지가 출려되면 삭제가 진행되지 않는다. 왜냐하면 일반적인 rm 명령어는 파일을 저장하고 있는 폴더를 삭제하지 못하기 때문이다. 이때 -r 옵션을 추가해준다면 파일을 저장하고 있는 폴더도 삭제가 가능하다.

 

-f 옵션

f 옵션을 사용하게 되면 보호되거나 존재하지 않는 파일도 강제로 삭제할 수 있다. 그런 이유로 f 명령어를 사용할 때는 각별히 주의해야 한다.

r 과 f 옵션을 합쳐 rf 형태로 쓸 수 있다. rm -rf 명령어를 사용하면 민감한 정보를 가진 파일도 무차별적으로 삭제하여 심각한 문제를 일으키는 경우가 생긴다. 이에 대해 주의해야 한다.

 

rm 명령어 뿐만 아니라 cp와 같은 다른 명령어에도 r 과 f 옵션을 적용할 수 있다.

 

cat 명령어 대신 쓰는 명령어

 

cat 명령어를 사용하면 터미널에서 파일 안에 담긴 내용을 확인할 수 있다. 그러나 항상 전체 내용을 출력하기 때문에 생기는 단점들이 있다.

 

파일을 담고있는 내용이 너무 길 경우, 터미널 상에서 내용이 잘려나오는 경우가 생긴다. 그리고 항상 전체가 출력되기 때문에 원하는 정보를 찾기 위해서 때로 시간이 오래걸린다.

 

그렇기 때문에 cat 명령어 대신 부분열람을 가능하게 만들어주는 명령어들이 있다.

ex) head 명령어 / tail 명령어 / more 명령어 / less 명령어

 

 

728x90