개발 도구 & 환경/Linux&Unix 활용

[Linux-Tool] 입문자를 위한 기본 명령어

나맘임 2025. 4. 24. 14:24

들어가며

리눅스(Linux)는 오늘날 없어서는 안 될 운영체제가 되었습니다.

특히 백엔드 개발자를 목표로 하고 있다면 반드시 만날 수밖에 없는 운영체제입니다.

이 리눅스를 사용하는데 꼭 필요한 기본 명령어에 대해 알아보겠습니다.

 

리눅스란?
리눅스는 무료이자 오픈 소프트웨어인 운영체제입니다. Linus Torvalds라는 전설적인 개발자가 대학교를 다니며 만든 운영체제로 현재 안 쓰이는 곳이 없을 정도로 매우 대중적인 운영체제로 발전했습니다.

 

파일 및 디렉토리 관련 자주 쓰이는 명령어들

(1) ls

ls 명령어는 보통 현재 접속한 디렉토리에서의 파일 또는 폴더들을 확인하기 위해서 사용합니다.

ls {옵션}
// {}는 없어도 된다는 의미

아무런 옵션을 뒤에 붙이지 않고 ls를 입력하면 현재 디렉토리의 정보를 간략히 표시합니다.

여기엔 . (현재) .. (이전) 과 같이 숨겨진 파일 또는 디렉토리는 숨겨져 있습니다.

이걸 확인하기 위해선 ls -a 를 입력합니다.

추가로 ls -l을 입력하면 어떤 것이 들어있는지 상세하게 표시해줍니다.

(2) pwd

pwd 명령어는 현재 접속한 터미널로 접근하고 있는 디렉토리(Working Directory)이 절대 경로를 표시해 줍니다.

pwd

절대 경로?
파일이나 폴더를 최상위 디렉토리부터 전체 경로를 통해 지정하는 방식으로 쉽게 말해 전체 경로입니다.
상대 경로?
현재 파일의 위치를 기준으로 연결하려는 파일의 상대적인 경로를 적는 것을 의미합니다.

(3) cd

cd 명령어는 접속한 터미널의 디렉토리를 변경할 때 사용합니다.

cd {경로명}
// {}는 없어도 된다는 의미

현재 디렉토리에 따라 절대 경로를 써야 할 수도 있고 그저 디렉토리의 이름만 적어도 됩니다(상대 경로 사용).

만약 아무런 옵션을 뒤에 입력하지 않고 그저 cd만 입력하게 되면 home 디렉토리로 이동됩니다.

~ 표시가 home 디렉토리를 의미합니다.

만약 위 그림에서 rbtree-lab이라는 디렉토리로 이동하고 싶다면, cd rbtree-lab 을 입력하면 됩니다.

이전에 등장했던 ls, pwd를 사용하여 경로를 찾고 이를 cd로 이동할 수 있습니다.

(4) mkdir

새로운 디렉토리를 만드는 명령어입니다.

mkdir <이름>
// <> 반드시 있어야 함을 의미

(5) rmdir

빈 디렉토리를 지우는 명령어입니다.

rmdir <이름>
// <> 반드시 있어야 함을 의미

빈 디렉토리만 지울 수 있음을 유의하세요.

(6) cp

윈도우의 ctrl + c, ctrl + v와 같은 명령어입니다.

cp <복사할 파일 또는 디렉토리> <이름>
// <> 반드시 있어야 함을 의미

(7) mv

파일 또는 디렉토리의 이름을 바꾸는 명령어입니다.

mv <바꿀 파일 또는 디렉토리> <새로운 이름>

(8) rm

디렉토리안에 있는 파일을 삭제하는 명령어입니다.

rm <파일명>

(9) touch

빈 파일을 만드는 명령어입니다.

touch <파일명>

(10) ln -s

심링크(심볼릭 링크)를 생성하는 명령어입니다. 심링크는 리눅스의 파일의 한 종류로 컴퓨터의 다른 파일이나 폴더를 가리킵니다. 소프트 링크와 하드 링크가 있으며 -s 옵션을 넣으면 소프트 링크를 만듭니다. 이 소프트 링크는 링운영체제의 '바로가기'와 유사한 것으로 이미 생성되어 있는 다른 파일이나 디렉토리를 가리킬 수 있습니다.

 

