Linux 필수 명령어

명령 코드 주석 설명
arch 머신의 프로세서 아키텍처 표시 (1)
uname -m 머신의 프로세서 아키텍처 표시 (2)
uname -r 현재 사용 중인 커널 버전 표시
dmidecode -q 하드웨어 시스템 구성 요소 표시 - (SMBIOS / DMI)
hdparm -i /dev/hda 디스크의 아키텍처 특성 나열
hdparm -tT /dev/sda 디스크에서 테스트 리드 작업 수행
cat /proc/cpuinfo CPU 정보 표시
cat /proc/interrupts 인터럽트 표시
cat /proc/meminfo 메모리 사용량 확인
cat /proc/swaps 사용 중인 스왑 표시
cat /proc/version 커널 버전 표시
cat /proc/net/dev 네트워크 어댑터 및 통계 표시
cat /proc/mounts 마운트된 파일 시스템 표시
lspci -tv PCI 장치 목록
lsusb -tv USB 장치 표시
date 시스템 날짜 표시
cal 2007 2007년의 달력 표시
date 041217002007.00 날짜 및 시간 설정 - 월일시분년.초
clock -w 시간을 BIOS에 저장

명령 코드 주석 설명
shutdown -h now 시스템 종료
init 0 시스템 종료
telinit 0 시스템 종료
shutdown -h hours:minutes & 예약된 시간에 시스템 종료
shutdown -c 예약된 시스템 종료 취소
shutdown -r now 재부팅
reboot 재부팅
logout 로그아웃

