리눅스 서버 기본 명령어 정리 (초보자용)
서버 관리를 시작하면 가장 먼저 마주하게 되는 것이 리눅스 터미널입니다. 윈도우처럼 마우스로 클릭하는 GUI 환경이 아니라, 검은 화면에 텍스트로 명령어를 입력하는 CLI(Command Line Interface) 환경이죠. 처음에는 낯설고 어렵게 느껴지지만, 기본 명령어만 익히면 훨씬 효율적으로 서버를 관리할 수 있습니다. 이번 글에서는 초보자가 꼭 알아야 할 리눅스 기본 명령어들을 실용적인 예시와 함께 정리하겠습니다.
디렉토리 탐색 명령어
리눅스에서 가장 기본이 되는 것은 현재 위치를 파악하고 이동하는 것입니다.
pwd (Print Working Directory) 명령어는 현재 작업 중인 디렉토리의 전체 경로를 보여줍니다. 터미널을 열었을 때 “내가 지금 어디에 있지?”라는 궁금증이 들 때 사용합니다. 예를 들어 “pwd”를 입력하면 “/home/user” 같은 결과가 나옵니다.
ls (List) 명령어는 현재 디렉토리의 파일과 폴더 목록을 보여줍니다. 윈도우 탐색기에서 폴더를 열었을 때 파일 목록이 보이는 것과 같습니다. “ls”만 입력하면 기본 목록이, “ls -l”을 입력하면 파일 권한, 소유자, 크기, 수정 날짜 등 상세 정보가 표시됩니다. “ls -a”는 숨김 파일까지 모두 보여주고, “ls -lah”처럼 옵션을 결합하면 상세하게 모든 파일을 사람이 읽기 쉬운 형식으로 볼 수 있습니다.
cd (Change Directory) 명령어는 디렉토리를 이동할 때 사용합니다. “cd /var/www”라고 입력하면 /var/www 디렉토리로 이동합니다. “cd ..”는 상위 디렉토리로, “cd ~”는 홈 디렉토리로 이동합니다. 그냥 “cd”만 입력해도 홈 디렉토리로 돌아갑니다. 절대 경로(/)로 시작)와 상대 경로를 모두 사용할 수 있습니다.
파일 및 디렉토리 관리 명령어
파일과 폴더를 만들고, 복사하고, 이동하고, 삭제하는 것은 서버 관리의 기본입니다.
mkdir (Make Directory) 명령어는 새 디렉토리를 생성합니다. “mkdir project”라고 입력하면 현재 위치에 project라는 폴더가 만들어집니다. “mkdir -p /home/user/project/src”처럼 -p 옵션을 사용하면 중간 경로에 없는 디렉토리까지 자동으로 생성해줍니다.
touch 명령어는 빈 파일을 생성합니다. “touch index.html”을 입력하면 index.html이라는 빈 파일이 만들어집니다. 이미 존재하는 파일에 touch를 사용하면 수정 시간만 업데이트됩니다.
cp (Copy) 명령어는 파일이나 디렉토리를 복사합니다. “cp file1.txt file2.txt”는 file1.txt를 file2.txt로 복사합니다. “cp -r dir1 dir2″처럼 -r 옵션을 사용하면 디렉토리 전체를 재귀적으로 복사할 수 있습니다. 디렉토리를 복사할 때는 반드시 -r 옵션이 필요합니다.
mv (Move) 명령어는 파일을 이동하거나 이름을 변경합니다. “mv oldname.txt newname.txt”는 파일 이름을 바꾸고, “mv file.txt /home/user/”는 파일을 다른 위치로 이동합니다. cp와 달리 디렉토리를 이동할 때 -r 옵션이 필요 없습니다.
rm (Remove) 명령어는 파일이나 디렉토리를 삭제합니다. “rm file.txt”는 파일을 삭제하고, “rm -r directory”는 디렉토리와 그 안의 모든 내용을 삭제합니다. “rm -rf directory”처럼 -f(force) 옵션을 추가하면 확인 없이 강제로 삭제합니다. rm 명령어는 되돌릴 수 없으므로 매우 조심해서 사용해야 합니다. 특히 “rm -rf /”는 시스템 전체를 삭제하는 위험한 명령어이므로 절대 실행하면 안 됩니다.
파일 내용 확인 명령어
서버에서 파일의 내용을 확인하는 것은 매우 자주 하는 작업입니다.
cat (Concatenate) 명령어는 파일의 전체 내용을 화면에 출력합니다. “cat config.txt”를 입력하면 config.txt의 내용이 터미널에 표시됩니다. 파일이 길면 화면을 넘어가므로 짧은 파일을 볼 때 적합합니다.
less 명령어는 파일을 페이지 단위로 볼 수 있게 해줍니다. “less logfile.txt”를 입력하면 파일 내용이 나타나고, 화살표 키나 스페이스바로 스크롤할 수 있습니다. ‘q’ 키를 누르면 종료됩니다. 긴 로그 파일을 볼 때 유용합니다.
head 명령어는 파일의 처음 몇 줄만 보여줍니다. “head -n 10 file.txt”는 file.txt의 처음 10줄을 표시합니다. 옵션 없이 “head file.txt”만 입력하면 기본적으로 처음 10줄이 나옵니다.
tail 명령어는 파일의 마지막 몇 줄을 보여줍니다. “tail -n 20 error.log”는 error.log의 마지막 20줄을 표시합니다. 특히 “tail -f access.log”처럼 -f 옵션을 사용하면 파일에 새로운 내용이 추가될 때마다 실시간으로 보여주므로, 서버 로그를 모니터링할 때 매우 유용합니다.
grep 명령어는 파일에서 특정 문자열을 검색합니다. “grep ‘error’ logfile.txt”는 logfile.txt에서 ‘error’가 포함된 모든 줄을 찾아줍니다. “grep -i ‘error’ logfile.txt”처럼 -i 옵션을 사용하면 대소문자를 구분하지 않고 검색합니다. “grep -r ‘TODO’ .”는 현재 디렉토리와 하위 디렉토리의 모든 파일에서 ‘TODO’를 검색합니다.
권한 및 소유권 관리 명령어
리눅스는 다중 사용자 시스템이므로 파일 권한 관리가 중요합니다.
chmod (Change Mode) 명령어는 파일의 권한을 변경합니다. 리눅스에서는 읽기(r), 쓰기(w), 실행(x) 권한이 소유자, 그룹, 기타 사용자별로 설정됩니다. “chmod 755 script.sh”는 소유자에게는 모든 권한을, 그룹과 기타 사용자에게는 읽기와 실행 권한만 부여합니다. “chmod +x script.sh”는 실행 권한만 추가합니다.
chown (Change Owner) 명령어는 파일의 소유자를 변경합니다. “chown user:group file.txt”는 file.txt의 소유자를 user로, 그룹을 group으로 변경합니다. 서버에서 웹 파일의 소유권을 웹 서버 사용자로 변경할 때 자주 사용합니다.
시스템 모니터링 명령어
서버의 상태를 확인하고 모니터링하는 것은 매우 중요합니다.
top 명령어는 실시간으로 시스템 리소스 사용 현황을 보여줍니다. 윈도우의 작업 관리자와 비슷합니다. CPU, 메모리 사용량과 실행 중인 프로세스 목록을 실시간으로 확인할 수 있습니다. ‘q’ 키를 누르면 종료됩니다.
df (Disk Free) 명령어는 디스크 사용량을 보여줍니다. “df -h”를 입력하면 사람이 읽기 쉬운 형식(GB, MB)으로 각 파티션의 용량, 사용량, 남은 공간을 표시합니다. 디스크가 가득 차서 서버가 멈추는 것을 방지하기 위해 정기적으로 확인해야 합니다.
du (Disk Usage) 명령어는 디렉토리나 파일의 용량을 확인합니다. “du -sh /var/log”는 /var/log 디렉토리가 차지하는 총 용량을 보여줍니다. “du -h –max-depth=1″은 현재 디렉토리의 각 하위 디렉토리 크기를 보여줍니다.
ps (Process Status) 명령어는 실행 중인 프로세스를 보여줍니다. “ps aux”는 모든 프로세스의 상세 정보를 표시합니다. “ps aux | grep nginx”처럼 grep과 결합하면 특정 프로세스만 찾을 수 있습니다.
네트워크 관련 명령어
서버는 네트워크로 연결되어 있으므로 네트워크 명령어도 중요합니다.
ping 명령어는 특정 서버나 IP 주소에 연결 가능한지 확인합니다. “ping google.com”을 입력하면 구글 서버에 패킷을 보내고 응답 시간을 표시합니다. Ctrl+C를 눌러 중단할 수 있습니다.
wget 명령어는 인터넷에서 파일을 다운로드합니다. “wget https://example.com/file.zip”은 해당 파일을 현재 디렉토리로 다운로드합니다. 서버에 프로그램이나 파일을 설치할 때 자주 사용합니다.
curl 명령어는 URL로 데이터를 전송하거나 가져옵니다. API 테스트나 웹페이지 내용 확인에 유용합니다. “curl https://api.example.com”은 해당 URL의 내용을 터미널에 출력합니다.
기타 유용한 명령어
clear 명령어는 터미널 화면을 깨끗하게 지웁니다. 화면이 복잡해졌을 때 사용하면 좋습니다.
history 명령어는 이전에 입력한 명령어 목록을 보여줍니다. 긴 명령어를 다시 입력하기 귀찮을 때 history에서 찾아서 재실행할 수 있습니다.
man (Manual) 명령어는 다른 명령어의 설명서를 보여줍니다. “man ls”를 입력하면 ls 명령어의 자세한 사용법과 옵션을 확인할 수 있습니다.
리눅스 명령어는 처음에는 어렵게 느껴지지만, 실제로 자주 사용하는 것은 20~30개 정도입니다. 이 글에서 소개한 기본 명령어들을 익히면 대부분의 서버 관리 작업을 수행할 수 있을 것입니다. 직접 터미널에서 하나씩 실습해보는 것이 가장 빠른 학습 방법입니다.
Leave a Reply