본문 바로가기
CS/Operating System

🐧리눅스/쉘 명령어

by 박수무당벌레 2026. 7. 16.

1. 디렉터리 및 파일 탐색

  • pwd (Print Working Directory): 현재 내가 위치한 디렉터리의 절대 경로를 보여준다. (CUI 프로그램)
  • ls (List): 현재 디렉터리 안에 있는 파일과 폴더의 목록(리스트 형태)을 상세히 보여준다.
    • ls -l: 파일의 상세 정보 (권한, 소유자, 크기, 수정 날짜 등) 까지 함께 보여준다.
    • ls -a: 숨겨진 파일(파일명이 .으로 시작하는 파일)까지 모두 보여준다.
    • ls -al: 위 두 가지 옵션(-a와 -l)을 한 번에 합친 명령어.
      • -a (All): 숨겨진 파일까지 모두 표시
      • -l (Long): 파일의 상세 정보를 세로로 길게 표시
  • cd (Change Directory): 디렉터리를 이동할 때 사용한다.
    • cd Documents: Documents 폴더로 이동한다.
    • cd ..: 한 단계 상위 디렉터리(이전 폴더)로 이동한다.
    • cd ~: 사용자의 홈 디렉터리로 바로 이동한다.

💡 터미널 사용 Tip!

  • Tab 키 활용하기 (자동 완성): 파일 이름이나 폴더 이름을 입력할 때 앞 글자만 몇 개 치고 Tab 키를 누르면 자동으로 나머지 이름이 완성됩니다. 오타를 줄이는 데 아주 유용하다.
  • 방향키 (위/아래): 이전에 입력했던 명령어를 다시 불러올 수 있다.

2. 파일 및 디렉터리 조작

  • mkdir (Make Directory): 새로운 디렉터리(폴더)를 생성한다. (예: mkdir test_folder)
  • touch (Touch): 내용이 비어 있는 새 파일을 생성하거나, 이미 존재하는 파일의 수정 시간을 현재 시간으로 업데이트한다. (예: touch hello.txt)
    • touch 자체는 그냥 빈 파일 (텍스트 아니여도됨)
    • 새로운 텍스트 파일을 현재 디렉토리에 만든다. (만약 이미 존재하는 파일이라면 파일의 최종 수정 시간만 현재 시간으로 업데이트한다)
  • cp (Copy): 파일이나 디렉터리를 복사한다.
    • cp file1.txt file2.txt: file1을 복사하여 file2를 만든다.
    • cp -r folder1 folder2: 폴더를 복사할 때는 대문자 -R 또는 소문자 -r 옵션을 주어 하위 폴더까지 통째로 복사해야 한다.
  • mv (Move): 파일이나 디렉터리를 이동시키거나, 이름을 변경할 때 사용한다.
    • mv file1.txt Documents/: file1.txt 파일을 Documents 폴더로 이동한다.
    • mv old.txt new.txt: old.txt 파일의 이름을 new.txt로 변경한다.
  • rm (Remove): 파일이나 디렉터리를 삭제합니다. (⚠️ 복구하기 어려우므로 주의)
    • rm file.txt: 파일을 삭제한다.
    • rm -r folder: 디렉터리를 삭제할 때는 -r 옵션이 필요하다.

3. 파일 내용 보기 및 편집

  • cat (Concatenate): 파일의 전체 내용을 터미널 화면에 그대로 출력한다. 파일 내용이 짧을 때 유용. (예: cat hello.txt)
  • less (Less): 파일 내용이 너무 길 때, 화면 단위로 나누어서 보여주는 명령어. 방향키로 위아래 이동이 가능하며, q를 누르면 빠져나온다.
  • vi (오리지널 Visual editor): 1976년에 만들어진, 유닉스 시절부터 기본 탑재되어 온 전통 텍스트 편집기(오리지널 Visual editor). 명령어를 실행하면 터미널 창 전체가 편집 화면으로 전환되며, 파일 내용을 수정하거나 새 글을 작성할 수 있다.
    • i 키: 입력(Insert) 모드 전환
    • ESC 키: 입력 모드 종료 (명령 모드로 복귀)
    • :wq 입력 후 엔터: 저장(write)하고 종료(quit)
  • nano / vim(Vi IMproved): 터미널 안에서 실행되는 텍스트 편집기. 간단한 메모나 설정 파일을 수정할 때 주로 사용. (초보자에게는 nano가 비교적 직관적이라 다루기 쉬움)

4. 관리자 권한 및 기타 유용한 명령어

  • sudo (SuperUser Do): 일반 사용자 권한으로는 실행할 수 없는 시스템 설정 변경이나 프로그램 설치 등을 할 때, 관리자(root) 권한으로 명령어를 실행하게 해준다. (예: sudo apt update)
  • clear: 터미널 화면에 복잡하게 남아있는 이전 기록들을 깨끗하게 지우고 커서를 맨 위로 올린다. (단축키 Ctrl + L도 같은 역할)
  • history: 지금까지 내가 입력했던 명령어들의 기록을 쭉 보여준다.
  • echo: $PATH 등 환경 변수 경로 확인
  • exit: SSH 원격 연결 종료

5. 실습 내용 예시

1) vi 로 문서 편집

  • touch [파일명.txt]: 빈 텍스트 파일 생성 명령어.
  • ls -al: 숨김 파일을 포함한 현재 폴더의 모든 파일 목록 상세 출력
  • vi ./[파일명.txt]: vi 편집기로 파일 열기 (현재 디렉토리)
    • i 키: 입력(Insert) 모드 전환
    • ESC 키: 입력 모드 종료 (명령 모드로 복귀)
    • :wq 입력 후 엔터: 저장(write)하고 종료(quit)
  • cat ./[파일명.txt]: 현재 디렉토리에서 파일 내용을 터미널 창에 출력
$ touch helloworld.txt
$ ls -al
$ vi ./helloworld.txt
... 
$ cat ./helloworld.txt

2) ifconfig 실행

  • sudo 명령어: 우분투와 관련된 자세한 내용은 여기서.
  • apt: 패키지 매니저, 이것을 통해 프로그램을 설치, 업데이트, 삭제할 수 있도록 도와준다.
    • apt update: 실제 프로그램을 다운받는 것이 아니라, 최신 소프트웨어의 버전 목록을 동기화하는 작업.
    • apt install <프로그램명>: 우분투 저장소로부터 프로그램을 다운로드하고 설치.
  • net-tools: 네트워크 관리 도구 모음인 net-tools 패키지
  • ifconfig: 현재 서버(인스턴스)에 설정된 네트워크 인터페이스 정보를 확인하는 명령어. (net-tools 설치 필수)
    • 현재 서버가 사용 중인 IP 주소(IPv4, IPv6), 서브넷 마스크, MAC 주소 및 네트워크 카드의 상태와 데이터 송수신 패킷 상태 등을 한눈에 파악할 수 있다.
    • 💡 최신 우분투 등 일부 리눅스 배포판에서 기본으로 제공되지 않을 수 있으므로, 먼저 관련 패키지를 설치해야 한다.
$ sudo apt install net-tools
$ ifconfig