[Linux] 리눅스 명령어 정리

minpractice_jhj·2025년 3월 24일

Command

목록 보기
1/1

1. 파일 및 디렉터리 관리

🔹 현재 디렉터리 확인 (pwd)

bash
복사편집
pwd  # 현재 작업 중인 디렉터리 출력

🔹 디렉터리 이동 (cd)

bash
복사편집
cd 디렉터리명  # 특정 디렉터리로 이동
cd ..  # 상위 디렉터리로 이동
cd ~  # 홈 디렉터리로 이동
cd -  # 이전 작업 디렉터리로 이동

🔹 디렉터리 목록 보기 (ls)

bash
복사편집
ls  # 현재 디렉터리 파일 및 폴더 목록 출력
ls -l  # 상세 정보 포함
ls -a  # 숨김 파일 포함
ls -lh  # 사람이 읽기 쉬운 형식으로 크기 표시
ls -lt  # 최근 수정된 순서대로 정렬

🔹 디렉터리 생성 (mkdir)

bash
복사편집
mkdir 디렉터리명  # 새 디렉터리 생성
mkdir -p 경로/하위디렉터리  # 상위 디렉터리까지 포함하여 생성

🔹 디렉터리 삭제 (rmdir / rm -r)

bash
복사편집
rmdir 디렉터리명  # 비어있는 디렉터리 삭제
rm -r 디렉터리명  # 디렉터리와 내부 파일까지 강제 삭제

🔹 파일 복사 (cp)

bash
복사편집
cp 원본 대상  # 파일 복사
cp -r 원본디렉터리 대상디렉터리  # 디렉터리 복사

🔹 파일 이동 및 이름 변경 (mv)

bash
복사편집
mv 파일명 새파일명  # 파일 이름 변경
mv 파일명 디렉터리/  # 파일 이동

🔹 파일 삭제 (rm)

bash
복사편집
rm 파일명  # 파일 삭제
rm -rf 디렉터리  # 디렉터리 및 내부 파일 강제 삭제

2. 파일 내용 확인 및 편집

🔹 파일 내용 보기 (cat, less, more)

bash
복사편집
cat 파일명  # 파일 내용 출력
less 파일명  # 파일 내용을 페이지 단위로 보기 (↑↓로 이동)
more 파일명  # less와 비슷하지만 이전 페이지로 이동 불가

🔹 파일 검색 (grep)

bash
복사편집
grep "검색어" 파일명  # 특정 단어가 포함된 줄 찾기
grep -r "검색어" 디렉터리/  # 디렉터리 내 모든 파일에서 검색
grep -i "검색어" 파일명  # 대소문자 무시하고 검색

🔹 파일 찾기 (find)

bash
복사편집
find /경로 -name "파일명"  # 특정 파일 찾기
find . -type f -name "*.txt"  # 현재 디렉터리에서 모든 .txt 파일 찾기

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

🔹 프로세스 확인 (ps, top, htop)

bash
복사편집
ps aux  # 실행 중인 모든 프로세스 목록 보기
top  # 실시간으로 프로세스 및 시스템 상태 확인
htop  # top의 개선된 버전 (설치 필요)

🔹 프로세스 종료 (kill, pkill)

bash
복사편집
kill PID  # 특정 프로세스 종료
pkill 프로세스이름  # 특정 이름을 가진 프로세스 종료
kill -9 PID  # 강제 종료

🔹 메모리 및 CPU 사용량 확인 (free, df, du)

bash
복사편집
free -h  # 메모리 사용량 확인
df -h  # 디스크 사용량 확인
du -sh 디렉터리/  # 특정 디렉터리의 용량 확인

4. 사용자 및 권한 관리

🔹 사용자 정보 확인 (whoami, id, who)

bash
복사편집
whoami  # 현재 로그인한 사용자 출력
id  # 사용자 ID 및 그룹 정보 확인
who  # 현재 시스템에 접속한 사용자 목록

🔹 사용자 변경 (su, sudo)

bash
복사편집
su - 사용자명  # 다른 사용자로 전환
sudo 명령어  # 관리자 권한으로 명령 실행

🔹 파일 권한 변경 (chmod, chown)

bash
복사편집
chmod 755 파일명  # 소유자: 읽기/쓰기/실행, 그룹&기타: 읽기/실행
chmod +x 파일명  # 실행 권한 추가
chown 사용자:그룹 파일명  # 파일 소유권 변경

5. 네트워크 관련 명령어

🔹 네트워크 연결 확인 (ping, curl, wget)

bash
복사편집
ping 도메인/IP  # 특정 서버에 연결 확인
curl -I URL  # 웹 서버 응답 확인
wget URL  # 파일 다운로드

🔹 네트워크 포트 확인 (netstat, ss)

bash
복사편집
netstat -tulnp  # 열린 포트 및 서비스 확인
ss -tulnp  # netstat 대체 명령어

🔹 IP 주소 확인 (ip, ifconfig)

bash
복사편집
ip a  # 네트워크 인터페이스 및 IP 주소 확인
ifconfig  # (구버전) 네트워크 설정 확인

6. 압축 및 아카이브 관리

🔹 파일 압축 (tar, zip, gzip)

bash
복사편집
tar -cvf archive.tar 파일/디렉터리  # tar 압축 파일 만들기
tar -xvf archive.tar  # tar 압축 파일 풀기
zip -r archive.zip 파일/디렉터리  # zip 압축 파일 만들기
unzip archive.zip  # zip 압축 해제

7. 시스템 종료 및 재부팅

bash
복사편집
shutdown -h now  # 즉시 시스템 종료
shutdown -r now  # 즉시 재부팅
reboot  # 시스템 재부팅
poweroff  # 시스템 종료

