우분투(리눅스) 기본적인 명령어 모음.
아래는 우분투와 다른 리눅스 기반 시스템에서 자주 사용하는 명령어를 카테고리별로 자세히 설명한 내용입니다. 각 명령어에 대한 사용 방법과 주요 옵션을 함께 제공합니다.
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. # 파일 다운로드