필수로 꼭 알아야 하는 기본 명령어

2025. 9. 5. 16:08개발/리눅스

반응형

리눅스에서의 파일(file), 디렉터리(directory)의 의미

- 리눅스에서의 디렉터리는 윈도우의 폴더와 같다.

- 리눅스에서는 모든 것을 파일이라고 부른다.

  • 일반 파일 : 텍스트, 동영상 파일 등
  • 디렉터리 파일 : 윈도우에서의 폴더와 같은 개념
  • (심볼릭 링크 파일, 디바이스 파일, 소켓 파일 등등)

폴더 이동하면서 파일 둘러보기 / 리눅스의 기본 폴더 구조 (pwd, cd, ls)

 현재 디렉터리 경로 조회 (pwd)

- 현재 디렉터리 경로를 조회하여 출력해준다.

 

 디렉터리 이동 (cd)

- cd 뒤에 파일명을 입력하면 그 파일 위치로 이동한다.

- $ cd /var/log/apt # /var/log/apt라는 곳으로 경로 이동

- $ cd .. # 현재 디렉터리 경로에서 상위 디렉터리(..)로 이동

 

 리눅스의 기본 폴더 구조

 현재 디렉터리 내부에 있는 파일 조회 (ls)

 

파일 종류 확인 / 숨김 파일 조회 (ls -l, ls -a)

 파일 종류 확인 (ls -l)

  • 맨 앞 한 글자가 파일 종류를 나타낸다.
    • - : 일반 파일
    • d : 디렉터리
    • (나머지 문자는 다른 파일 종류를 나타내는데 입문 단계에서는 중요하지 않기 때문에 무시하자.)

 숨김 파일 조회 (ls -a)

- 윈도우나 맥에서 숨김 파일이 존재하듯이 리눅스에서도 숨김 파일이 존재한다. 리눅스에서는 점(.)으로 시작하는 파일명을 가진 파일은 저절로 숨김 파일로 인식해 처리된다. (ex..env, .gitignore 등)

리눅스 명령어들의 공통적인 패턴 - 옵션(Option)

- -l ,-a와 같이 하이픈(-)으로 시작하는 값을 보고 리눅스 명령어에서는 옵션(Option)이라고 부른다.

 

 옵션(Option)의 특징

1. 옵션(option)은 short option과 long option으로 2가지 형태를 가진다.

  • 일반적으로 short option은 하이픈 한 개(-)로 시작하고, long option은 하이픈 두 개(--)로 시작한다.
    • ex) ls -a와 ls --all은 완전히 동일하게 작동한다.

2. 여러 옵션을 같이 쓸 수 있다.

  • 하나의 명령어에서 여러 옵션을 함께 쓸 수 있다. (ls -l -a)
  • short option과 long option을 같이 쓸 수 있다. (ls -l --all)
  • 옵션끼리는 순서가 상관없다. (ls -a -l = ls -l -a)
  • short option은 묶어서 한 번에 쓸 수 있다. (ls -a -l = ls -al = ls -la)

3. 모든 옵션은 명령어마다 다르다.

  • ls에서 -a 옵션이 작동했다고 해서, mkdir에서 -a 옵션이 동일하게 작동한다는 보장이 없다. 옵션은 명령어마다 다르게 구성되어 있다.

상대 경로, 절대 경로란? / 구분 방법

  • 절대 경로 : 루트 디렉터리를 기준으로 파일 위치를 표현
    • 경로가 반드시 /로 시작한다. (= 경로가 /로 시작하면 무조건 절대 경로다.)
  • 상대 경로 : 현재 디렉터리를 기준으로 파일 위치를 표현
    • 경로가 / 이외의 문자로 시작한다.
    • .이 현재 디렉터리 경로를 의미
    • ..이 상위 디렉터리 경로를 의미

✅ 상대 경로, 절대 경로 예시

  1. cd /log
    • 경로가 /로 시작하기 때문에 절대 경로다.
    • **루트 디렉터리(/)**에 있는 log 디렉터리로 접근
  2. cd log
    • 경로가 /로 시작하지 않기 때문에 상대 경로다.
    • 현재 디렉터리에 있는 log 디렉터리로 접근
  3. cd ./log
    • 경로가 /로 시작하지 않기 때문에 상대 경로다.
    • **현재 디렉터리(.)**에 있는 log 디렉터리로 접근
    • cd log와 완전히 동일하게 작동
  4. cd ../log
    • 경로가 /로 시작하지 않기 때문에 상대 경로다.
    • **상위 디렉터리(..)**에 있는 log 디렉터리로 접근

경로에 물결 표시(~)는 무슨 의미일까?