시스템 관련 자주 쓰이는 명령어들

(1) uname

커널과 시스템(운영체제) 관한 상세 정보들을 알 수 있는데 명령어입니다.

uname {옵션}

옵션 없이 그냥 입력 시엔 커널의 이름을 표시해줍니다.

uname -a 를 입력하면 전체 정보를 표시합니다.

(2) df

디스크 공간 사용량을 확인하는 명령어입니다.

df -h

 

그냥 df를 치면 byte 단위로 나오기 때문에 읽기가 많이 힘듭니다. 하지만 -h 옵션을 입력하면 사람이 더 읽기 쉽게 만들어줍니다.

(3) ps

현재 돌아가고 있는 프로세스들을 표시합니다.

ps

 

(4) kill

프로세스를 종료하는 명령어입니다.

ps 명령어를 사용해서 pid를 찾은 뒤에 사용하면 됩니다.

kill <pid>

 

아무런 옵션을 쓰지 않으면 Graceful Termination이라고 합니다. 만약 프로세스를 강제로 종료하고 싶다면 kill -9 <pid> 를 입력하면 됩니다.

PID란?
프로세스 아이디를 의미합니다.

 

(5) whereis

리눅스의 특정 명령이나 프로그램이 어디에 있는지 파악할 수 있습니다.

whereis <명령어 이름>

텍스트 관련 자주 쓰이는 명령어들

(1) cat

파일의 내용물을 확인할 수 있습니다. 텍스트 파일일 경우 안에 있는 내용을 볼 수 있습니다.

cat <파일명>

(2) grep

파일 내부에 특정 문자열을 검색하는 데 사용합니다.

cat <파일명> | grep “검색어”

(3) clear

터미널의 글씨를 모두 지웁니다.

clear

 

네트워크 관련 명령어

(1) wget

인터넷으로부터 파일을 다운로드할 수 있는 명령어입니다.

wget <url>

 

(2) ping

현재 아이피 주소와의 연결 상태를 확인합니다.

ping <아이피주소>

 

 

권한 관련 명령어

(1) whoami

현재 접속한 유저 이름을 보여줍니다. 여러 계정으로 접속하는 일이 생길 때, 지금 접속한 계정을 파악할 수 있습니다.

whoami

(2) chmod

특정 파일이나 디렉토리에 권한을 부여하는 명령어입니다. read, write, execute 권한을 특정 계정에 부여하여 시스템의 보안을 유지하는데 사용합니다.

chmod <권한명> <파일명>

 

권한은 숫자로 표현합니다. 이는 3비트의 이진수로 표현하기 때문에 4가 read, 2가 write, 1이 execute로 만약 모든 권한을 열고 싶다면 7(4+2+1) 입력해줘야 합니다. read와 execute만 허용할려면 5가 되겠죠.

 

그리고 권한엔 그룹이 세 가지가 존재합니다. user, group, other이 있기 때문에 각각 권한을 또 작성해줘야 합니다.

chmod 755 file.txt 입력 시엔 user에게 7, group에게 5, other에게 5를 부여한 것입니다.

 

기타 명령어

(1) cal

달력을 볼 수 있습니다. 특정 시간대의 달력도 볼 수 있습니다.

cal {시간대}

 

 

 

 

 

 

 

 

TMI - 어떻게 이 명령어들을 만들었을까요?

명령어도 하나의 작은 프로그램입니다.

리눅스의 이 명령어들이 어떻게 코드로 짜여져 있는지 궁금하시다면 밑의 github repository에서 확인하실 수 있습니다.

https://github.com/coreutils/coreutils/tree/master/src

 

coreutils/src at master · coreutils/coreutils

upstream mirror. Contribute to coreutils/coreutils development by creating an account on GitHub.

github.com

 

참고

https://www.geeksforgeeks.org/basic-linux-commands/#1-is-command-in-linux

 

https://ko.wikipedia.org/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4

 

https://velog.io/@bami/%ED%8C%8C%EC%9D%BC-%EA%B2%BD%EB%A1%9C-%EC%A0%88%EB%8C%80-%EA%B2%BD%EB%A1%9C%EC%99%80-%EC%83%81%EB%8C%80-%EA%B2%BD%EB%A1%9C