Linux 필수 명령어 - 자주 쓰는 실전 커맨드 정리

핵심 요약#

3줄 요약

  1. Linux 작업의 90%는 자주 쓰는 핵심 명령어로 해결 가능
  2. 파일 관리, 텍스트 처리, 시스템 모니터링, 네트워크, 권한 관리가 핵심
  3. GUI 도구가 없는 서버 환경에서는 필수 기술

읽는 시간: 20분 | 난이도: 초급 | 환경: Linux/macOS 터미널

참고 자료#

문제 상황#

Linux를 처음 접하면 수백 개의 명령어에 압도되지만,
막상 일상에서 사용하는 Linux 명령어는 한정되어 있습니다.
그렇지만 인간은 망각의 동물로서, 저도 가끔씩 헷갈려서 인터넷에 검색할 때가 종종 있었습니다.

해결 방법#

그래서 카테고리별로 가장 자주 쓰는 명령어를 모두 정리했습니다.

1. 파일/디렉토리 관리#

ls - 파일 목록 보기

Terminal window
# 기본 사용
ls
# 숨김 파일 포함, 상세 정보
ls -la
# 최신 파일 순 정렬
ls -lt

cd - 디렉토리 이동

Terminal window
# 홈 디렉토리로
cd ~
# 이전 디렉토리로
cd -
# 상위 디렉토리로
cd ..

pwd - 현재 위치 확인

/home/username/projects
pwd

mkdir - 디렉토리 생성

Terminal window
# 단일 디렉토리
mkdir myproject
# 중첩 디렉토리 한 번에
mkdir -p project/src/components

cp - 파일 복사

Terminal window
# 파일 복사
cp source.txt backup.txt
# 디렉토리 전체 복사
cp -r old_folder new_folder

mv - 이동/이름 변경

Terminal window
# 파일 이동
mv file.txt /home/user/docs/
# 이름 변경
mv old_name.txt new_name.txt

rm - 삭제

Terminal window
# 파일 삭제
rm unwanted.txt
# 디렉토리 전체 삭제
rm -rf old_project
# 확인하며 삭제
rm -i file.txt

find - 파일 검색

Terminal window
# 이름으로 찾기
find . -name "*.log"
# 7일 이상 된 파일
find . -mtime +7
# 큰 파일 찾기 (100MB 이상)
find . -size +100M

touch - 파일 생성/타임스탬프 변경

Terminal window
# 빈 파일 생성
touch newfile.txt
# 여러 파일 동시 생성
touch file1.txt file2.txt file3.txt
# 타임스탬프만 업데이트
touch existing_file.txt

ln - 링크 생성

Terminal window
# 심볼릭 링크 생성 (가장 자주 사용)
ln -s /path/to/original /path/to/link
# 하드 링크 생성
ln original.txt hardlink.txt
# 심볼릭 링크 확인
ls -l link_name

2. 텍스트 처리#

cat - 파일 내용 보기

Terminal window
# 전체 내용 출력
cat file.txt
# 여러 파일 합치기
cat file1.txt file2.txt > combined.txt

grep - 텍스트 검색

Terminal window
# 기본 검색
grep "error" log.txt
# 대소문자 구분 없이
grep -i "ERROR" log.txt
# 라인 번호 포함
grep -n "TODO" code.js

head - 앞부분 보기

Terminal window
# 기본 10줄
head file.txt
# 처음 3줄만
head -n 3 file.txt

tail - 끝부분 보기

Terminal window
# 마지막 10줄
tail file.txt
# 실시간 로그 확인
tail -f /var/log/app.log

less - 페이지 단위로 보기

Terminal window
less large_file.txt
# Space: 다음 페이지, q: 종료

more - 간단한 페이지 보기

Terminal window
more file.txt
# Space: 다음 페이지, q: 종료

echo - 텍스트 출력

Terminal window
# 기본 출력
echo "Hello World"
# 파일에 쓰기 (덮어쓰기)
echo "내용" > file.txt
# 파일에 추가
echo "새 줄" >> file.txt
# 변수 출력
echo $HOME

nano - 간단한 텍스트 편집기

Terminal window
# 파일 편집
nano file.txt
# 편집 후 저장: Ctrl+O, 종료: Ctrl+X
# 검색: Ctrl+W

vim - 강력한 텍스트 편집기

Terminal window
# 파일 편집
vim file.txt
# 기본 명령어:
# i: 입력 모드, ESC: 명령 모드
# :w 저장, :q 종료, :wq 저장 후 종료
# :q! 저장 없이 강제 종료

wc - 줄/단어/바이트 수

Terminal window
# 줄 수
wc -l file.txt
# 단어 수
wc -w file.txt
# 전체 통계
wc file.txt

sort - 정렬

Terminal window
# 기본 정렬
sort names.txt
# 숫자 정렬
sort -n scores.txt
# 중복 제거(정렬 후)
sort file.txt | uniq

uniq - 중복 제거/카운트

Terminal window
# 연속 중복 제거(정렬 후 사용 권장)
uniq file.txt
# 중복 카운트
uniq -c file.txt

