
이 글에서 다루는 내용
개발 서버·운영 서버에서 하루에 최소 한 번은 쓰게 되는 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 ripgrep후rg 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 편에서 동일한 명령어들이 계속 재등장합니다.
- 공식 문서: https://man7.org/linux/man-pages/
- 다음 글: Docker 설치부터 컨테이너 실행까지
태그: #Linux #리눅스명령어 #서버관리 #터미널 #shell #시스템관리 #파일권한 #프로세스 #네트워크 #2026
'개발환경 & 도구' 카테고리의 다른 글
| Antigravity Agent Manager - 멀티 에이전트 병렬 개발의 진짜 의미 (1) | 2026.05.06 |
|---|---|
| Google Antigravity 설치 가이드 - Windows·macOS 단계별 따라하기 (0) | 2026.05.05 |
| Docker 설치부터 컨테이너 실행까지 (1) | 2026.04.26 |
| Git 초보 탈출 — 실무에서 쓰는 명령어 정리 (1) | 2026.04.22 |
| VS Code 개발 환경 최적화 세팅 (2) | 2026.04.19 |