8. 기타 유용한 명령어

🔹 명령어 실행 기록 (history)

bash
복사편집
history  # 이전에 실행한 명령어 목록 확인

🔹 명령어 실행 시간 측정 (time)

time 명령어  # 실행 시간 측정

🔹 백그라운드 실행 (&, nohup)

명령어 &  # 명령어를 백그라운드에서 실행
nohup 명령어 &  # 로그아웃해도 실행 유지

🔹 파일 전송 명령어 사용법 (SCP를 활용한 EC2로 파일 전송)

  • 목적: 로컬 파일을 EC2 인스턴스로 안전하게 전송하기 위한 SCP 명령어 사용법
  • 명령어 예시:
    scp -i "C:\Users\hwija\Downloads\pinupkey.pem" C:/Users/hwija/intellij/pinup/build/libs/pinup-0.0.1-BETA.jar ec2-user@ec2-43-203-97-218.ap-northeast-2.compute.amazonaws.com:/home/ec2-user/
  • 명령어 설명:
    1. i "C:\Users\hwija\Downloads\pinupkey.pem": SSH 키 파일의 경로 지정
    2. C:/Users/hwija/intellij/pinup/build/libs/pinup-0.0.1-BETA.jar: 전송할 로컬 파일 경로
    3. ec2-user@ec2-3-34-137-70.ap-northeast-2.compute.amazonaws.com: EC2 인스턴스의 사용자 이름과 공인 IP 주소
    4. :/home/ec2-user/: EC2 인스턴스에 파일을 저장할 디렉토리

🔹 EC2에서 실행 중인 JAR 파일 종료 및 백그라운드 실행 방법

1. 실행 중인 프로세스 확인

  1. 현재 실행 중인 pinup-0.0.1-BETA.jar 프로세스를 확인:
ps -ef | grep pinup-0.0.1-BETA.jar
  • 이 명령어로 실행 중인 프로세스가 있는지 확인할 수 있어. 예를 들어:
    ec2-user    5613       1  0 Mar18 ?        00:01:42 java -jar -Dspring.profiles.active=prod pinup-0.0.1-BETA.jar
    ec2-user   36369   36325  0 02:41 pts/1    00:00:00 grep --color=auto pinup-0.0.1-BETA.jar

2. 기존 프로세스 종료

  1. 실행 중인 프로세스(PID 5613)를 종료:
kill -9 5613
  • PID 5613pinup-0.0.1-BETA.jar의 실행 중인 프로세스야. kill -9로 강제 종료할 수 있어.

3. 백그라운드에서 JAR 실행

1. 명령어 1: 현재 작업 디렉토리에서 실행

nohup java -jar -Dspring.profiles.active=prod pinup-0.0.1-BETA.jar > pin-up.log 2>&1 &

설명:

  • nohup: 이 명령어는 현재 터미널 세션을 종료해도 실행 중인 프로세스가 계속 실행되도록 해줍니다.
  • java -jar -Dspring.profiles.active=prod pinup-0.0.1-BETA.jar: pinup-0.0.1-BETA.jar 파일을 실행합니다. Dspring.profiles.active=prod는 Spring 프로파일을 prod로 설정하여, 해당 환경에 맞는 설정을 사용하게 합니다.
  • > pin-up.log 2>&1: 표준 출력(stdout)과 표준 오류(stderr)를 pin-up.log 파일로 리다이렉트합니다. 모든 로그는 이 파일에 기록됩니다.
  • &: 이 부분은 명령어를 백그라운드에서 실행하도록 합니다. 즉, 터미널을 차지하지 않고 계속 실행됩니다.

사용 조건:

  • 현재 작업 중인 디렉토리(pwd 명령어로 확인) 내에 pinup-0.0.1-BETA.jar 파일이 위치해야 합니다.
  • 경로를 생략하고 파일 이름만 사용하므로, 현재 작업 디렉토리에서 실행됩니다.

2. 명령어 2: 절대 경로로 실행

nohup java -jar -Dspring.profiles.active=prod /home/ec2-user/pinup-0.0.1-BETA.jar > pin-up.log 2>&1 &

설명:

  • nohup: 위와 동일하게, 터미널 세션 종료 후에도 프로세스가 계속 실행됩니다.
  • java -jar -Dspring.profiles.active=prod /home/ec2-user/pinup-0.0.1-BETA.jar: /home/ec2-user/ 경로에 위치한 pinup-0.0.1-BETA.jar 파일을 실행합니다. Dspring.profiles.active=prod는 Spring 프로파일을 prod로 설정합니다.
  • > pin-up.log 2>&1: 표준 출력과 오류를 pin-up.log 파일로 리다이렉트하여 로그를 기록합니다.
  • &: 이 명령어를 백그라운드에서 실행하도록 합니다.

사용 조건:

  • pinup-0.0.1-BETA.jar 파일이 /home/ec2-user/ 경로에 위치해야 합니다.
  • 절대 경로를 사용하기 때문에 현재 작업 중인 디렉토리와 관계 없이 파일을 정확한 경로로 지정할 수 있습니다.

4. 실행 확인

  1. 새로 실행된 프로세스 확인:
bash
복사편집
ps -ef | grep pinup-0.0.1-BETA.jar
  • 이 명령어로 실행 중인 프로세스를 확인하고, 새로운 PID가 나타나면 정상적으로 실행되고 있다는 뜻이야.

profile
운동처럼 개발도 작은 실천이 성장의 힘이 된다고 믿는 개발자 minpractice_jhj 기록

0개의 댓글