- /home/사용자명 으로 홈디렉토리를 의미한다.

- cd ~를 통해 바로 홈디렉토리로 이동할 수 있다.

- cd / 는 루트디렉토리롤 이동한다.

 

파일 및 디렉터리 생성 / 삭제 (touch, mkdir, rm)

✅ 일반 파일 생성 (빈 파일 생성)

명령어 : touch [파일명]

✅ 디렉터리 생성

명령어 : mkdir [디렉터리명]

✅ 파일 삭제

명령어 : rm [파일명]

✅ 디렉터리 삭제

명령어 : rm -r [파일명]

-r(=--recursive) : 이 옵션이 있어야 디렉터리를 삭제 할 수 있음. 그리고 디렉터리 내부 파일까지 한꺼번에 삭제함.

✅ 파일 & 디렉터리 삭제

위에서 파일 삭제 명령어(rm)와 디렉터리 삭제 명령어(rm -r)를 구분해서 알려줬다. 하지만 매번 파일을 삭제할 때마다 파일이냐 디렉터리냐에 따라 명령어를 다르게 쓰는 게 귀찮아진다. 그래서 일반 파일이든 디렉터리든 파일 종류에 상관없이 삭제할 수 있는 실전용 명령어를 알려주겠다.

명령어 : rm -rf [파일명]

  • -r : 이 옵션은 디렉터리를 삭제할 때 쓴다고 했다. 하지만 파일을 삭제할 때 쓴다고 하더라도 정상적으로 작동한다. 그러니 파일 종류에 상관없이 이 옵션을 추가해서 명령어를 입력해도 된다.
  • -f : 강제 삭제 (액세스 권한이 없는 파일도 강제로 삭제하는 옵션). 파일을 삭제하려고 하는데 권한 때문에 가로막히는 경우가 종종 있다. 그래서 편의상 이 옵션을 추가해서 삭제 명령어를 입력하는 경우가 많다.

파일 및 디렉터리 복사 / 이동 / 이름 변경 (cp, mv)

✅ 파일 복사

명령어 : cp [복사할 파일] [복사할 위치 or 복사할 파일명]

$ cp a.txt ./box # 현재 디렉토리에 있는 a.txt 파일을 ./box 경로로 복사
$ cp a.txt /home/ubuntu/box # 이번에는 절대 경로(/home/ubuntu/box)를 활용해 복사
$ cp a.txt b.txt # a.txt 파일을 현재 경로에 b.txt 파일로 이름을 바꿔 복사한다.
$ cp a.txt ./b.txt # 경로 표현 방식으로는 b.txt와 ./b.txt가 완전히 동일한 경로이다. (상대 경로)
$ cp a.txt ./box/b.txt # a.txt 파일을 ./box 경로에 b.txt 파일로 이름을 바꿔 복사한다.

✅ 디렉터리 복사

명령어 : cp -r [복사할 디렉터리] [복사할 위치 or 복사할 디렉터리명]

$ cp box box2 # 디렉토리를 복사할 때 -r 옵션을 넣지 않으면 에러 발생
$ cp -r box box2 # box 디렉터리를 현재 경로에 box 디렉터리로 이름을 바꿔 복사한다.

✅ 파일 및 디렉터리 이동

명령어 : mv [이동할 파일] [이동할 위치]

$ mv a.txt ./box # 현재 디렉토리에 있는 a.txt 파일을 ./box 디렉터리로 이동
$ mv box2 ./box # 현재 디렉토리에 있는 box2 디렉토리를 ./box 디렉토리로 이동

✅ 파일 및 디렉터리 이름 변경

명령어 : mv [이름 바꿀 파일] [변경할 파일명]

$ mv box new-box # box라는 파일(디렉터리)을 new-box라는 이름으로 변경

명령어를 일일이 다 칠 필요 없는 자동완성 기능 / 이전에 썼던 명령어 불러오기

✅ 명령어를 일일이 다 칠 필요 없는 자동완성 기능

리눅스에는 자동 완성 기능이 있다. 명령어의 처음 몇 글자만 입력한뒤 Tab을 누르면 그 다음은 자동으로 완성해준다.

✅ 이전에 썼던 명령어 불러오기

리눅스를 쓰다보면 이전에 실행했던 명령어를 다시 실행시키고 싶은 경우가 많다. 리눅스에서는 이전에 입력한 명령어를 다시 불러올 수 있는 기능이 있다. 터미널 창에서 위 아래 방향키( ↑, ↓)를 눌러보자.

 

[연습문제] 지금까지 배운 명령어 실전처럼 써먹어보기

반응형