[리눅스] 실전 명령어 정리

이지연·2025년 11월 18일
post-thumbnail

개요

이번 포스팅에서는 터미널에서 가장 자주 쓰는 리눅스 기본 명령어들을 한 번에 훑어볼 수 있는 실전 치트시트 형태로 정리해보겠다.
실제로 실행하기 위한 스크립트라기보다는, 명령어의 의미와 사용 예시를 빠르게 떠올릴 수 있는 메모용 문서라고 보면 된다.

여기서 다루는 것은 엄밀히 말하면 “리눅스 자체의 기능” 이라기보다,
Bash 같은 쉘(shell) 프로그램이 제공하는 명령어와 문법에 가깝다.
사용자는 쉘에 명령을 입력하고, 쉘이 이것을 해석해 리눅스 커널과 각종 프로그램에 전달하는 구조이기 때문에,
터미널에서 입력하는 명령들은 곧 쉘 프로그래밍 언어의 한 형태라고 이해하는걸로!


1. 위치 / 경로 / 목록

리눅스에서 지금 어디에 있는지, 무엇이 있는지를 확인하는 데 쓰는 기본 명령어들이다.

# 현재 작업 디렉터리의 전체 경로 출력
pwd

# 현재 디렉터리의 파일/폴더 목록 조회
ls

# 상세 정보(권한, 소유자, 크기, 수정 시간 등)까지 함께 조회
ls -l

# 숨김 파일(.으로 시작)까지 포함해 상세 목록 조회
ls -al

# 숨김 + 상세 + 시간 기준 정렬 (오래된 순서대로)
ls -alrt
  • pwd : 현재 “내가 있는 위치(경로)”가 헷갈릴 때 항상 먼저 확인하는 명령어.
  • ls : 디렉터리 안에 뭐가 있는지 보는 가장 기본적인 명령어.
  • -a : 숨김 파일까지 포함, -l : 상세 정보, -r : 역순, -t : 시간 기준 정렬.!
ls -al로 조회시 앞에 d가 붙으면 디렉터리, 안 붙으면 파일이다.
ls -al로 조회했을 때 앞에 d가 붙으면 디렉터리, 안 붙으면 파일이다.

2. 디렉터리(폴더) 작업

폴더를 만들고, 이동하고, 상위/이전/홈 디렉터리로 오가는 기본 패턴이다.

# 새 디렉터리 생성
mkdir sample_dir

# 특정 디렉터리로 이동
cd sample_dir

# 상위(부모) 디렉터리로 이동
cd ..

# 루트 디렉터리(/)로 이동
cd /

# 직전에 있던 디렉터리로 이동 (토글)
cd -

# 인자 없이 사용하면 현재 사용자 홈 디렉터리로 이동
cd
  • cd를 다루는 감각이 생기면, 터미널 탐색 속도가 확 달라진다.
  • 길게 얽힌 경로에서 작업할 때는 pwd와 세트로 자주 사용하게 된다.
mkdir 예시 이미지

3. 파일 내용 조회 / 편집

로그나 설정 파일을 확인할 때 가장 많이 쓰는 명령어들이다.

# 파일 내용을 그대로 출력 (작은 파일 빠르게 확인)
cat sample.txt

# 위에서 아래로 페이지 단위 출력 (space bar로 다음 페이지)
more sample.txt

# 터미널 기반 텍스트 편집기 (nano 또는 vi 등)
nano sample.txt

# 파일 상위 10줄 출력
head sample.txt

# 파일 상위 5줄 출력
head -5 sample.txt

# 파일 하위 10줄 출력
tail sample.txt

# 파일 하위 5줄 출력
tail -5 sample.txt

# ⭐ 파일 끝을 계속 따라가며 실시간 로그 모니터링
tail -f sample.log
  • cat : 작은 파일 급히 확인할 때.
  • head / tail : 긴 파일의 앞/뒤만 보고 싶을 때.
  • tail -f : 서버 로그를 실시간으로 보는 데 사실상 필수.
