목차

    까먹음 방지.zip

    🖥️ AWS EC2 리눅스 필수 명령어 총정리 (초보자부터 실무까지)

    zippy 2026. 4. 10. 16:46

    AWS EC2 인스턴스를 운영하면서 반드시 알아야 할 리눅스 명령어를 카테고리별로 정리했습니다. 서버 접속부터 프로세스 모니터링, 로그 관리까지 실무에서 바로 사용할 수 있는 명령어 모음입니다.


    📌 기본 단축키 및 명령어

    명령어/단축키 설명
    cd ~/ 사용자 홈 폴더로 이동
    Ctrl + X nano 편집기 종료
    select-editor 기본 에디터 선택 설정

    1. 서버 접속 / 기본 탐색

    # EC2 인스턴스 SSH 접속 (키파일, 사용자, IP, 포트 지정)
    ssh -i "my-key.pem" ec2-user@13.124.1.2 -p 22
    
    # 현재 세션을 루트로 전환 (환경변수 포함)
    sudo su -
    
    # 숨김파일 포함 상세 목록, 색상 표시
    ls -la --color=auto /var/log/
    
    # 현재 작업 디렉토리 물리적 경로 출력
    pwd -P
    
    # 물리적 경로로 디렉토리 이동 (심볼릭링크 해석)
    cd -P /opt/tomcat10/webapps/
    
    # 최근 20개 명령어 중 yum 관련 검색
    history 20 | grep yum
    
    # 화면 지우고 현재 사용자/UID/GID 확인
    clear && whoami && id
    
    # 현재 셸 종료 (SSH 연결 끊기)
    exit

    2. 시스템 업데이트 / 패키지 관리

    # Amazon Linux 전체 패키지 업데이트
    sudo yum update -y && sudo yum upgrade -y
    
    # Ubuntu 패키지 업데이트 (설정파일 기존 유지)
    sudo apt update && sudo apt upgrade -y -o Dpkg::Options::="--force-confold"
    
    # 여러 패키지 한번에 설치
    sudo yum install -y java-11-openjdk-devel tomcat httpd wget curl
    
    # 패키지 삭제 + 의존성 자동 정리
    sudo yum remove -y httpd && sudo yum autoremove -y
    
    # 설치된 Tomcat 패키지 변경로그 확인
    rpm -qa | grep -i tomcat | xargs rpm -q --changelog | head -20
    
    # 설치된 Java 관련 패키지 개수 확인
    sudo yum list installed | grep -i java | wc -l
    
    # Tomcat 10 관련 사용가능 패키지 검색
    sudo yum search tomcat | grep 10
    
    # 활성화된 Yum/DNF 저장소 목록 (Amazon Linux 2023)
    dnf repolist --enabled | grep amazon

    3. 서비스 관리

    # 모든 서비스 상태 중 웹서버만 필터링
    service --status-all | grep -E "(tomcat|httpd)"
    
    # Tomcat 10 서비스 중지 (SysV init 호환)
    sudo service tomcat10 stop
    
    # Tomcat 10 서비스 시작
    sudo service tomcat10 start
    
    # Tomcat 10 서비스 재시작
    sudo service tomcat10 restart
    
    # Tomcat 관련 모든 systemd 유닛 파일 목록
    sudo systemctl list-unit-files | grep -i tomcat
    
    # Tomcat 10 상세 상태 (전체로그, 페이지 안함)
    sudo systemctl status tomcat10 -l --no-pager
    
    # Tomcat 10 즉시 재시작
    sudo systemctl restart tomcat10 --now
    
    # Tomcat 10 부팅시 자동시작 + 즉시 시작
    sudo systemctl enable tomcat10 --now
    
    # systemd 설정 다시로드 후 재시작
    sudo systemctl daemon-reload && sudo systemctl restart tomcat10
    
    # Tomcat 10 실시간 로그 확인
    journalctl -u tomcat10 -f --no-pager

    4. 네트워크 / 포트 진단

    # 8080 포트 리스닝 프로세스 확인 (TCP만)
    netstat -nlpt | grep :8080
    
    # 모든 리스닝 포트 상세 정보 (netstat 대체)
    sudo ss -tuln | grep LISTEN
    
    # 80/443/8080 포트별 프로세스/PID 확인
    sudo ss -tulnp | grep -E ":(80|443|8080)"
    
    # Tomcat Manager 상태 API 테스트 (SSL 무시)
    curl -I -k https://localhost:8443/manager/status/all
    
    # 웹서버 응답시간/상태 테스트
    wget --spider --timeout=10 http://localhost:8080/ 2>&1 | grep HTTP
    
    # EC2 메타데이터 서비스 연결 테스트
    ping -c 4 169.254.169.254
    
    # 방화벽 규칙 확인 (숫자IP, 통계 포함)
    sudo iptables -L -n -v | grep -E "ACCEPT|DROP"
    
    # TCP TIME_WAIT 연결 수 확인 (연결 누수 진단)
    sudo netstat -anp | grep TIME_WAIT | wc -l

    5. 프로세스 / 성능 모니터링

    # Tomcat/Java 프로세스 상세 정보
    ps aux | grep -E "(tomcat|java)" | grep -v grep
    
    # Java 프로세스별 /proc 디렉토리 정보
    ps -ef | grep java | awk '{print $2}' | xargs -r sudo ls -l /proc/
    
    # Tomcat 프로세스만 top 모니터링 (1회)
    top -p $(pgrep -d, tomcat) -n 1
    
    # 메모리 실시간 모니터링 (3초 간격)
    free -h -s 3
    
    # 디스크 상세 표 형식 출력
    df -h --output=source,fstype,size,used,avail,pcent,target
    
    # 로그 디렉토리 크기순 정렬 (상위 10개)
    du -sh /var/log/* | sort -hr | head -10
    
    # 시스템 부하 + VM 통계 (5초 5회)
    uptime && vmstat 1 5
    
    # 디스크 I/O 통계 (5초 5회)
    iostat -x 1 5 | grep -E "(avg-cpu|Device:)"

    6. 파일 / 로그 관리

    # Tomcat 로그 실시간 확인 (최근 200줄)
    tail -f -n 200 /var/log/tomcat10/catalina.out
    
    # 오류 로그 색상 하이라이트 검색
    grep -i "ERROR|FATAL|OutOfMemory" /var/log/tomcat10/*.log --color=auto
    
    # 어제 생성된 100MB 이상 로그파일 목록
    find /var/log -name "*.log" -mtime -1 -size +100M -exec ls -lh {} \;
    
    # 임시파일 안전 삭제 (에러 무시)
    sudo rm -rf /tmp/* /var/tmp/* 2>/dev/null
    
    # Tomcat 백업 (로그 제외, 날짜명)
    sudo tar -czf /backup/tomcat-$(date +%Y%m%d).tar.gz /opt/tomcat10/ --exclude=/opt/tomcat10/logs
    
    # Tomcat 디렉토리 소유권/권한 일괄 변경
    sudo chown -R tomcat:tomcat /opt/tomcat10/ && sudo chmod -R 755 /opt/tomcat10/
    
    # SSH 키파일 보안 권한 설정
    sudo chmod 400 ~/.ssh/my-key.pem && sudo chmod 700 ~/.ssh/
    
    # 페이지캐시 강제 해제 (메모리 부족시)
    echo "0" | sudo tee /proc/sys/vm/drop_caches

    ⭐ 초보자 TOP 10 필수 명령어

    가장 자주 사용하는 명령어를 우선순위별로 정리했습니다. 이것만 먼저 익혀두세요!

    순위 명령어 설명
    1 ssh -i key.pem ec2-user@IP EC2 접속 (가장 중요!)
    2 sudo su - 루트 권한 획득
    3 ls -la 파일/폴더 목록 확인
    4 cd 경로 디렉토리 이동
    5 pwd 현재 위치 확인
    6 tail -f 로그파일 로그 실시간 확인
    7 ps aux | grep 이름 프로세스 확인
    8 sudo systemctl status 서비스 서비스 상태 확인
    9 df -h 디스크 공간 확인
    10 sudo yum update -y 시스템 업데이트 (Amazon Linux)

    💡 Tip: 명령어가 기억나지 않을 때는 history | grep 키워드로 이전에 사용한 명령어를 검색할 수 있습니다.

    ⚠️ 주의: sudo rm -rf는 복구가 불가능합니다. 경로를 반드시 확인한 후 실행하세요!