명령 코드 주석 설명
cd /home '/home' 디렉토리로 이동
cd .. 상위 디렉토리로 이동
cd ../.. 두 개의 상위 디렉토리로 이동
cd 개인 홈 디렉토리로 이동
cd ~user1 개인 홈 디렉토리로 이동
cd - 마지막으로 있었던 디렉토리로 돌아가기
pwd 작업 경로 표시
ls 디렉토리 내 파일 보기
ls -F 디렉토리 내 파일 보기
ls -l 파일 및 디렉토리의 자세한 정보 표시
ls -a 숨김 파일 표시
ls *[0-9]* 숫자가 포함된 파일명 및 디렉토명 표시
tree 파일 및 디렉토리의 트리 구조 표시 (루트 디렉토리에서 시작)
lstree 파일 및 디렉토리의 트리 구조 표시 (루트 디렉토리에서 시작)
mkdir dir1 'dir1'이라는 이름의 디렉토리 생성
mkdir dir1 dir2 두 개의 디렉토리 동시에 생성
mkdir -p /tmp/dir1/dir2 디렉토리 트리 생성
rm -f file1 'file1'이라는 이름의 파일 삭제
rmdir dir1 'dir1'이라는 이름의 디렉토리 삭제
rm -rf dir1 'dir1'이라는 이름의 디렉토리 및 내용을 동시에 삭제
rm -rf dir1 dir2 두 개의 디렉토리 및 내용을 동시에 삭제
mv dir1 new_dir 디렉토리 이름 바꾸기/이동
cp file1 file2 파일 복사
cp dir/* . 하나의 디렉토리 내 모든 파일을 현재 작업 디렉토리로 복사
cp -a /tmp/dir1 . 현재 작업 디렉토리에 디렉토리 복사
cp -a dir1 dir2 디렉토리 복사
ln -s file1 lnk1 파일이나 디렉토리의 심볼릭 링크 생성
ln file1 lnk1 파일이나 디렉토리의 물리적 링크 생성
touch -t 0712250000 file1 파일이나 디렉토리의 타임스탬프 수정 - (YYMMDDhhmm)
iconv -l 알려진 인코딩 목록 표시
iconv -f fromEncoding -t toEncoding inputFile > outputFile 문자 인코딩 변경
find . -maxdepth 1 -name *.jpg -print -exec convert 현재 디렉토리 내 파일 크기를 배치 조정하고 썸네일 디렉토리로 전송 (ImageMagick 변환 필요)

명령 코드 주석 설명
find / -name file1 '/'에서 시작하여 파일 및 디렉토리 검색
find / -user user1 사용자 'user1'에 속한 파일 및 디렉토리 검색
find /home/user1 -name \*.bin '/home/user1' 디렉토리 내에서 '.bin'으로 끝나는 파일 검색
find /usr/bin -type f -atime +100 지난 100일 동안 사용되지 않은 실행 파일 검색
find /usr/bin -type f -mtime -10 10일 이내에 생성되었거나 수정된 파일 검색
find / -name \*.rpm -exec chmod 755 '{}' \; '.rpm'으로 끝나는 파일 검색 및 해당 권한 설정
find / -xdev -name \*.rpm '.rpm'으로 끝나는 파일 검색, 광디스크, USB 드라이브 등 이동식 장치 무시
locate \*.ps '.ps'로 끝나는 파일 검색 - 먼저 'updatedb' 명령 실행 필요
whereis halt 바이너리 파일, 소스 또는 man의 위치 표시
which halt 바이너리 파일 또는 실행 파일의 전체 경로 표시

명령 코드 주석 설명
mount /dev/hda2 /mnt/hda2 hda2라는 디스크 마운트 - '/mnt/hda2' 디렉토리가 이미 존재해야 함
umount /dev/hda2 hda2라는 디스크 언마운트 - 먼저 '/mnt/hda2'에서 나와야 함
fuser -km /mnt/hda2 장치가 바쁠 때 강제로 언마운트
umount -n /mnt/hda2 /etc/mtab 파일에 쓰지 않고 언마운트 동작 실행 - 파일이 읽기 전용이거나 디스크가 가득 찼을 때 유용
mount /dev/fd0 /mnt/floppy 플로피 디스크 마운트
mount /dev/cdrom /mnt/cdrom CD-ROM이나 DVD-ROM 마운트
mount /dev/hdc /mnt/cdrecorder CDRW나 DVD-ROM 마운트
mount /dev/hdb /mnt/cdrecorder CDRW나 DVD-ROM 마운트
mount -o loop file.iso /mnt/cdrom 파일이나 ISO 이미지 파일 마운트
mount -t vfat /dev/hda5 /mnt/hda5 Windows FAT32 파일 시스템 마운트
mount /dev/sda1 /mnt/usbdisk USB 플래시 드라이브나 장치 마운트
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Windows 네트워크 공유 마운트

명령 코드 주석 설명
df -h 이미 마운트된 파티션 목록 표시
ls -lSr |more 크기 순으로 파일 및 디렉토리 나열
du -sh dir1 디렉토리 'dir1'에서 사용 중인 디스크 공간 추정
du -sk * | sort -rn 용량을 기준으로 파일 및 디렉토리 크기순으로 나열
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 크기를 기준으로 설치된 rpm 패키지가 사용하는 공간 나열 (fedora, redhat 계열 시스템)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 크기를 기준으로 설치된 deb 패키지가 사용하는 공간 나열 (ubuntu, debian 계열 시스템)

명령 코드 주석 설명
groupadd group_name 새로운 사용자 그룹 생성
groupdel group_name 사용자 그룹 삭제
groupmod -n new_group_name old_group_name 사용자 그룹 이름 변경
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 "admin" 사용자 그룹에 속하는 사용자 생성
useradd user1 새로운 사용자 생성
userdel -r user1 사용자 삭제 ('-r' 주 디렉토리 제외)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 사용자 속성 수정
passwd 비밀번호 수정
passwd user1 사용자 비밀번호 수정 (root만 가능)
chage -E 2020-12-31 user1 사용자 비밀번호 만료 기간 설정
pwck '/etc/passwd' 파일 포맷 및 문법 검사 및 존재하는 사용자 확인
grpck '/etc/passwd' 파일 포맷 및 문법 검사 및 존재하는 그룹 확인
newgrp group_name 새로운 그룹에 로그인하여 새로 생성된 파일의 기본 그룹 변경

명령 코드 주석 설명
ls -lh 권한 표시
ls /tmp | pr -T5 -W$COLUMNS 터미널을 5열로 나누어 표시
chmod ugo+rwx directory1 디렉토리의 소유자(u), 그룹(g) 및 기타(o)에게 읽기(r), 쓰기(w) 및 실행(x) 권한 설정
chmod go-rwx directory1 그룹(g) 및 기타(o)의 디렉토리 읽기, 쓰기 및 실행 권한 제거
chown user1 file1 파일 소유자 속성 변경
chown -R user1 directory1 디렉토리 소유자 속성 변경 및 해당 디렉토리 내 모든 파일의 속성도 변경
chgrp group1 file1 파일의 그룹 변경
chown user1:group1 file1 파일의 소유자와 그룹 속성 변경
find / -perm -u+s SUID 제어를 사용하는 시스템의 모든 파일 나열
chmod u+s /bin/file1 바이너리 파일의 SUID 비트 설정 - 해당 파일 실행 시 사용자가 소유자와 동일한 권한 부여
chmod u-s /bin/file1 바이너리 파일의 SUID 비트 비활성화
chmod g+s /home/public 디렉토리의 SGID 비트 설정 - SUID와 유사하지만 디렉토리에 해당
chmod g-s /home/public 디렉토리의 SGID 비트 비활성화
chmod o+t /home/public 파일의 STIKY 비트 설정 - 합법적인 소유자만 파일 삭제 허용
chmod o-t /home/public 디렉토리의 STIKY 비트 비활성화

명령 코드 주석 설명
chattr +a file1 추가 모드로만 파일 읽기 및 쓰기 허용
chattr +c file1 이 파일이 커널에 의해 자동으로 압축/해제 가능하게 허용
chattr +d file1 파일 시스템 백업 시 dump 프로그램이 이 파일을 무시함
chattr +i file1 변하지 않는 파일로 설정 - 삭제, 수정, 이름 변경 또는 링크 할 수 없게 함
chattr +s file1 파일을 안전하게 삭제할 수 있도록 허용
chattr +S file1 응용 프로그램이 이 파일에 쓰기 작업을 수행할 때, 수정 결과를 즉시 디스크에 쓰도록 함
chattr +u file1 파일이 삭제된 경우, 나중에 삭제된 파일을 복원할 수 있게 허용
lsattr 특별 속성 표시

명령 코드 주석 설명
bunzip2 file1.bz2 'file1.bz2'라는 파일 압축 해제
bzip2 file1 'file1'라는 파일 압축
gunzip file1.gz 'file1.gz'라는 파일 압축 해제
gzip file1 'file1'라는 파일 압축
gzip -9 file1 최대 압축
rar a file1.rar test_file 'file1.rar'라는 패키지 생성
rar a file1.rar file1 file2 dir1 'file1', 'file2' 및 'dir1' 디렉토리를 동시에 압축
rar x file1.rar rar 패키지 압축 해제
unrar x file1.rar rar 패키지 압축 해제
tar -cvf archive.tar file1 압축되지 않은 tarball 생성
tar -cvf archive.tar file1 file2 dir1 'file1', 'file2' 및 'dir1'을 포함한 아카이브 파일 생성
tar -tf archive.tar 패키지 내용 표시
tar -xvf archive.tar 패키지 압축 해제
tar -xvf archive.tar -C /tmp 압축된 패키지를 /tmp 디렉토리에 해제
tar -cvfj archive.tar.bz2 dir1 bzip2 형식의 압축 패키지 생성
tar -jxvf archive.tar.bz2 bzip2 형식의 압축 패키지 압축 해제
tar -cvfz archive.tar.gz dir1 gzip 형식의 압축 패키지 생성
tar -zxvf archive.tar.gz gzip 형식의 압축 패키지 압축 해제
zip file1.zip file1 zip 형식의 압축 패키지 생성
zip -r file1.zip file1 file2 dir1 여러 파일 및 디렉토리를 동시에 zip 형식의 압축 패키지로 압축
unzip file1.zip zip 형식의 압축 패키지 압축 해제

명령 코드 주석 설명
rpm -ivh package.rpm rpm 패키지 설치
rpm -ivh --nodeeps package.rpm 의존성 경고를 무시하고 rpm 패키지 설치
rpm -U package.rpm 구성 파일을 변경하지 않고 rpm 패키지 업데이트
rpm -F package.rpm 이미 설치된 rpm 패키지 업데이트
rpm -e package_name.rpm rpm 패키지 삭제
rpm -qa 시스템에 설치된 모든 rpm 패키지 표시
rpm -qa | grep httpd 이름에 "httpd"가 포함된 모든 rpm 패키지 표시
rpm -qi package_name 설치된 패키지의 특별 정보 가져오기
rpm -qg "System Environment/Daemons" 구성 요소에 대한 rpm 패키지 표시
rpm -ql package_name 설치된 rpm 패키지가 제공하는 파일 목록 표시
rpm -qc package_name 설치된 rpm 패키지가 제공하는 구성 파일 목록 표시
rpm -q package_name --whatrequires rpm 패키지와 존재하는 의존 관계 목록 표시
rpm -q package_name --whatprovides rpm 패키지가 차지하는 용량 표시
rpm -q package_name --scripts 설치/삭제 중 실행된 스크립트 표시
rpm -q package_name --changelog rpm 패키지의 변경 역사 표시
rpm -qf /etc/httpd/conf/httpd.conf 지정된 파일을 제공하는 rpm 패키지 확인
rpm -qp package.rpm -l 아직 설치되지 않은 rpm 패키지가 제공하는 파일 목록 표시
rpm --import /media/cdrom/RPM-GPG-KEY 공용 키 디지털 인증서 가져오기
rpm --checksig package.rpm rpm 패키지의 무결성 확인
rpm -qa gpg-pubkey 설치된 모든 rpm 패키지의 무결성 확인
rpm -V package_name 파일 크기, 권한, 유형, 소유자, 그룹, MD5 체크 및 마지막 수정 시간 확인
rpm -Va 시스템에 설치된 모든 rpm 패키지 확인 - 조심히 사용
rpm -Vp package.rpm rpm 패키지가 아직 설치되지 않았는지 확인
rpm2cpio package.rpm | cpio --extract --make-directories *bin* rpm 패키지에서 실행 파일 실행
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm rpm 소스에서 빌드된 패키지 설치
rpmbuild --rebuild package_name.src.rpm rpm 소스에서 rpm 패키지 빌드

명령 코드 주석 설명
yum install package_name rpm 패키지 다운로드 및 설치
yum localinstall package_name.rpm rpm 패키지 설치, 자체 소프트웨어 리포지토리로 모든 의존성 해결
yum update package_name.rpm 현재 시스템에 설치된 모든 rpm 패키지 업데이트
yum update package_name rpm 패키지 업데이트
yum remove package_name rpm 패키지 삭제
yum list 현재 시스템에 설치된 모든 패키지 목록 표시
yum search package_name rpm 리포지토리에서 소프트웨어 패키지 검색
yum clean packages rpm 캐시에서 다운로드된 패키지 삭제
yum clean headers 모든 헤더 파일 삭제
yum clean all 모든 캐시된 패키지 및 헤더 파일 삭제

명령 코드 주석 설명
dpkg -i package.deb deb 패키지 설치/업데이트
dpkg -r package_name 시스템에서 deb 패키지 삭제
dpkg -l 시스템에 설치된 모든 deb 패키지 표시
dpkg -l | grep httpd 이름에 "httpd"가 포함된 모든 deb 패키지 표시
dpkg -s package_name 이미 시스템에 설치된 특별 패키지 정보 가져오기
dpkg -L package_name 시스템에 설치된 deb 패키지가 제공하는 파일 목록 표시
dpkg --contents package.deb 아직 설치되지 않은 패키지가 제공하는 파일 목록 표시
dpkg -S /bin/ping 지정된 파일을 제공하는 deb 패키지 확인

명령 코드 주석 설명
apt-get install package_name deb 패키지 설치/업데이트
apt-cdrom install package_name CD에서 deb 패키지 설치/업데이트
apt-get update 패키지 목록 업그레이드
apt-get upgrade 이미 설치된 모든 소프트웨어 업그레이드
apt-get remove package_name 시스템에서 deb 패키지 삭제
apt-get check 의존성 소프트웨어 리포지토리 확인
apt-get clean 다운로드한 소프트웨어 패키지에서 캐시 정리
apt-cache search searched-package 검색 문자열이 포함된 소프트웨어 패키지 이름 반환

명령 코드 주석 설명
cat file1 첫 번째 바이트부터 파일 내용을 순차적으로 보기
tac file1 마지막 줄부터 역순으로 파일 내용 보기
more file1 긴 파일의 내용 보기
less file1 'more' 명령과 유사하지만 파일 내에서 정상으로도 역으로도 작업할 수 있도록 허용
head -2 file1 파일의 첫 두 줄 보기
tail -2 file1 파일의 마지막 두 줄 보기
tail -f /var/log/messages 파일에 추가되는 내용을 실시간으로 보기

명령 코드 주석 설명
cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 파일의 자세한 설명 텍스트를 병합하고 요약을 새 파일에 쓰기
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 파일의 자세한 설명 텍스트를 병합하고 기존 파일에 요약을 쓰기
grep Aug /var/log/messages 파일 '/var/log/messages'에서 키워드 "Aug" 검색
grep ^Aug /var/log/messages 파일 '/var/log/messages'에서 "Aug"로 시작하는 단어 검색
grep [0-9] /var/log/messages '/var/log/messages' 파일에서 숫자를 포함하는 모든 줄 선택
grep Aug -R /var/log/* '/var/log' 및 하위 디렉터리 내에서 문자열 "Aug" 검색
sed 's/stringa1/stringa2/g' example.txt example.txt 파일에서 "string1"을 "string2"로 대체
sed '/^$/d' example.txt example.txt 파일에서 모든 빈 줄 삭제
sed '/ *#/d; /^$/d' example.txt 파일에서 모든 주석 및 빈 줄 삭제
echo 'esempio' | tr '[:lower:]' '[:upper:]' 상하 셀 내용 병합
sed -e '1d' result.txt example.txt 파일에서 첫 번째 줄 제외
sed -n '/stringa1/p' "string1"이 포함된 줄만 보기
sed -e 's/ *$//' example.txt 각 줄의 마지막 공백 문자 삭제
sed -e 's/stringa1//g' example.txt 문서에서 "string1" 제거 및 나머지 유지
sed -n '1,5p;5q' example.txt 첫 번째 줄에서 다섯 번째 줄까지 내용 보기
sed -n '5p;5q' example.txt 다섯 번째 줄 보기
sed -e 's/00*/0/g' example.txt 여러 개의 0을 단일 0으로 대체
cat -n file1 파일의 행 수 표시
cat example.txt | awk 'NR%2==1' example.txt 파일의 모든 짝수 행 삭제
echo a b c | awk '{print $1}' 한 줄의 첫 번째 열 보기
echo a b c | awk '{print $1,$3}' 한 줄의 첫 번째 및 세 번째 열 보기
paste file1 file2 두 개의 파일 또는 두 열의 내용을 병합
paste -d '+' file1 file2 두 개의 파일 또는 두 열의 내용을 "+"로 구분하여 병합
sort file1 file2 두 파일의 내용을 정렬
sort file1 file2 | uniq 두 파일의 합집합을 추출(중복된 행은 한 번만 유지)
sort file1 file2 | uniq -u 교집합 삭제, 다른 행만 남김
sort file1 file2 | uniq -d 두 파일의 교집합을 추출(두 파일 모두에 존재하는 파일만 남김)
comm -1 file1 file2 두 파일의 내용을 비교하여 'file1'이 포함된 내용만 삭제
comm -2 file1 file2 두 파일의 내용을 비교하여 'file2'가 포함된 내용만 삭제
comm -3 file1 file2 두 파일의 내용을 비교하여 두 파일 공통 부분만 삭제