cut - 컬럼 추출

Terminal window
# 콤마 구분 2번째 컬럼
cut -d ',' -f 2 data.csv
# 문자 범위 추출
cut -c 1-5 file.txt

tr - 문자 변환

Terminal window
# 소문자를 대문자로
tr 'a-z' 'A-Z' < file.txt
# 공백을 줄바꿈으로
tr ' ' '\n' < words.txt

awk - 필드 처리

Terminal window
# 1, 3번째 필드 출력
awk '{print $1, $3}' file.txt
# 특정 조건 필터링
awk '$3 > 100 {print $0}' data.txt

sed - 스트림 편집

Terminal window
# 치환
sed 's/old/new/g' file.txt
# 특정 줄 출력
sed -n '1,5p' file.txt

tee - 출력 복사

Terminal window
# 화면 출력 + 파일 저장
command | tee output.log
# 이어쓰기
command | tee -a output.log

xargs - 표준입력 인수화

Terminal window
# 결과를 인수로 전달
find . -name "*.log" | xargs rm
# 빈 줄 처리
printf "a\nb\n" | xargs -n 1 echo

diff - 파일 비교

Terminal window
# 기본 비교
diff file1.txt file2.txt
# 유니파이드 포맷
diff -u old.txt new.txt

3. 시스템 모니터링#

ps - 프로세스 목록

Terminal window
# 내 프로세스
ps
# 모든 프로세스 상세 정보
ps aux
# 특정 프로세스 찾기
ps aux | grep nginx

top - 실시간 모니터링

Terminal window
top
# q: 종료, M: 메모리순, P: CPU순

htop - 향상된 모니터링

Terminal window
htop
# 방향키로 선택, F9로 종료

uptime - 가동 시간/로드 평균

Terminal window
uptime

df - 디스크 용량

Terminal window
# 기본 사용
df -h
# 출력: 각 파티션의 사용량

du - 디렉토리 용량

Terminal window
# 현재 디렉토리 크기
du -sh .
# 하위 디렉토리별 크기
du -h --max-depth=1

free - 메모리 사용량

Terminal window
free -h
# 출력: 총 메모리, 사용 중, 여유 공간

vmstat - 시스템 상태 요약

Terminal window
vmstat 1

iostat - 디스크 I/O

Terminal window
iostat -xz 1

lsof - 열린 파일/포트

Terminal window
# 포트 사용 프로세스 확인
lsof -i :8080
# 특정 프로세스 파일 확인
lsof -p 1234

kill - 프로세스 종료

Terminal window
# 정상 종료
kill 1234
# 강제 종료
kill -9 1234

killall - 이름으로 종료

Terminal window
killall nginx

systemctl - 서비스 관리 (systemd)

Terminal window
# 상태 확인
systemctl status nginx
# 시작/중지/재시작
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

journalctl - 시스템 로그

Terminal window
# 최근 로그
journalctl -n 100
# 특정 서비스 로그
journalctl -u nginx

dmesg - 커널 로그

Terminal window
dmesg | tail

4. 권한 관리#

kill - 프로세스 종료

Terminal window
# 정상 종료
kill 1234
# 강제 종료
kill -9 1234

sudo - 관리자 권한으로 실행

Terminal window
# 관리자 권한으로 명령 실행
sudo apt update
# 파일 편집
sudo nano /etc/hosts
# 이전 명령어를 sudo로 재실행
sudo !!
# root 쉘 시작
sudo -i

chmod - 권한 변경

Terminal window
# 실행 권한 추가
chmod +x script.sh
# 숫자로 설정 (rwxr-xr-x)
chmod 755 file.txt
# 모두에게 읽기 권한
chmod a+r file.txt

chown - 소유자 변경

Terminal window
# 소유자 변경
sudo chown user:group file.txt
# 디렉토리 전체
sudo chown -R user:group /var/www

5. 네트워크#

curl - HTTP 요청

Terminal window
# 웹 페이지 가져오기
curl https://api.example.com
# 파일 다운로드
curl -O https://example.com/file.zip

ping - 연결 테스트

Terminal window
ping google.com
# Ctrl+C로 중단
# 특정 횟수만 실행
ping -c 4 google.com

wget - 파일 다운로드

Terminal window
# 파일 다운로드
wget https://example.com/file.zip
# 이어받기
wget -c https://example.com/large-file.iso
# 백그라운드 다운로드
wget -b https://example.com/file.zip

ssh - 원격 서버 접속

Terminal window
# 기본 접속
# 특정 포트로 접속
ssh -p 2222 [email protected]
# SSH 키로 접속
ssh -i ~/.ssh/mykey.pem [email protected]

scp - 원격 파일 복사

Terminal window
# 로컬 → 원격
scp file.txt [email protected]:/path/
# 원격 → 로컬
scp [email protected]:/path/file.txt .
# 디렉토리 전체 복사
scp -r folder/ [email protected]:/path/

rsync - 빠른 동기화 복사

Terminal window
# 로컬 → 원격 동기화
rsync -avz ./local/ user@server:/path/
# 삭제 반영
rsync -avz --delete ./local/ user@server:/path/

