본문 바로가기
카테고리 없음

[Linux] 실무에서 자주 쓰는 Linux명령어 모음

by JustJunsu 2024. 10. 18.

Linux는 다양한 환경에서 사용되며, 시스템을 효과적으로 관리하기 위해서는 명령어를 잘 활용하는 것이 중요합니다. 이번 포스팅에서는 Linux에서 자주 사용하는 명령어들을 카테고리별로 정리하였습니다. 파일 및 디렉토리 관리, 시스템 및 프로세스 관리, 네트워크 관리, 데이터 다운로드 및 전송, 파일 검색 및 압축, 사용자 및 권한 관리 등의 명령어들을 다루며, 각 명령어의 형식과 사용 예시를 함께 제공하여 실무에서 활용할 수 있도록 하였습니다.

1. 파일 및 디렉토리 관리

1.1. cd (Change Directory)

# 형식: 
cd [디렉토리명] 
# 예시: 
cd /home/user/documents

cd 명령어는 디렉토리(폴더)를 이동할 때 사용됩니다. 절대 경로 또는 상대 경로를 지정할 수 있습니다.

  • cd /: 루트 디렉토리로 이동
  • cd ..: 부모 디렉토리로 이동
  • cd ~: 홈 디렉토리로 이동

1.2. ls (List)

# 형식:
ls [옵션] 
# 예시:
ls -l

ls 명령어는 현재 디렉토리의 파일과 폴더 목록을 출력합니다.

  • ls -l: 파일 목록을 자세히 출력 (파일 크기, 권한, 소유자 등)
  • ls -a: 숨김 파일을 포함한 모든 파일 출력
  • ls -lh: 사람이 읽기 좋은 형식으로 출력 (파일 크기 등)

1.3. mkdir (Make Directory)

# 형식:
mkdir [디렉토리명]
# 예시:
mkdir new\_directory

mkdir 명령어는 새로운 디렉토리를 생성할 때 사용됩니다.

  • mkdir -p /home/user/docs: 상위 디렉토리가 없을 경우, 상위 디렉토리까지 모두 생성
  • mkdir test && cd test: 디렉토리를 생성한 후 바로 해당 디렉토리로 이동

1.4. rm (Remove)

# 형식: 
rm [파일명]
# 예시: 
rm file.txt

rm 명령어는 파일을 삭제할 때 사용됩니다.

  • rm -r folder: 디렉토리와 그 안의 파일을 재귀적으로 삭제
  • rm -f file.txt: 파일이 존재하지 않더라도 오류를 출력하지 않고 강제로 삭제
  • rm -i file.txt: 삭제 전에 사용자에게 확인 요청

1.5. cp (Copy)

# 형식: 
cp [원본파일] [대상파일/디렉토리]
# 예시: 
cp file.txt /home/user/backup/

cp 명령어는 파일이나 디렉토리를 복사할 때 사용됩니다.

  • cp -r dir1 dir2: 디렉토리를 재귀적으로 복사
  • cp -i file.txt /backup: 덮어쓸 때 사용자에게 확인 요청
  • cp -u source/ destination/: 소스 파일이 대상 파일보다 최신일 때만 복사

1.6. mv (Move)

# 형식: 
mv [원본파일] [대상파일/디렉토리]
# 예시: 
mv file.txt /home/user/documents/

mv 명령어는 파일을 이동하거나 이름을 변경할 때 사용됩니다.

  • mv oldname.txt newname.txt: 파일 이름 변경
  • mv /source/file.txt /destination/: 파일을 다른 디렉토리로 이동
  • mv -i file.txt /backup/: 덮어쓰는 경우 사용자에게 확인 요청

1.7. pwd (Print Working Directory)

pwd

pwd 명령어는 현재 작업 중인 디렉토리의 절대 경로를 출력합니다. 현재 위치가 어디인지 확인할 때 유용합니다.


2. 시스템 및 프로세스 관리

2.1. ps (Process Status)

ps aux

ps 명령어는 현재 실행 중인 프로세스를 확인할 수 있습니다.

  • ps aux: 모든 사용자와 프로세스 정보를 출력
  • ps -ef: 전체 포맷으로 출력 (UID, PID, PPID 등)
  • ps -e --forest: 트리 형태로 프로세스 계층 구조를 표시

