우분투(리눅스) 명령어 모음

우분투(리눅스) 기본적인 명령어 모음.

아래는 우분투와 다른 리눅스 기반 시스템에서 자주 사용하는 명령어를 카테고리별로 자세히 설명한 내용입니다. 각 명령어에 대한 사용 방법과 주요 옵션을 함께 제공합니다.


1. 시스템 정보

  • uname
    시스템 및 커널 정보를 확인합니다.
    uname -a # 모든 시스템 정보를 출력
    uname -r # 커널 버전만 출력
    uname -m # 시스템 아키텍처 출력 (x86_64 등)
  • lsb_release
    배포판 정보를 확인합니다.
    lsb_release -a # 배포판의 세부 정보 출력
    lsb_release -d # 설명만 출력 (예: Ubuntu 20.04.6 LTS)
  • uptime
    시스템의 작동 시간 및 부하 상태를 확인합니다.
    uptime # 현재 시간, 가동 시간, 사용자 수, 평균 부하 출력
  • df
    디스크 사용량 정보를 확인합니다.
    df -h # 사람이 읽기 쉬운 형식으로 디스크 사용량 출력
    df -T # 파일 시스템 유형 포함 출력
  • free
    메모리 사용 상태를 확인합니다.
    free -h # 사람이 읽기 쉬운 형식으로 메모리 출력

2. 파일 및 디렉토리 관리

  • ls
    디렉토리의 내용을 나열합니다.
    ls # 기본 출력
    ls -l # 상세 목록 보기 (권한, 소유자, 크기, 수정 시간 포함)
    ls -a # 숨김 파일(.으로 시작하는 파일) 포함
    ls -lh # 사람이 읽기 쉬운 형식으로 파일 크기 표시
  • cd
    디렉토리 이동.
    cd /path/to/dir # 특정 디렉토리로 이동
    cd ~ # 홈 디렉토리로 이동 cd .. # 상위 디렉토리로 이동
  • mkdir
    새 디렉토리 생성.
    mkdir dir_name # 단일 디렉토리 생성
    mkdir -p /a/b/c # 상위 디렉토리도 함께 생성
  • rm
    파일 및 디렉토리 삭제.
    rm file_name # 파일 삭제
    rm -r dir_name # 디렉토리 및 내용 삭제
    rm -rf dir_name # 강제 삭제 (주의)
  • cp
    파일 복사.
    cp source_file destination_file # 파일 복사
    cp -r source_dir destination_dir # 디렉토리 복사
  • mv
    파일 및 디렉토리 이동/이름 변경.
    mv old_name new_name # 이름 변경
    mv file_name /new/path/ # 파일 이동
  • find
    특정 파일을 검색.
    find /path -name "file_name" # 이름으로 파일 검색
    find /path -type d -name "dir_name" # 디렉토리 검색

3. 파일 권한 및 소유권 관리

  • chmod
    파일 및 디렉토리 권한 변경.
    chmod 644 file_name # 읽기/쓰기 권한 설정 (소유자: rw, 그룹: r, 기타: r)
    chmod +x script.sh # 실행 권한 추가
  • chown
    파일 소유자 및 그룹 변경.
    chown user file_name # 소유자 변경
    chown user:group file_name # 소유자와 그룹 변경

4. 네트워크

  • ip
    네트워크 설정 및 상태 확인.
    ip a # 네트워크 인터페이스 정보
    ip r # 라우팅 테이블
  • ping
    네트워크 연결 상태를 확인.
    ping google.com # 구글 서버에 ICMP 요청
    ping -c 5 google.com # 5번 요청만 실행
  • curl
    URL에 HTTP 요청.
    curl http://example.com # GET 요청
    curl -O http://example.com/file # 파일 다운로드
  • wget
    URL에서 파일 다운로드.
    wget http://example.com/file # 파일 다운로드

5. 패키지 관리

  • apt
    패키지 설치 및 관리.
    sudo apt update # 패키지 목록 업데이트
    sudo apt upgrade # 패키지 업그레이드
    sudo apt install package_name # 패키지 설치
    sudo apt remove package_name # 패키지 제거
    sudo apt autoremove # 불필요한 패키지 자동 제거
  • dpkg
    패키지 관리 (APT의 낮은 수준 명령어).
    dpkg -i package.deb # 패키지 설치
    dpkg -r package_name # 패키지 제거
    dpkg -l # 설치된 패키지 목록

6. 프로세스 및 서비스 관리

  • ps
    실행 중인 프로세스 확인.
    ps aux # 모든 프로세스 표시
    ps -ef # 포맷 변경된 프로세스 목록
  • top
    실시간 시스템 상태 및 프로세스 확인.
  • kill
    프로세스 종료.
    kill PID # 특정 프로세스 종료
    kill -9 PID # 강제 종료
  • systemctl
    서비스 관리.
    sudo systemctl start service_name # 서비스 시작
    sudo systemctl stop service_name # 서비스 중지
    sudo systemctl status service_name # 서비스 상태 확인

7. 아카이브 및 압축

  • tar
    파일 압축 및 압축 해제
    tar -cvf archive.tar file/dir # 압축 생성
    tar -xvf archive.tar # 압축 해제
    tar -czvf archive.tar.gz file/dir # gzip 압축
    tar -xzvf archive.tar.gz # gzip 해제
  • gzip
    파일을 Gzip으로 압축.
    gzip file_name # 파일 압축
    gunzip file_name.gz # 압축 해제

