본문 바로가기
개발환경 & 도구

Linux 기본 명령어 실무 정리

by 코드파일럿 2026. 4. 26.

Linux 기본 명령어 실무 정리

이 글에서 다루는 내용

개발 서버·운영 서버에서 하루에 최소 한 번은 쓰게 되는 Linux 명령어를 목적별로 정리합니다. 책처럼 처음부터 외우는 자료가 아니라, 현업에서 빈번하게 쓰이는 명령과 옵션만 골라 압축했습니다. 즐겨찾기에 두고 필요할 때 열어보는 용도로 쓰기 좋습니다.


1. 파일과 디렉터리

1-1. 탐색

pwd                 # 현재 경로
ls -al              # 숨김 포함, 긴 포맷
ls -lh              # 사람이 읽기 쉬운 용량
cd -                # 직전 디렉터리로
tree -L 2           # 2단계까지 트리 출력

1-2. 복사·이동·삭제

cp -r src/ dest/    # 디렉터리 복사
mv old new          # 이름 변경 또는 이동
rm -rf tmp/         # 강제 재귀 삭제 (주의)

⚠️ rm -rf는 확인 없이 즉시 삭제합니다. 경로 변수(rm -rf $DIR/)를 사용할 때는 $DIR가 비어있지 않은지 반드시 체크합니다.

1-3. 내용 보기

cat file.log                # 한 번에 출력
less file.log               # 페이지 단위, /검색 가능
head -n 20 file.log         # 앞 20줄
tail -n 100 -f app.log      # 뒤 100줄 + 실시간 추적

2. 검색

2-1. 파일 찾기

find . -name "*.py"                  # 현재 이하 .py 파일
find . -type f -mtime -1             # 24시간 내 수정된 파일
find . -size +100M                   # 100MB 초과 파일

2-2. 내용 검색

grep -rn "TODO" src/                 # 재귀, 라인 번호 표시
grep -i "error" app.log              # 대소문자 무시
grep -v "DEBUG" app.log              # DEBUG 제외

💡 실무에서는 ripgrep(rg)이 훨씬 빠릅니다. sudo apt install ripgreprg TODO src/.


3. 권한과 소유자

3-1. 권한 기본

chmod 644 file        # 소유자 rw-, 그룹 r--, 기타 r--
chmod 755 script.sh   # 실행 권한 포함
chmod +x script.sh    # 실행 권한만 추가

3-2. 소유자 변경

chown user:group file
chown -R nginx:nginx /var/www/html
숫자 의미
4 읽기
2 쓰기
1 실행

조합 예: 읽기+쓰기 = 6, 읽기+실행 = 5, 전부 = 7.


4. 프로세스와 리소스

4-1. 프로세스 조회

ps aux | grep python            # python 프로세스
top                             # 실시간 CPU/메모리
htop                            # 컬러풀한 top (추천)

4-2. 종료

kill <PID>                      # SIGTERM
kill -9 <PID>                   # SIGKILL (강제)
pkill -f "uvicorn app:api"      # 명령 패턴으로 종료

4-3. 디스크와 메모리

df -h                           # 파일시스템 사용률
du -sh *                        # 현재 폴더 각 항목 용량
free -h                         # 메모리 사용량

5. 네트워크

5-1. 연결 상태

ip addr                         # IP 확인
ping -c 4 google.com
ss -tnlp                        # 리스닝 포트와 프로세스
curl -I https://example.com     # 헤더만 확인

5-2. 원격 복사

scp file user@host:/path/       # 업로드
scp user@host:/path/file .      # 다운로드
rsync -avz src/ user@host:dest/ # 증분 동기화

6. 로그와 서비스

6-1. systemd

systemctl status nginx
systemctl restart nginx
journalctl -u nginx -f          # 실시간 로그
journalctl --since "1 hour ago"

6-2. 실시간 모니터링 패턴

tail -f /var/log/nginx/access.log | grep "POST /api"

단일 명령으로 파이프해 에러만 뽑아내는 식의 조합이 가장 현장에서 자주 쓰입니다.


7. 알아두면 좋은 단축 패턴

!!                # 직전 명령 재실행
sudo !!           # 직전 명령을 sudo로
history | tail    # 최근 명령어
Ctrl + R          # 명령어 검색

💡 자주 쓰는 긴 명령은 ~/.zshrc~/.bashrc에 alias로 등록합니다. 예: alias gs='git status'.


트러블슈팅

문제 1: Permission denied 반복

sudo 없이 접근 불가능한 경로일 수 있습니다. ls -l로 소유자 확인부터 합니다. 공용 디렉터리라면 chown보다 chmod g+w로 그룹 권한을 여는 편이 안전합니다.

문제 2: 디스크가 가득 찼다는데 du에는 보이지 않음

삭제됐지만 프로세스가 열고 있는 파일 때문입니다.

lsof | grep deleted

해당 프로세스를 재시작하면 공간이 돌아옵니다.

문제 3: 로그가 너무 많아 파일이 커짐

logrotate -d /etc/logrotate.conf   # 시뮬레이션

/etc/logrotate.d/에 앱별 정책을 추가해 주 1회 회전 + 4주 보관 형태로 관리합니다.


마무리

Linux 명령어는 수백 개지만, 실제 체감하는 빈도 상위 30개만 손에 익혀도 대부분의 업무가 해결됩니다. 이 글에서 정리한 명령을 자주 쓰는 순으로 개인 치트시트로 옮겨두는 것을 추천합니다. 이후 Docker, SSH 편에서 동일한 명령어들이 계속 재등장합니다.

 


태그: #Linux #리눅스명령어 #서버관리 #터미널 #shell #시스템관리 #파일권한 #프로세스 #네트워크 #2026