2.2. top (Task Manager)

top

top 명령어는 CPU 및 메모리 사용량, 실행 중인 프로세스 정보를 실시간으로 표시합니다.

  • top -u [사용자명]: 특정 사용자의 프로세스만 표시
  • top -p [PID]: 특정 프로세스만 추적
  • 상단에서 표시되는 내용은 'Shift + P'를 눌러 CPU 사용량 기준으로 정렬할 수 있고, 'Shift + M'을 눌러 메모리 사용량 기준으로 정렬할 수 있습니다.

2.3. htop (Interactive Process Viewer)

htop

htop은 top 명령어보다 더 세련된 인터페이스와 다양한 기능을 제공합니다. 사용자는 마우스나 키보드를 이용해 쉽게 프로세스를 관리할 수 있으며, top 명령어보다 시각적으로 더 나은 경험을 제공합니다.

2.4. kill (Terminate Process)

# 형식: 
kill [PID]
# 예시:
kill 12345

kill 명령어는 실행 중인 프로세스를 종료할 때 사용됩니다.

  • kill -9 [PID]: 프로세스를 강제로 종료(Signal 9)
  • kill -15 [PID]: 프로세스에 종료 요청(Signal 15)
  • pgrep [프로세스명]: 특정 프로세스명을 검색하여 PID 확인

.5. df (Disk Free)

df -h

df 명령어는 파일 시스템의 디스크 사용량을 확인할 수 있습니다.

  • df -h: 사람이 읽기 쉬운 형식으로 디스크 사용량을 표시 (GB, MB 등)
  • df -T: 각 파일 시스템의 유형을 함께 출력
  • df -i: 파일 시스템의 inode 사용량을 표시

2.6. du (Disk Usage)

du -sh *

du 명령어는 특정 디렉토리의 디스크 사용량을 확인합니다.

  • du -sh: 디렉토리의 전체 크기를 요약
  • du -a: 디렉토리와 하위 파일들의 크기까지 모두 출력
  • du --max-depth=1: 특정 깊이까지의 디렉토리 사용량을 표시

3. 네트워크 관리

3.1. ping

# 형식:
ping [호스트명/IP주소]
# 예시:
ping google.com

ping 명령어는 네트워크 연결 상태를 확인하는 데 사용됩니다.

  • ping -c 4 google.com: 네트워크 패킷을 4번만 보내고 결과 출력
  • ping -t google.com: 특정 호스트에 대한 지속적인 패킷 전송 및 응답 시간 확인

3.2. ifconfig (Interface Configuration)

ifconfig -a

ifconfig 명령어는 네트워크 인터페이스 정보를 확인하고 설정을 변경하는 데 사용됩니다.

  • ifconfig eth0: 특정 네트워크 인터페이스의 정보를 확인
  • ifconfig eth0 down: 네트워크 인터페이스를 비활성화
  • ifconfig eth0 up: 네트워크 인터페이스를 활성화

3.3. netstat (Network Statistics)

netstat -an

netstat 명령어는 네트워크 연결 상태와 포트 정보를 확인할 수 있는 명령어입니다.

  • netstat -tuln: 모든 열려 있는 포트와 사용 중인 연결을 표시
  • netstat -p: 프로세스별 네트워크 연결 정보 표시
  • netstat -i: 네트워크 인터페이스의 트래픽 통계 확인

3.4. ssh (Secure Shell)

# 형식:
ssh [사용자명]@[호스트]
# 예시:
ssh [user@192.168.0.1](mailto:user@192.168.0.1)

ssh 명령어는 원격 서버에 보안적으로 접속할 때 사용됩니다.

ssh -p \[포트번호\] user@hostname: 특정 포트를 통해 SSH 연결
ssh -i \[키파일\] user@hostname: SSH 키 파일을 사용하여 로그인

4. 데이터 다운로드 및 전송

4.1. curl (Client URL)

