Type something to search...
백엔드 개발자를 위한 필수 리눅스(Linux) 터미널 명령어 총정리

백엔드 개발자를 위한 필수 리눅스(Linux) 터미널 명령어 총정리

마우스를 버리고 키보드와 친해지기

윈도우(Windows)나 맥(macOS)의 화려한 GUI(그래픽 유저 인터페이스) 환경에 익숙한 상태에서, 처음 AWS EC2 같은 원격 서버에 접속하면 까만 화면에 하얀 글씨만 깜빡이는 터미널 환경(CLI)에 당황하기 십상입니다.

전 세계 웹 서버의 압도적인 다수는 리눅스(Linux) 운영체제로 구동됩니다. 서버를 관리하고, 로그를 확인하고, 애플리케이션을 배포하기 위해서는 리눅스 터미널 명령어와 친숙해지는 것이 필수불가결합니다. 처음에는 모든 명령어를 외우려 하기보다는, 자주 쓰이는 핵심 명령어들의 역할을 이해하고 필요할 때 찾아 쓰는 방식으로 접근하는 것이 좋습니다.

1. 파일 및 디렉토리 탐색기능

윈도우의 '파일 탐색기' 역할을 하는 가장 기초적인 명령어들입니다.

  • pwd (Print Working Directory): 내가 지금 위치해 있는 폴더(디렉토리)의 전체 절대 경로를 보여줍니다. 길을 잃었을 때 나침반 역할을 합니다.
  • ls (List): 현재 폴더 안에 있는 파일과 폴더 목록을 출력합니다.
    • ls -l: 파일의 권한, 소유자, 용량, 수정 시간 등 상세한 목록을 세로로 보여줍니다. (가장 많이 씀)
    • ls -a: 이름이 .으로 시작하는 숨김 파일까지 모두 보여줍니다.
    • ls -al: 위 두 옵션을 합쳐 상세히 숨김 파일까지 봅니다.
  • cd [경로] (Change Directory): 다른 폴더로 이동합니다.
    • cd /: 최상위 디렉토리(Root)로 이동
    • cd ~: 현재 접속한 사용자의 홈 디렉토리로 이동 (예: /home/ubuntu)
    • cd ..: 한 단계 위(부모) 폴더로 이동

2. 파일 조작 (생성, 복사, 이동, 삭제)

  • mkdir [폴더명] (Make Directory): 새로운 폴더를 생성합니다.
  • cp [원본] [목적지] (Copy): 파일이나 폴더를 복사합니다.
    • 폴더 전체를 안에 있는 내용물까지 통째로 복사하려면 -r (recursive) 옵션을 붙입니다. (cp -r myfolder backup_folder)
  • mv [원본] [목적지] (Move): 파일이나 폴더를 다른 곳으로 '이동'시킵니다. 원본 파일의 이름을 '변경'할 때도 이 명령어를 사용합니다. (mv old_name.txt new_name.txt)
  • rm [파일/폴더명] (Remove): 파일을 삭제합니다. (주의: 윈도우 휴지통처럼 복구할 수 없으니 매우 신중해야 합니다!)
    • 폴더를 삭제하려면 역시 -r 옵션이 필요합니다.
    • 묻지도 따지지도 않고 강제로 지우려면 -f (force) 옵션을 붙입니다. (예: rm -rf node_modules)

3. 파일 내용 확인 및 검색

코드를 수정하거나 서버의 에러 로그를 확인할 때 사용합니다.

  • cat [파일명]: 파일의 전체 내용을 터미널 화면에 한 번에 주르륵 출력합니다. 파일이 길면 스크롤이 올라가 버립니다.
  • less [파일명]: 파일의 내용을 스크롤 가능한 형태로 띄워줍니다. (방향키로 이동, q를 눌러 종료)
  • tail [파일명]: 파일의 마지막(꼬리) 부분만 보여줍니다. 기본적으로 마지막 10줄을 보여줍니다.
    • tail -f error.log: 실무에서 가장 많이 쓰는 옵션! 실시간으로 파일에 새로 추가되는 내용(로그)을 계속 화면에 업데이트하며 보여줍니다.
  • grep [검색어] [파일명]: 파일 안에서 특정 단어나 패턴이 포함된 줄만 찾아냅니다.
    • 예: grep "Error" server.log (서버 로그에서 Error라는 단어가 들어간 줄만 찾기)
    • 다른 명령어의 출력 결과를 넘겨받아 검색할 때 파이프(|)와 함께 자주 씁니다. (예: ps -ef | grep node)

