컴퓨터 공학/운영체제

[리눅스] 자주 쓰는 쉘 명령어들

도깨비젤리 2021. 12. 13. 23:45

 

쉘(Shell)


 

명령어와 프로그램을 실행할 때 사용하는 인터페이스

리눅스의 핵심부인 리눅스 커널과 사용자간의 다리 역할을 하는 것으로, 사용자의 명령을 해석하고 실행하는 역할을 한다.

 

특징

  1. 자체적으로 프로그래밍 기능이 있어서 프로그램 작성 가능. 쉘로 만든 프로그램을 쉘 스크립트라고 한다.
  2. 사용자와 커널 사이에서 명령을 해석해 전달하는 명령어 해석기 기능이 있다.

 

리눅스의 명령어는 결국  쉘이 제공하는 명령어이다. 기본 쉘이 bash 이므로, bash 쉘 명령어를 배우면 다른 쉘 명령어도 쉽게 익힐 수 있다.

 

ps


프로세스의 상태를 확인하는 명령어

Process Status의 약어이다.

 

  • 옵션
옵션 내용
-a 시스템을 사용하는 모든 사용자의 프로세스 출력
a(BSD 계열) 터미널과 연관된 프로세스를 출력
-u 프로세스 소유자에 대한 상세정보 출력
-l 프로세스 관련 상세 정보 출력
-x 사용자 로그아웃 이후에도 실행중인 프로세스 출력
-e 해당 프로세스와 관련된 환경 변수 정보도 같이 출력
-f 프로세스 간 관계정보 출력

 

 

이 옵션들은 조합해서 사용할 수 있기에,  ps -aux 명령어로 모든 사용자의 전체 프로세스에 대한 상세 정보를 한 눈에 볼 수 있다.

 

 

 

 

파이프라인 


명령어 1의 결과를 명령어 2로 전달할 때 사용하는 명령어

A | B 꼴로 사용된다.
(A의 처리 결과를 B로 전달)

 

 

주로 입력으로 전달된 파일의 내용에서 특정 문자열을 찾을 때 사용하는 grep 명령어와 같이 사용한다.

 

 

대표 용례

 

ps -aux | grep XXX : 현재 실행되고 있는 프로세스 중에서 XXX라는 이름을 가진 프로세스를 찾음

 

 

현재 실행되고 있는 프로세스 중 bash 라는 이름을 가진 프로세스를 찾은 모습. 두번째 열에 나와있는 숫자가 PID이다.

 

 

 

 

 

kill


프로세스에 특정한 signal을 보내는 명령어

프로세스의 PID (Process ID)를 알아야 한다.

 

 

어떤 시그널을 보내는지에 따라, kill 명령어의 뜻이 달라진다.

 

-l 옵션으로 보낼 수 있는 시그널을 확인할 수 있다.

 

시그널의 종류

 

기본 옵션은 안전하게 종료하는 15번 시그널이지만,( 메모리상에 있는 데이터와 각종 설정/환경 파일을 저장 후 종료)

통상적으로 종료되지 않는 프로세스를 강제로 종료하려면 9번 시그널을 사용한다 (저장 없이 강제로 종료)

 

대표 용례

 

kill -9 [PID] : PID에 해당하는 프로세스를 강제로 종료한다.

 

 

 

rm


 

파일 및 폴더 삭제 (remove)

기본적으로 리눅스는 모든 것을 파일이나 폴더 처럼 다룬다.


 

 

옵션

옵션 내용
-f 강제로 파일이나 디렉토리를 삭제
-r 재귀적으로 (recursive)삭제. 하위 디렉토리를 포함하여 삭제한다
-i 삭제할때마다 사용자에게 삭제 여부를 계속 붇는다
-v 삭제하는 동안 삭제되는 내용을 보여준다

 

대표 용례

 

rm -rf * : 존재하는 모든 파일/폴더를 삭제한다.

 

 

 

cp


파일, 디렉토리를 복사(copy)하는 명령어

대표 용례

 

cp file1 file2 : file1을 file2의 이름으로 복사한다.

cp file1 dir1/ : file1을 dir1의 위치로 복사한다

cp file1 file2 dir1/ : file1과 file2를 dir1의 위치로 복사한다

 

 

 

cat


파일의 내용을 출력하는 명령어


대표 용례

 

cat text.txt : text.txt라는 파일의 내용을 화면에 출력한다.

 

 

text,txt를 화면에 출력하는 모습

 

ln


 

한 파일을 다른 파일 이름으로도 사용하고자할 때 사용하는 링크 (link) 명령어

하드링크와 심볼릭링크가 있다.

 

대표 용례

 

ln A B : A라는 파일을 B라는 이름으로 하드링크 한다.

ln -s A B: A라는 파일을 B라는 이름으로 심볼릭 링크한다

 

 

 

하드링크 vs 심볼릭 링크

 

하드링크 심볼릭 링크
링크된 두 파일은 물리적으로 다른 크기를 차지한다. 링크된 두 파일은 물리적으로 같은 크기를 차지한다
생성된 파일은 실제적인 내용이 존재한다 생성된 파일은 실제 내용이 존재하는게 아니라 링크된 파일로 전송시켜주는 역할을 한다
원본 파일이 삭제되도 사용가능하다 원본 파일이 삭제되면 사용불가능하다
원본 파일이 수정되면 같이 수정이된다

 

심볼릭 링크된 파일은 위와 같이 화살표로 원본 파일을 가리킨다.