[Linux] 리눅스 마스터로 가는 길: 필수 Shell 명령어 완벽 정리
서버 개발자나 시스템 엔지니어가 아니더라도, 개발을 하다 보면 검은 바탕의 터미널(Terminal)과 마주하게 됩니다. GUI 환경이 편할 때도 있지만, 리눅스 쉘(Shell) 명령어에 익숙해지면 작업 속도와 서버 제어 능력이 비교할 수 없을 만큼 강력해집니다.
오늘은 리눅스 초보자부터 중급자까지, 실무에서 가장 빈번하게 사용하는 핵심 쉘 명령어를 카테고리별로 총정리해 드립니다. 이 페이지만 '북마크' 해두시면 언제든 꺼내 쓰실 수 있습니다.
1. 파일 및 디렉토리 조작 (File System)
가장 기본이 되는 탐색 및 관리 명령어입니다.
- pwd (Print Working Directory): 현재 위치한 경로를 절대 경로로 보여줍니다.
- ls (List): 현재 디렉토리의 파일 목록을 출력합니다.
- ls -al: 숨김 파일 포함(a), 상세 정보(l)를 함께 봅니다. (가장 많이 씀)
- ls -lh: 파일 용량을 사람이 읽기 쉬운 단위(K, M, G)로 표시합니다.
- cd (Change Directory): 디렉토리를 이동합니다.
- cd ..: 상위 디렉토리로 이동
- cd ~: 홈 디렉토리로 이동
- cd -: 바로 이전 경로로 복귀 (매우 유용!)
- mkdir (Make Directory): 폴더를 생성합니다.
- mkdir -p a/b/c: 하위 경로까지 한 번에 생성합니다.
- touch: 빈 파일을 생성하거나 파일의 날짜 시간을 갱신합니다.
- cp (Copy): 파일이나 폴더를 복사합니다.
- cp file1 file2: file1을 file2로 복사
- cp -r folder1 folder2: 폴더를 통째로 복사할 때 -r 필수.
- mv (Move): 파일을 이동하거나 이름을 변경할 때 씁니다.
- mv old_name.txt new_name.txt: 이름 변경
- rm (Remove): 파일을 삭제합니다. (휴지통이 없으니 주의!)
- rm -rf folder: 폴더와 그 안의 내용을 묻지 않고 강제로(f) 재귀적으로(r) 삭제. (사용 주의)
2. 파일 내용 확인 및 검색 (View & Search)
서버에서 로그 파일을 분석하거나 설정 파일을 확인할 때 필수입니다.
- cat (Concatenate): 파일 내용을 전체 출력합니다. 짧은 파일에 적합합니다.
- less: 긴 문서를 페이지 단위로 봅니다. (Enter: 한 줄, Space: 한 페이지, q: 종료)
- head / tail: 파일의 앞부분/뒷부분만 확인합니다.
- tail -f server.log: 실시간으로 쌓이는 로그를 계속 모니터링할 때 씁니다. (개발자 필수)
- grep: 파일 내에서 특정 문자열을 검색합니다.
- grep "error" server.log: 로그 파일에서 'error' 단어가 든 줄만 찾습니다.
- grep -r "config" .: 현재 폴더 하위의 모든 파일에서 "config"를 찾습니다.
- find: 파일 자체를 검색합니다.
- find . -name "*.py": 현재 경로 하위에서 확장자가 .py인 모든 파일을 찾습니다.
3. 시스템 상태 및 프로세스 관리 (System & Process)
서버가 느려지거나 특정 프로그램이 응답하지 않을 때 사용합니다.
- ps (Process Status): 현재 실행 중인 프로세스 목록을 봅니다.
- ps aux: 모든 사용자의 모든 프로세스를 상세하게 봅니다.
- ps -ef | grep python: 파이썬으로 실행된 프로세스만 골라 봅니다.
- top / htop: 윈도우의 '작업 관리자'처럼 CPU, 메모리 사용량을 실시간으로 봅니다. (htop이 더 예쁘고 보기 좋습니다.)
- kill: 프로세스를 강제 종료합니다.
- kill -9 [PID]: 해당 PID(프로세스 ID)를 가진 프로그램을 즉시 강제 종료합니다.
- df (Disk Free): 디스크 남은 용량을 확인합니다.
- df -h: 읽기 쉬운 단위(GB)로 표시.
- du (Disk Usage): 특정 디렉토리의 용량을 확인합니다.
- du -sh folder_name: 해당 폴더의 총용량만 깔끔하게 출력.
4. 권한 및 소유권 (Permission)
"Permission denied" 에러를 만났다면 이 명령어들이 필요합니다.
- chmod (Change Mode): 파일의 권한(읽기/쓰기/실행)을 변경합니다.
- chmod 755 script.sh: 소유자는 모든 권한, 나머지는 읽기/실행만.
- chmod +x script.sh: 실행 권한(x)을 추가.
- chown (Change Owner): 파일의 소유자를 변경합니다.
- chown user:group file: 파일 소유자를 user로, 그룹을 group으로 변경.
- sudo: 관리자(root) 권한으로 명령어를 실행합니다.
5. 네트워크 및 압축 (Network & Compress)
- ping: 네트워크 연결 상태를 점검합니다.
- curl: URL을 통해 데이터를 전송하거나 받습니다. (API 테스트에 유용)
- curl -X GET http://localhost:8080/api: API 호출 테스트.
- ip addr (또는 ifconfig): 내 서버의 IP 주소를 확인합니다.
- netstat: 열려있는 포트나 네트워크 연결 상태를 확인합니다.
- netstat -an | grep LISTEN: 현재 리스닝 중인 포트 확인.
- tar: 파일을 묶거나 풉니다.
- tar -czvf create.tar.gz folder: 압축하기 (Compress)
- tar -xzvf create.tar.gz: 압축 풀기 (Extract)
6. 생산성을 높이는 꿀팁 (Redirection & Shortcuts)
명령어만큼 중요한 것이 쉘의 기능을 활용하는 것입니다.
- 파이프 (|): 앞 명령어의 결과를 뒤 명령어의 입력으로 넘깁니다. (리눅스의 꽃)
- 예: ls -al | grep txt (파일 목록 중 txt가 들어간 것만 필터링)
- 리다이렉션 (>, >>): 결과를 파일로 저장합니다.
- >: 덮어쓰기 (기존 내용 삭제)
- >>: 이어쓰기 (기존 내용 뒤에 추가)
- 자동 완성 (Tab): 파일명이나 명령어의 일부만 치고 Tab을 누르면 자동 완성됩니다. (오타 방지 필수)
- 이전 명령어 탐색 (화살표 위/아래): 방금 쳤던 명령어를 다시 불러옵니다.
- 명령어 취소 (Ctrl + C): 실행 중인 작업을 취소하고 싶을 때 누릅니다.
마치며
이 명령어들만 손에 익어도 서버 관리나 개발 환경 세팅이 훨씬 수월해집니다. 처음에는 옵션이 헷갈릴 수 있지만, man [명령어](매뉴얼 확인)를 입력하거나 직접 터미널에서 쳐보면서 익히는 것이 가장 빠릅니다.
'AI 배우기' 카테고리의 다른 글
| MCP 서버 만들기 완벽 가이드: 초보자도 따라하는 실전 예제 (0) | 2026.02.09 |
|---|---|
| Claude Code 완벽 입문 가이드: 설치부터 기초 명령어까지 (0) | 2026.02.09 |
| 개발자의 필수 도구, Git 핵심 명령어 총정리 (1) | 2025.12.27 |
| open-webui를 사용할때 docker가 왜 필요한가? (0) | 2025.07.22 |
| AI를 활용한 보고서와 논문 작성 완벽 가이드 (0) | 2025.07.19 |