명령 코드 주석 설명
dos2unix filedos.txt fileunix.txt 텍스트 파일 형식을 MSDOS에서 UNIX로 변환
unix2dos fileunix.txt filedos.txt 텍스트 파일 형식을 UNIX에서 MSDOS로 변환
recode ..HTML < page.txt> page.html 텍스트 파일을 HTML로 변환
recode -l | more 허용된 모든 변환 형식 표시

명령 코드 주석 설명
badblocks -v /dev/hda1 hda1 디스크의 배드 블록 검사
fsck /dev/hda1 hda1 디스크의 Linux 파일 시스템 무결성 검사/수정
fsck.ext2 /dev/hda1 hda1 디스크의 ext2 파일 시스템 무결성 검사/수정
e2fsck /dev/hda1 hda1 디스크의 ext2 파일 시스템 무결성 검사/수정
e2fsck -j /dev/hda1 hda1 디스크의 ext3 파일 시스템 무결성 검사/수정
fsck.ext3 /dev/hda1 hda1 디스크의 ext3 파일 시스템 무결성 검사/수정
fsck.vfat /dev/hda1 hda1 디스크의 fat 파일 시스템 무결성 검사/수정
fsck.msdos /dev/hda1 hda1 디스크의 dos 파일 시스템 무결성 검사/수정
dosfsck /dev/hda1 hda1 디스크의 dos 파일 시스템 무결성 검사/수정

명령 코드 주석 설명
mkfs /dev/hda1 hda1 파티션에서 파일 시스템 생성
mke2fs /dev/hda1 hda1 파티션에서 Linux ext2 파일 시스템 생성
mke2fs -j /dev/hda1 hda1 파티션에서 Linux ext3 (저널링) 파일 시스템 생성
mkfs -t vfat 32 -F /dev/hda1 FAT32 파일 시스템 생성
fdformat -n /dev/fd0 플로피 디스크 포맷
mkswap /dev/hda3 스왑 파일 시스템 생성

명령 코드 주석 설명
mkswap /dev/hda3 스왑 파일 시스템 생성
swapon /dev/hda3 새로운 스왑 파일 시스템 활성화
swapon /dev/hda2 /dev/hdb3 두 개의 스왑 파티션 활성화

명령 코드 주석 설명