more 예시 이미지

로그 파일 개념 간단 정리

  • 로그 파일(log) 이란
    • 시스템, 애플리케이션, 서버 등이 동작하면서 발생한 이벤트/에러/상태 정보를 기록해 둔 텍스트 파일.
    • 예: 웹 서버 접근 로그, 에러 로그, 로그인 실패 기록 등.
  • 개발자가 로그를 보는 이유
    • “로그인이 안 돼요”, “페이지가 안 떠요” 같은 이슈가 있을 때,
      그 시점에 어떤 에러가 발생했는지 추적하기 위해서.
  • tail -f 활용 예
    • 서버에 접속 → tail -f app.log 실행 → 클라이언트에서 다시 요청 →
      그 시점에 찍히는 로그를 실시간으로 확인.

4. 명령어 히스토리 / 화면 정리 / 중단

터미널 작업 효율을 크게 올려주는 필수 유틸리티들이다.

# 지금까지 실행한 명령어 목록 조회
history

# 화면에 출력된 내용 지우기 (스크롤 버퍼는 남을 수 있음)
clear
  • history : 예전에 썼던 긴 명령어를 다시 보고 싶을 때.
    • !번호 형태로 과거 명령을 재실행할 수도 있다.
  • 방향키 ↑ / ↓ : 이전/다음 명령 불러오기 (사실상 가장 많이 쓰는 기능).
  • Ctrl + C : 현재 실행 중인 명령을 강제로 중단.
    • 무한 대기 상태나 실수로 잘못 건 작업을 끊을 때 필수.

5. 파일 / 디렉터리 삭제 (주의!)

삭제는 항상 신중해야 한다. 특히 rm -rf는 습관적으로 쓰면 언젠가 큰 사고를 친다.

# 파일 삭제
rm sample.txt

# 디렉터리와 그 안의 모든 내용 삭제
rm -r sample_dir

# 질문 없이 강제로 전부 삭제 (매우 위험!)
rm -rf sample_dir
  • -r : 재귀적으로 하위 디렉터리까지 삭제.
  • -f : 묻지도 따지지도 않고 삭제.
  • 치명적인 금지 예시:
    • rm -rf . : 현재 디렉터리 전체 삭제.
    • rm -rf / : 말 그대로 시스템 전체 삭제 수준.
  • 항상 rm 쓰기 전에 한 번 더 pwd와 대상 경로를 확인하는 습관이 중요하다.
test는 디렉터리라서 rm만으로 삭제가 안됨, -r 추가 작성하여 삭제 진행 → 재귀적으로 처리하는 방식(recursive)

6. 문자열 출력 / 파일에 쓰기 (echo, 리다이렉션)

로그나 간단한 메모 파일을 만들거나, 설정 파일을 동적으로 생성할 때 많이 쓰는 패턴이다.

# 터미널에 문자열 출력
echo "hello world"

# 파일에 덮어쓰기 (파일 없으면 생성, 있으면 기존 내용 삭제 후 새 내용으로 교체)
echo "first line" > memo.txt

# ⭐ 파일에 내용 추가 (기존 내용 뒤에 이어붙이기)
echo "another line" >> memo.txt
  • > : 덮어쓰기
  • >> : 추가(append)
  • 간단한 설정 파일, 테스트용 데이터, 로그 등 만들 때 특히 편리하다.

7. 파일/디렉터리 복사 / 이동 / 이름 변경

배포 작업, 백업, 로그 보관 시 필수로 쓰게 되는 명령어들이다.

# 파일 복사
cp source.txt dest.txt

# 디렉터리 복사 (하위 내용 포함)
cp -r src src_backup

# 파일/폴더 이동 (경로 변경)
mv a.txt backup/a.txt

# 이름 변경 (rename)
mv old.txt new.txt
  • cp -r : 디렉터리 전체를 복사할 때.
  • mv : 이동과 이름 변경을 모두 담당하는 명령어.