4. 시스템 관리 및 권한

  • sudo [명령어] (SuperUser DO): 최고 관리자(root) 권한으로 명령어를 실행합니다. 프로그램 설치나 시스템 설정 변경 시 명령어 앞에 붙여야 'Permission Denied(권한 거부)' 에러를 피할 수 있습니다.
  • ps (Process Status): 현재 실행 중인 프로세스 목록을 확인합니다. 보통 ps -ef 옵션으로 모든 프로세스 정보를 띄웁니다.
  • kill [PID]: 문제가 생겨 멈춘 프로세스를 강제로 종료시킬 때 사용합니다. ps 명령어로 확인한 고유 식별 번호(PID)를 입력합니다. 확실히 죽이고 싶을 땐 kill -9 [PID]를 씁니다.
  • chmod [권한값] [파일명] (Change Mode): 파일이나 폴더의 읽기(r), 쓰기(w), 실행(x) 권한을 변경합니다. (예: 실행 권한 주기 chmod +x script.sh)

팁: 탭(Tab) 키와 방향키 위(↑)

터미널에서 모든 파일명을 끝까지 타이핑하는 것은 비효율적입니다. 파일명의 앞글자만 치고 Tab 키를 누르면 자동으로 나머지 이름이 완성됩니다. 또한 **방향키 위(↑)**를 누르면 이전에 내가 입력했던 명령어 기록(History)을 불러올 수 있습니다. 이 두 개의 키보드 조작만 습관화해도 작업 속도가 비약적으로 빨라질 것입니다.

Related Post

AWS EC2 입문: 나만의 첫 클라우드 서버 구축하기

AWS EC2 입문: 나만의 첫 클라우드 서버 구축하기

나만의 서버가 필요해! 프로그래밍을 공부하고 첫 웹 애플리케이션을 만들었을 때의 기쁨은 이루 말할 수 없습니다. 하지만 내 컴퓨터의 로컬 호스트(localhost:3000)에서만 작동한다면 반쪽짜리 완성에 불과하겠죠. 전 세계 누구나 접속할 수 있도록 하려면 항상 켜져 있고 인터넷에 연결된 컴퓨터, 즉 **서버(Server)**가 필요합니다. 과

GitHub Actions로 시작하는 완벽한 CI/CD 파이프라인 자동화

GitHub Actions로 시작하는 완벽한 CI/CD 파이프라인 자동화

수동 배포의 악몽에서 벗어나기 "자, 이제 코딩 끝! 서버에 접속해서 git pull 받고, 의존성 다시 설치하고, 빌드하고, 기존 프로세스 죽이고, 새 프로세스 띄우자." 프로젝트 초기에는 이러한 수동 배포 과정이 크게 번거롭지 않을 수 있습니다. 하지만 서비스가 커지고 팀원이 늘어나면서 하루에도 수십 번씩 코드가 통합되고 배포되어야 한다면

플랫폼 엔지니어링(Platform Engineering): DevOps의 다음 진화 단계

플랫폼 엔지니어링(Platform Engineering): DevOps의 다음 진화 단계

서론: "You build it, you run it"의 역설 아마존의 CTO 베르너 보겔스의 명언 "You build it, you run it"으로 대변되는 DevOps 문화는 개발팀이 서비스의 설계부터 배포, 운영까지 책임짐으로써 출시 속도(Agility)를 높이는 데 크게 기여했습니다. 하지만 클라우드 네이티브 생태계가 극도로 복잡해진 20