[리눅스] 프로세스, 패키지, 네트워크, shh&scp 기본 명령어

이지연·2025년 11월 19일

개요

이번 포스팅에서는 리눅스 서버를 다룰 때 알아두면 좋은 프로세스 / 패키지 / 네트워크 / SSH & SCP 관련 기본 명령어들을 정리!!


프로세스 관련 명령어

서버에서 어떤 프로그램이 떠 있는지, 어떻게 종료할지 확인할 때 사용하는 명령어들이다.

# 현재 쉘에서 실행 중인 프로세스 목록 간단 조회
ps
# 시스템 전체 프로세스를 더 자세히 조회
# -e : 모든 프로세스
# -f : full format (UID, PID, PPID, CMD 등)
ps -e
ps -ef
# 특정 프로세스를 이름/패턴으로 검색
# ps -ef 출력에서 grep으로 필터링
# 예) nginx 프로세스 찾기
ps -ef | grep "nginx"
# 프로세스를 강제 종료(SIGKILL)
# - PID(Process ID)는 ps -ef 등으로 확인
# - -9는 가장 강력한 종료 시그널 → 정말 막다른 상황에서만 사용 권장
kill -9 12345
  • 일반 종료는 kill PID 또는 kill -15 PID(SIGTERM)를 먼저 시도하고,
    안 먹힐 때 최후의 수단으로 -9를 쓰는 습관을 들이는 것이 좋다.
  • 실서비스 프로세스에 무지성 kill -9를 날리면 서비스 중단으로 직행할 수 있다.
nginx가 서비스 시작이 되었는지 확인한 터미널 화면 예시

패키지 관리 (yum / apt)

리눅스 배포판에 따라 사용하는 패키지 관리 도구가 다르다.

  • Red Hat 계열 (RHEL, CentOS 등) : yum 또는 dnf
    • 예) sudo yum install nginx
  • Debian 계열 (Ubuntu, Debian 등) : apt
    • 예) sudo apt install nginx

여기서는 Ubuntu/Debian 기준으로 예시를 정리해보자.

# 패키지 목록 최신화 (저장소 인덱스 갱신)
sudo apt update
# 패키지(프로그램) 설치
# 예) nginx 웹 서버 설치
sudo apt install nginx
  • update로 “설치 가능한 최신 버전 목록”을 먼저 갱신하고,
    이후 install, upgrade 등을 수행하는 흐름이 일반적이다.

systemctl (서비스/데몬 프로세스 관리)

systemd 기반 시스템에서 서비스(데몬) 를 관리하는 명령어다.

# 서비스 시작
sudo systemctl start nginx

# 서비스 종료
sudo systemctl stop nginx

# 서비스 재시작
sudo systemctl restart nginx

# 서비스 상태 조회
sudo systemctl status nginx
  • 웹 서버, DB 서버 등은 보통 systemd 서비스로 등록되어 있기 때문에,
    직접 kill 하기보다는 systemctl정상적인 시작/종료를 하는 것이 좋다.

서비스 실행 확인 방법

1) 브라우저로 확인

웹 서버(nginx, apache 등)를 로컬에서 띄웠다면, PC 브라우저 주소창에 아래를 입력해본다.

http://localhost
  • 페이지가 정상적으로 열린다면 HTTP 서버가 잘 작동 중인 것이다.
firefox에서 localhost 확인

2) 터미널에서 확인 (curl)

# 기본 GET 요청
curl localhost

# 헤더만 확인
curl -I localhost
  • 브라우저 없이도 응답 상태 코드(200, 404, 500 등)와 헤더를 확인할 수 있다.

3) kill로 종료하는 경우

  • systemctl stop nginx 로 먼저 정상 종료를 시도하고,
  • 그래도 내려가지 않는다면 ps -ef | grep "nginx" 로 master PID를 찾은 뒤
    필요 시 kill PID 또는 최후에 kill -9 PID를 사용할 수 있다.

네트워크 / DNS / IP 관련 명령어

서버 네트워크 상태를 점검하거나 도메인/IP 정보를 확인할 때 사용하는 기본 도구들이다.

# 도메인에 대한 DNS 정보(IP 등) 조회
nslookup naver.com
# 로컬 네트워크 인터페이스 / IP 정보 확인
ifconfig
# 또는 최신 환경에서는:
ip addr
ifconfig가 설치되어있지 않다면 이미지와 같이 설치 후 진행하면 됨!
# 네트워크 연결 상태 테스트 (ICMP ping)
ping 8.8.8.8      # 구글 DNS
ping google.com   # 도메인으로 테스트
  • ping 이 막혀 있는 서버도 많기 때문에, 응답이 없다고 항상 장애라고 단정 지을 수는 없다.
# 특정 IP/포트로 텍스트 기반 접속 시도 (구형 방식, 보안상 비권장)
telnet 127.0.0.1 80
# netcat(nc)로 포트 오픈 여부 확인
# -z : 실제 데이터 전송 없이 포트 스캔
# -v : 자세한 출력
nc -zv 127.0.0.1 80
# 예) nc -zv naver.com 80 443
  • IP와 포트를 함께 보면 “특정 서버의 특정 서비스”가 열려 있는지 판단할 수 있다.
  • 대표적인 포트:
    • 22 : SSH (원격 접속)
    • 80 : HTTP (웹)
    • 443 : HTTPS (보안 웹)

naver IP 예시 메모

nc -zv naver.com 으로 조회한 IP를 가지고 추가 테스트를 할 수 있다.

443포트에 정상적으로 연결된 모습 확인

원격 접속(SSH) & 원격 파일 전송(SCP)

SSH – 원격 접속

SSH는 리눅스 서버에 원격으로 접속할 때 사용하는 보안 터미널 프로토콜이다.

  • 기본 포트: 22
# 기본 포트(22)로 원격 접속
ssh ubuntu@1.2.3.4
ssh ubuntu@my-server.example.com

# 포트가 22가 아닐 때
ssh -p 2222 ubuntu@1.2.3.4
  • 방화벽/보안 그룹 설정 시, SSH 접속을 허용하려면 22번 포트를 먼저 열어야 한다.
aws의 EC2에서 PC를 대여하여 원격접속 실습 진행

SCP – 원격 파일 전송

SCP(Secure Copy)는 SSH를 이용한 파일 전송 명령어다.

로컬 → 원격 업로드

# 로컬 파일을 원격 서버로 업로드
scp local.txt user@example.com:/home/user/

원격 → 로컬 다운로드

# 원격 파일을 로컬로 다운로드
scp user@example.com:/home/user/remote.txt ./

디렉터리 통째로 복사(-r)

# 디렉터리 전체를 재귀적으로 업로드
scp -r mydir ubuntu@1.2.3.4:/home/ubuntu/
  • -r 옵션으로 폴더 전체를 복사할 수 있어,
    간단한 배포나 백업 용도로도 바로 활용 가능하다.

마치며

이번 글에서는 리눅스 서버 운영에서 자주 사용되는
프로세스 확인/종료, 패키지 설치, 서비스 관리, 네트워크 점검, SSH & SCP 명령어들을 한 번에 정리해보았다!!

profile
Eazy하게

1개의 댓글

comment-user-thumbnail
2025년 12월 11일

제가 아는 터미널은 릴스에서 끝났습니다
부담시러잉~

답글 달기