# 형식:
curl [옵션] [URL]
# 예시:
curl [http://example.com](http://example.com)

curl 명령어는 URL을 통해 데이터를 전송하거나 다운로드할 때 사용됩니다.

curl -O [http://example.com/file.zip](http://example.com/file.zip) # 파일을 다운로드
curl -X POST -d "param1=value1" [http://example.com](http://example.com) # POST 요청으로 데이터 전송
curl -H "Content-Type: application/json" -d '{"key":"value"}' [http://example.com](http://example.com) # JSON 형식으로 데이터 전송

4.2. wget (Download Files)

# 형식:
wget [URL] 
# 예시:
wget [http://example.com/file.zip](http://example.com/file.zip)

wget 명령어는 웹에서 파일을 다운로드할 때 사용됩니다.

wget -c [http://example.com/file.zip](http://example.com/file.zip) # 다운로드가 중단된 파일을 이어서 다운로드
wget -r [http://example.com](http://example.com) # 전체 웹사이트를 재귀적으로 다운로드
wget --limit-rate=200k [http://example.com](http://example.com) # 다운로드 속도를 제한

5. 파일 검색 및 압축

5.1. find (Search Files)

# 형식:
find [경로] [조건]
# 예시:
find /home/user -name "*.txt"

find 명령어는 파일을 찾는 데 사용됩니다.

find / -name "\*.txt" # 모든 디렉토리에서 .txt 파일 검색
find /home -type d -name "dir1" # 특정 이름의 디렉토리 검색
find /home -size +1G # 1GB 이상의 파일 검색

5.2. grep (Search Text)

# 형식:
grep [옵션] [검색어] [파일명]
# 예시:
grep "error" log.txt

grep 명령어는 파일 내에서 특정 텍스트를 검색합니다.

grep -r "text" /path # 하위 디렉토리까지 포함하여 검색
grep -i "text" file.txt # 대소문자 구분 없이 검색
grep -n "text" file.txt # 텍스트가 포함된 줄 번호와 함께 출력

5.3. tar (Create/Extract Archives)

# 압축하기
tar -cvf archive.tar file1 file2
# 압축 풀기
tar -xvf archive.tar

tar 명령어는 여러 파일을 묶어 하나의 압축 파일로 만들거나 이를 해제할 때 사용됩니다.

tar -zcvf archive.tar.gz file1 file2 # gzip으로 압축하여 tar 파일 생성
tar -xvzf archive.tar.gz # gzip 압축 해제 후 tar 파일 풀기
tar -tvf archive.tar # tar 파일 내용 확인

5.4. zip / unzip (Compress/Extract Zip Files)

# 압축하기
zip archive.zip file1 file2
# 압축 풀기
unzip archive.zip

zip 명령어는 파일을 압축할 때, unzip 명령어는 압축을 풀 때 사용됩니다.

zip -r archive.zip folder/ # 디렉토리를 재귀적으로 압축
unzip archive.zip -d /path # 특정 경로에 압축 해제
unzip -l archive.zip # 압축 파일의 내용 확인

6. 사용자 및 권한 관리

6.1. chmod (Change File Permissions)

chmod 755 script.sh

chmod 명령어는 파일이나 디렉토리의 권한을 설정할 때 사용됩니다.

chmod 644 file.txt # 읽기/쓰기 권한을 소유자에게, 읽기 권한을 그룹과 다른 사용자에게 설정
chmod +x script.sh # 실행 권한 부여
chmod -R 755 /path/to/dir # 디렉토리와 하위 파일에 재귀적으로 권한 설정

6.2. chown (Change File Owner)

chown user:user file.txt

chown 명령어는 파일이나 디렉토리의 소유자와 그룹을 변경합니다.

chown root:root /file # 파일의 소유자를 root로 변경
chown -R user:group /folder # 디렉토리와 하위 파일의 소유자와 그룹을 재귀적으로 변경
chown --from=olduser newuser /file # 특정 소유자에서 다른 소유자로만 변경

 

결론

이번 포스팅에서는 Linux에서 자주 사용하는 명령어들을 파일 및 디렉토리 관리, 시스템 및 프로세스 관리, 네트워크 관리, 데이터 다운로드 및 전송, 파일 검색 및 압축, 사용자 및 권한 관리로 나누어 정리했습니다. 각 명령어는 실무에서 자주 활용되는 명령어들이며, 이를 통해 Linux 시스템을 더욱 효율적으로 관리할 수 있을 것입니다. 명령어에 익숙해질수록 작업 속도와 효율이 크게 향상될 것입니다.