리눅스 명령어는 시스템 관리, 파일 처리, 네트워크 관리 등 다양한 작업을 수행할 수 있는 강력한 도구입니다. 이 명령어들은 크게 다음과 같은 카테고리로 나눌 수 있습니다:
## 1. **파일 및 디렉토리 관리 명령어**
- **`ls`**: 디렉토리 목록을 표시.
```sh
ls -l
```
- **`cd`**: 디렉토리 변경.
```sh
cd /path/to/directory
```
- **`pwd`**: 현재 작업 디렉토리 표시.
```sh
pwd
```
- **`cp`**: 파일 및 디렉토리 복사.
```sh
cp source_file destination_file
```
- **`mv`**: 파일 및 디렉토리 이동 또는 이름 변경.
```sh
mv old_name new_name
```
- **`rm`**: 파일 및 디렉토리 삭제.
```sh
rm file
```
- **`mkdir`**: 디렉토리 생성.
```sh
mkdir directory
```
- **`rmdir`**: 빈 디렉토리 삭제.
```sh
rmdir directory
```
- **`find`**: 파일 검색.
```sh
find /path -name "file.txt"
```
- **`touch`**: 빈 파일 생성 또는 파일의 타임스탬프 갱신.
```sh
touch file
```
## 2. **텍스트 처리 명령어**
- **`cat`**: 파일 내용 출력.
```sh
cat file
```
- **`less`**: 파일 내용 페이지 단위로 출력.
```sh
less file
```
- **`head`**: 파일의 처음 몇 줄 출력.
```sh
head -n 10 file
```
- **`tail`**: 파일의 마지막 몇 줄 출력.
```sh
tail -n 10 file
```
- **`grep`**: 텍스트 검색.
```sh
grep "pattern" file
```
- **`awk`**: 텍스트 패턴 스캔 및 처리.
```sh
awk '{print $1}' file
```
- **`sed`**: 스트림 편집기.
```sh
sed 's/old/new/g' file
```
- **`sort`**: 파일 내용 정렬.
```sh
sort file
```
## 3. **시스템 정보 명령어**
- **`uname`**: 시스템 정보 표시.
```sh
uname -a
```
- **`df`**: 디스크 사용량 표시.
```sh
df -h
```
- **`du`**: 디렉토리 및 파일의 디스크 사용량 표시.
```sh
du -sh directory
```
- **`top`**: 시스템 상태 실시간 표시.
```sh
top
```
- **`ps`**: 현재 실행 중인 프로세스 표시.
```sh
ps aux
```
- **`uptime`**: 시스템 가동 시간 및 로드 표시.
```sh
uptime
```
- **`free`**: 메모리 사용량 표시.
```sh
free -h
```
- **`hostname`**: 시스템 호스트 이름 표시 또는 설정.
```sh
hostname
```
## 4. **파일 압축 및 아카이브 명령어**
- **`tar`**: 파일 압축 및 아카이브.
```sh
tar -cvf archive.tar file
tar -xvf archive.tar
```
- **`gzip`**: 파일 압축.
```sh
gzip file
```
- **`gunzip`**: 파일 압축 해제.
```sh
gunzip file.gz
```
- **`zip`**: 파일 압축.
```sh
zip archive.zip file
```
- **`unzip`**: 파일 압축 해제.
```sh
unzip archive.zip
```
## 5. **네트워크 관리 명령어**
- **`ping`**: 네트워크 연결 테스트.
```sh
ping hostname
```
- **`ifconfig`**: 네트워크 인터페이스 설정 (대부분 `ip` 명령어로 대체).
```sh
ifconfig
```
- **`ip`**: IP 주소 및 인터페이스 관리.
```sh
ip addr show
```
- **`netstat`**: 네트워크 연결, 라우팅 테이블, 인터페이스 통계 표시.
```sh
netstat -tuln
```
- **`traceroute`**: 네트워크 경로 추적.
```sh
traceroute hostname
```
- **`ssh`**: 원격 로그인 및 명령어 실행.
```sh
ssh user@hostname
```
- **`scp`**: 보안 복사.
```sh
scp file user@hostname:/path/to/destination
```
- **`wget`**: 웹에서 파일 다운로드.
```sh
wget url
```
- **`curl`**: 데이터 전송.
```sh
curl url
```
## 6. **사용자 및 권한 관리 명령어**
- **`sudo`**: 관리자 권한으로 명령어 실행.
```sh
sudo command
```
- **`chmod`**: 파일 및 디렉토리 권한 변경.
```sh
chmod 755 file
```
- **`chown`**: 파일 소유자 변경.
```sh
chown user:group file
```
- **`passwd`**: 사용자 비밀번호 변경.
```sh
passwd
```
- **`useradd`**: 사용자 추가.
```sh
sudo useradd newuser
```
- **`usermod`**: 사용자 계정 수정.
```sh
sudo usermod -aG groupname username
```
- **`userdel`**: 사용자 삭제.
```sh
sudo userdel username
```
## 7. **프로세스 관리 명령어**
- **`kill`**: 프로세스 종료.
```sh
kill PID
```
- **`killall`**: 특정 이름을 가진 모든 프로세스 종료.
```sh
killall process_name
```
- **`ps`**: 프로세스 상태 확인.
```sh
ps aux
```
- **`top`**: 실시간 프로세스 모니터링.
```sh
top
```
- **`htop`**: 향상된 실시간 프로세스 모니터링 (별도 설치 필요).
```sh
htop
```
## 8. **디스크 관리 명령어**
- **`fdisk`**: 디스크 파티션 테이블 조작.
```sh
sudo fdisk /dev/sda
```
- **`mkfs`**: 파일 시스템 생성.
```sh
sudo mkfs.ext4 /dev/sda1
```
- **`mount`**: 파일 시스템 마운트.
```sh
sudo mount /dev/sda1 /mnt
```
- **`umount`**: 파일 시스템 언마운트.
```sh
sudo umount /mnt
```
- **`df`**: 디스크 공간 사용량 확인.
```sh
df -h
```
## 9. **기타 명령어**
- **`date`**: 현재 날짜와 시간 표시.
```sh
date
```
- **`cal`**: 달력 표시.
```sh
cal
```
- **`who`**: 현재 로그인한 사용자 표시.
```sh
who
```
- **`echo`**: 텍스트 출력.
```sh
echo "Hello, World!"
```
- **`history`**: 명령어 기록 표시.
```sh
history
```
이 명령어들은 리눅스의 다양한 기능을 활용하는 데 필수적입니다. 각 명령어의 세부 옵션과 사용법은 `man` 페이지(예: `man ls`)에서 확인할 수 있습니다.