8. 디스크 관리

  • fdisk
    디스크 파티션 관리.
    sudo fdisk -l # 디스크 파티션 목록
  • mount / umount
    디스크 마운트 및 마운트 해제.
    sudo mount /dev/sdX /mnt # 디스크 마운트
    sudo umount /mnt # 디스크 마운트 해제

9. 기타 유용한 명령어

  • alias
    명령어 별칭 설정.
    alias ll='ls -la' # `ll`로 상세 목록 보기를 실행
  • history
    이전에 실행한 명령어 기록 확인.
    history # 기록 목록 !123 # 기록 번호로 명령 실행
  • clear
    터미널 화면 정리.
    clear # 화면 지우기

10. 파일 조작 및 내용 검색

  • cat
    파일 내용을 출력합니다.
    cat file_name # 파일 전체 내용 출력
    cat file1 file2 > combined_file # 여러 파일 합치기
  • tac
    파일 내용을 역순으로 출력합니다.
    tac file_name
  • more / less
    파일 내용을 페이지 단위로 출력합니다.
    more file_name # 위로 스크롤 불가
    less file_name # 위/아래 스크롤 가능
  • head / tail
    파일의 첫 부분 또는 마지막 부분을 출력합니다.
    head -n 10 file_name # 처음 10줄 출력
    tail -n 20 file_name # 마지막 20줄 출력
    tail -f file_name # 파일의 실시간 변경 사항 출력
  • wc
    파일의 단어, 줄, 문자 개수를 계산합니다.
    wc file_name # 기본 출력 (줄, 단어, 문자 수)
    wc -l file_name # 줄 수만 계산
  • grep
    특정 문자열을 검색합니다.
    grep "pattern" file_name # 파일에서 문자열 검색
    grep -i "pattern" file_name # 대소문자 구분 없이 검색
    grep -r "pattern" /dir # 디렉토리에서 재귀적으로 검색

11. 소프트웨어 관리

  • snap
    스냅 패키지 관리.
    sudo snap install package_name # 스냅 패키지 설치
    sudo snap remove package_name # 스냅 패키지 제거
    sudo snap list # 설치된 스냅 패키지 목록
  • aptitude
    APT보다 더 직관적인 패키지 관리 도구. (별도 설치 필요)
    sudo aptitude search package_name # 패키지 검색
    sudo aptitude install package_name # 패키지 설치
  • flatpak
    Flatpak 패키지 관리. (Flatpak 설치 필요)
    flatpak install flathub app_name # Flatpak 앱 설치
    flatpak list # 설치된 Flatpak 목록

12. 사용자 관리

  • passwd
    사용자 비밀번호 변경.
    passwd # 현재 사용자 비밀번호 변경
    sudo passwd user_name # 특정 사용자 비밀번호 변경
  • who
    현재 로그인한 사용자 목록 확인.
    who
  • last
    이전 로그인 기록 확인.
    last
  • groups
    사용자 그룹 목록 확인.
    groups # 현재 사용자 그룹 확인
    groups user_name # 특정 사용자 그룹 확인
  • usermod
    사용자 설정 변경.
    sudo usermod -aG group_name user_name # 사용자 그룹 추가
    sudo usermod -d /new/home user_name # 홈 디렉토리 변경

13. 하드웨어 및 디바이스

  • lspci
    PCI 장치 목록 출력.bash코드 복사lspci
  • lsusb
    USB 장치 목록 출력.bash코드 복사lsusb
  • dmesg
    시스템 부팅 로그 및 하드웨어 정보를 출력.bash코드 복사dmesg | grep usb # USB 관련 로그 검색
  • lsblk
    디스크 및 파티션 구조 확인.bash코드 복사lsblk
  • blkid
    디스크 UUID 및 파일 시스템 타입 확인.bash코드 복사blkid
  • hdparm
    하드 디스크 정보 및 성능 테스트.bash코드 복사sudo hdparm -I /dev/sdX # 디스크 상세 정보 sudo hdparm -tT /dev/sdX # 성능 테스트

14. 디버깅 및 성능 분석

  • strace
    시스템 호출 추적. (문제 해결 및 디버깅에 유용)
    strace -o output.txt command # 실행 중인 명령어 추적
  • lsof
    열린 파일과 해당 프로세스를 확인.
    lsof # 모든 열린 파일 나열
    lsof -i :8080 # 특정 포트와 연결된 프로세스
  • vmstat
    메모리, CPU, I/O 상태를 실시간으로 확인.
    vmstat 1 5 # 1초 간격으로 5번 출력
  • iostat
    CPU 및 디스크 I/O 상태를 확인.
    iostat

15. 쉘 및 스크립팅

  • echo
    텍스트 출력 및 변수 출력.
    echo "Hello, World!" # 텍스트 출력
    echo $PATH # 환경 변수 출력
  • env
    환경 변수 확인.
    env # 모든 환경 변수 나열
  • export
    환경 변수 설정.
    export VAR_NAME=value # 새 환경 변수 설정
  • crontab
    작업 스케줄링.
    crontab -e # 작업 편집
    crontab -l # 설정된 작업 확인

16. 백업 및 데이터 전송

  • rsync
    파일/디렉토리 동기화.
    rsync -av /source/ /dest/ # 디렉토리 복사 및 동기화
    rsync -avz user@remote:/path /local # 원격 서버에서 파일 가져오기
  • scp
    파일 복사(SSH를 사용).
    scp file user@remote:/path # 파일 업로드
    scp user@remote:/path/file. # 파일 다운로드