1. 리눅스 명령어, 어디서부터 시작해야 할까?
리눅스 서버를 처음 접하면 검은 화면에 커서만 깜박이는 터미널이 당황스럽게 느껴집니다. 마우스 클릭 한 번으로 파일을 열고 닫는 Windows나 macOS와는 전혀 다른 세계입니다.
하지만 서버 관리에서 실제로 반복해서 사용하는 명령어는 생각보다 많지 않습니다. 오늘 소개하는 핵심 명령어 10가지를 익히면 기본적인 서버 운영의 대부분을 처리할 수 있습니다.
2. 터미널 화면 읽는 방법
서버에 SSH로 접속하면 이런 형태의 텍스트가 나타납니다.
ubuntu@web-server:~$
이것을 **프롬프트(Prompt)**라고 합니다. 각 부분의 의미는 다음과 같습니다. ubuntu는 현재 로그인한 사용자 이름, web-server는 서버 이름(호스트명), ~는 현재 위치(물결표는 홈 디렉토리를 의미), $는 일반 사용자 권한(#이면 root 권한)을 나타냅니다.
3. 파일 시스템 탐색 명령어 – pwd, ls, cd
pwd (Print Working Directory)
지금 내가 어느 디렉토리에 있는지 확인합니다.
pwd
실행하면 /home/ubuntu처럼 현재 위치의 전체 경로가 출력됩니다. 작업 중 길을 잃었을 때 가장 먼저 실행하는 명령어입니다.
ls (List)
현재 디렉토리의 파일과 폴더 목록을 출력합니다. 단순히 ls만 입력하면 파일 이름만 나오고, ls -al처럼 옵션을 붙이면 파일 권한, 소유자, 크기, 수정 시간까지 상세히 표시됩니다. -a는 숨김 파일 포함, -l은 상세 정보 표시를 의미합니다.
cd (Change Directory)
다른 디렉토리로 이동합니다. cd /var/www/html처럼 절대 경로로 이동하거나, cd ..으로 상위 폴더로, cd ~로 홈 디렉토리로 이동할 수 있습니다.
4. 파일 조작 명령어 – mkdir, rm, cp, mv
mkdir (Make Directory)
새 폴더를 만듭니다. mkdir myproject처럼 사용하고, 중간 폴더가 없어도 한 번에 경로 전체를 만들려면 mkdir -p a/b/c처럼 -p 옵션을 사용합니다.
rm (Remove)
파일이나 폴더를 삭제합니다. 리눅스에는 휴지통이 없기 때문에 삭제하면 복구가 어렵습니다. 파일은 rm 파일명으로, 폴더 전체는 rm -r 폴더명으로 삭제합니다. -f 옵션은 강제 삭제이므로 특히 주의가 필요합니다.
cp / mv
cp 원본 복사본으로 파일을 복사하고, mv 원본 새이름으로 이름을 바꾸거나 mv 파일 경로로 파일을 이동합니다.
5. 파일 내용 확인 명령어 – cat, less, tail
cat
파일 전체 내용을 화면에 출력합니다. cat config.txt처럼 사용합니다. 파일이 짧을 때 유용하고, 내용이 많으면 화면을 가득 채워 불편할 수 있습니다.
less
파일 내용을 페이지 단위로 스크롤하며 볼 수 있습니다. less /var/log/nginx/access.log처럼 사용합니다. 방향키로 스크롤하고 q로 종료합니다.
tail
파일의 마지막 부분을 출력합니다. 서버 관리에서 가장 많이 사용하는 명령어 중 하나입니다. tail -n 100 /var/log/nginx/error.log는 마지막 100줄을 출력하고, tail -f /var/log/nginx/access.log는 새로운 내용이 추가될 때마다 실시간으로 출력합니다. 오류 발생 시 가장 먼저 실행하는 명령어입니다.
6. 파일 편집 명령어 – nano
서버에서 설정 파일이나 스크립트를 직접 수정해야 할 때는 텍스트 편집기가 필요합니다. 초보자에게 가장 쉬운 편집기는 nano입니다.
nano 파일명으로 파일을 열면 편집 화면이 나타납니다. 화면 아래쪽에 단축키 목록이 표시됩니다. ^는 Ctrl 키를 의미합니다.
편집이 끝나면 Ctrl + X로 종료합니다. 변경 사항이 있으면 저장 여부를 묻는데 Y를 입력하고 Enter를 누르면 저장됩니다.
7. 서비스 관리 명령어 – systemctl
Nginx, MySQL처럼 서버에서 동작하는 서비스들을 관리하는 명령어입니다.
서비스 시작은 sudo systemctl start 서비스명, 중지는 sudo systemctl stop 서비스명, 재시작은 sudo systemctl restart 서비스명으로 합니다.
상태 확인은 sudo systemctl status 서비스명으로 합니다. active (running)이 표시되면 정상입니다.
서버 재부팅 후에도 자동으로 시작되게 하려면 sudo systemctl enable 서비스명을 실행합니다.
8. 명령어 조합의 강력함 – 파이프(|)와 grep
리눅스 명령어의 진정한 강력함은 **파이프(|)**로 명령어를 조합할 때 발휘됩니다. 파이프는 앞 명령어의 출력을 뒤 명령어의 입력으로 전달합니다.
grep은 텍스트에서 특정 패턴을 찾는 명령어입니다.
이 두 가지를 조합하면 로그 파일에서 오류만 빠르게 찾을 수 있습니다.
cat /var/log/nginx/error.log | grep “error”
현재 실행 중인 프로세스 중 nginx가 포함된 것만 표시합니다.
ps aux | grep nginx
9. 오류 상황별 해결 힌트
Permission denied가 나타나면 앞에 sudo를 붙여 관리자 권한으로 실행해 봅니다.
command not found가 나타나면 해당 프로그램이 설치되지 않은 것입니다. sudo apt install 프로그램명으로 설치합니다.
No such file or directory가 나타나면 경로나 파일명이 잘못된 것입니다. ls로 파일 목록을 확인하고 정확한 이름을 다시 입력합니다.
10. 정리 및 다음 단계
오늘 배운 핵심 명령어를 한눈에 정리합니다.
| 명령어 | 기능 |
|---|---|
| pwd | 현재 위치 확인 |
| ls | 파일·폴더 목록 |
| cd | 디렉토리 이동 |
| mkdir | 폴더 생성 |
| rm | 파일·폴더 삭제 |
| cp / mv | 복사 / 이동 |
| cat / less / tail | 파일 내용 확인 |
| nano | 파일 편집 |
| systemctl | 서비스 관리 |
| grep + 파이프 | 텍스트 검색 조합 |
명령어는 직접 타이핑하며 연습하는 것이 가장 효과적입니다. 다음 글에서는 Nginx를 설치하고 웹 페이지를 서버에 올리는 방법을 알아보겠습니다.