8. 문자열 검색 (grep)

로그나 소스 코드에서 특정 키워드를 찾을 때 가장 많이 사용하는 도구다.

# 파일 안에서 특정 문자열 검색
grep "ERROR" app.log

# 현재 디렉터리 이하 모든 파일에서 특정 문자열 재귀 검색
grep -r "ERROR" .

# 라인 번호까지 함께 출력
grep -n "TODO" main.py

# 대소문자 구분 없이 검색
grep -i "error" app.log
  • -r : 디렉터리 전체를 재귀적으로 검색.
  • -n : 라인 번호 같이 보여주기.
  • -i : 대소문자 구분 없이 검색.
  • 로그 분석, 코드 검색, 설정 파일 확인 등 거의 모든 텍스트 탐색에 활용된다.

9. 파일/디렉터리 찾기 (find)

파일 이름, 타입, 경로 조건 등으로 디렉터리 트리를 뒤지는 강력한 도구다.

# 현재 디렉터리에서 이름이 app.log인 파일 찾기
find . -name "app.log"

# 현재 디렉터리 이하의 디렉터리만 찾기
find . -type d

# . 아래의 .log 파일 모두 삭제 (exec 활용 예)
find . -name "*.log" -exec rm {} \;
  • 기본형: find [경로] [옵션] [행동]
  • -name : 이름(패턴)으로 검색.
  • -type f : 파일만, -type d : 디렉터리만.
  • -exec : 찾은 결과에 대해 추가 명령 실행.
    • {} : 찾은 개별 항목이 들어가는 자리.
    • \; : exec 명령 끝 표시.

find + rm 조합은 매우 강력한 만큼 실수도 크게 만들 수 있으니,
실행 전 항상 한 번 find만 먼저 돌려서 대상이 맞는지 확인하는 것이 좋다.


10. ⭐ grep + xargs + find 조합 (응용)

여러 도구를 파이프로 묶어 쓰면, 꽤 복잡한 작업도 한 줄로 해결할 수 있다.

# 응용 문법(1)
find [경로] [옵션] [행동] | xargs grep [옵션] [문자열] [파일명]

# 응용 문법(2)
find [경로] [옵션] [행동] -exec grep [옵션] [문자열] [파일명] {} \;

# 개념 예시
find . -type f -name "first*" | xargs grep -rni "hello"

find . -type f -name "first*" -exec grep -rni "hello" {} \;
  • |(파이프) : 왼쪽 명령의 결과를 오른쪽 명령의 입력으로 넘긴다.
  • xargs : 입력된 내용을 인자로 변환해 다른 명령에 넘겨주는 도구.
  • 예시 컨셉:
    1. grep -rl "ERROR" . → "ERROR"가 포함된 파일 목록을 재귀적으로 찾는다.
    2. 그 결과를 xargs rm에 넘겨서 해당 파일들을 한 번에 삭제한다.

실제 업무에서는 삭제 대신 ls, cat, tar 등과 결합해
“에러가 포함된 파일만 따로 모으기”, “특정 패턴이 있는 파일만 백업하기” 같은 식으로 응용할 수 있다.

grep + xargs + find 조합 예시 이미지

마치며

PowerShell에서 Bash와 비슷한 명령어(alias)들을 사용하곤 했는데, 이번에 리눅스 가상 PC 환경에서 실제 Bash 명령어들을 본격적으로 써보니 훨씬 더 감이 잡혔다😁👍
이런 기본 명령어들에 익숙해지면 리눅스 서버나 WSL, 그리고 macOS 터미널에서도 대부분의 기초 작업을 막힘없이 처리할 수 있을 것 같아서 꾸준히 익혀보고 싶다!

profile
Eazy하게

2개의 댓글

comment-user-thumbnail
2025년 11월 18일

따봉

답글 달기
comment-user-thumbnail
2025년 12월 11일

리눅스!
아름다울미~

답글 달기