ip - 네트워크 인터페이스

Terminal window
# 인터페이스 확인
ip addr
# 라우팅 확인
ip route

ss - 소켓/포트 확인

Terminal window
# 리스닝 포트
ss -lntp

nslookup/dig - DNS 조회

Terminal window
nslookup example.com
dig example.com

traceroute - 경로 추적

Terminal window
traceroute example.com

6. 압축#

tar - 압축/해제

Terminal window
# 압축하기
tar -czf archive.tar.gz folder/
# 압축 풀기
tar -xzf archive.tar.gz
# 내용 확인만
tar -tzf archive.tar.gz

gzip - 파일 압축

Terminal window
# 압축
gzip file.txt
# 생성: file.txt.gz
# 해제
gunzip file.txt.gz
# 압축률 지정 (1: 빠름, 9: 최대)
gzip -9 file.txt

zip/unzip - ZIP 압축

Terminal window
# 파일 압축
zip archive.zip file1.txt file2.txt
# 디렉토리 압축
zip -r archive.zip folder/
# 압축 해제
unzip archive.zip
# 특정 디렉토리에 압축 해제
unzip archive.zip -d /path/to/dir

7. 시스템 정보 및 유틸리티#

man - 매뉴얼 보기

Terminal window
# 명령어 매뉴얼
man ls
# 검색
man -k keyword
# 특정 섹션 매뉴얼
man 5 passwd

history - 명령어 히스토리

Terminal window
# 최근 명령어 보기
history
# 최근 20개만
history 20
# 특정 명령어 검색
history | grep ssh
# 히스토리 번호로 재실행
!123

which - 명령어 위치 찾기

Terminal window
# 명령어 실행 파일 위치
which python
# 모든 위치 찾기
which -a python

whereis - 명령어 관련 파일 찾기

Terminal window
# 바이너리, 소스, 매뉴얼 위치
whereis ls
# 바이너리만
whereis -b ls

uname - 시스템 정보

Terminal window
# 커널 이름
uname
# 모든 정보
uname -a
# 커널 버전
uname -r
# 아키텍처
uname -m

whoami - 현재 사용자

Terminal window
# 현재 로그인 사용자
whoami
# 상세 정보
id

alias - 명령어 별칭

Terminal window
# 별칭 설정
alias ll='ls -la'
alias gs='git status'
# 현재 별칭 보기
alias
# 별칭 제거
unalias ll

clear - 화면 정리

Terminal window
clear

date - 날짜/시간

Terminal window
date
date "+%Y-%m-%d %H:%M:%S"

cal - 달력

Terminal window
cal

env/export - 환경변수 확인/설정

Terminal window
# 전체 환경변수 확인
env
# 변수 설정
export NODE_ENV=production

tar/zip 관련 외 명령어

Terminal window
# 파일 무결성 확인
sha256sum file.txt
md5sum file.txt

패키지 관리 (배포판별)

Terminal window
# Debian/Ubuntu
sudo apt update
sudo apt install nginx
# RHEL/CentOS/Fedora
sudo dnf install nginx

8. 입출력 리다이렉션/파이프#

리다이렉션

Terminal window
# 표준 출력 덮어쓰기/추가
echo "hello" > out.txt
echo "world" >> out.txt
# 표준 에러만 저장
command 2> error.log

파이프

Terminal window
# 파이프로 연결
ps aux | grep node
# 체이닝
cat access.log | grep 500 | wc -l

글로빙

Terminal window
# 확장자 전체 선택
rm *.tmp
# 특정 패턴
ls file?.txt

자주 하는 실수

✕ 공백 없이 붙여 쓰기: rm-rf folder (틀림)
✓ 명령어와 옵션 사이 공백: rm -rf folder (맞음)

✕ 경로에 공백 처리 안 함: cd my folder (틀림)
✓ 따옴표로 감싸기: cd "my folder" (맞음)

실전 워크플로우 예제

Terminal window
# 1. 프로젝트 디렉토리로 이동
cd ~/projects
# 2. 새 폴더 만들기
mkdir my-app && cd my-app
# 3. 파일 생성 후 확인
touch README.md
ls -l
# 4. 내용 추가
echo "# My App" > README.md
# 5. 내용 확인
cat README.md
# 6. 백업
cp README.md README.backup.md

다음 단계#

이 글에 나온 명령어만 익혀도 일상 작업의 80%는 해결됩니다.
익숙해지면 셸 스크립트, 프로세스 제어, 권한과 보안 모델 등 실무 자동화와 서버 운영에 필요한 고급 기능을 배워보면 좋을 듯 싶습니다.

추천 학습 자료

  • Linux Man Pages - 모든 명령어의 상세 매뉴얼
  • tldr 명령어 설치 - 예제 중심의 간단한 도움말

공유

이 글이 도움이 되었다면 다른 사람과 공유해주세요!

Linux 필수 명령어 - 자주 쓰는 실전 커맨드 정리
https://moodturnpost.net/posts/linux/linux-essential-commands/
작성자
Moodturn
게시일
2026-01-02
Moodturn

목차