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 옵션이 동일하게 작동한다는 보장이 없다. 옵션은 명령어마다 다르게 구성되어 있다.
상대 경로, 절대 경로란? / 구분 방법
- 절대 경로 : 루트 디렉터리를 기준으로 파일 위치를 표현
- 경로가 반드시 /로 시작한다. (= 경로가 /로 시작하면 무조건 절대 경로다.)
- 상대 경로 : 현재 디렉터리를 기준으로 파일 위치를 표현
- 경로가 / 이외의 문자로 시작한다.
- .이 현재 디렉터리 경로를 의미
- ..이 상위 디렉터리 경로를 의미
✅ 상대 경로, 절대 경로 예시
- cd /log
- 경로가 /로 시작하기 때문에 절대 경로다.
- **루트 디렉터리(/)**에 있는 log 디렉터리로 접근
- cd log
- 경로가 /로 시작하지 않기 때문에 상대 경로다.
- 현재 디렉터리에 있는 log 디렉터리로 접근
- cd ./log
- 경로가 /로 시작하지 않기 때문에 상대 경로다.
- **현재 디렉터리(.)**에 있는 log 디렉터리로 접근
- cd log와 완전히 동일하게 작동
- 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을 누르면 그 다음은 자동으로 완성해준다.
✅ 이전에 썼던 명령어 불러오기
리눅스를 쓰다보면 이전에 실행했던 명령어를 다시 실행시키고 싶은 경우가 많다. 리눅스에서는 이전에 입력한 명령어를 다시 불러올 수 있는 기능이 있다. 터미널 창에서 위 아래 방향키( ↑, ↓)를 눌러보자.
[연습문제] 지금까지 배운 명령어 실전처럼 써먹어보기
'개발 > 리눅스' 카테고리의 다른 글
리눅스에서 빈번하게 마주치는 권한 문제(Permission Denied) (0) | 2025.09.08 |
---|---|
파일을 작성/조회할 때 자주 사용하는 명령어 (0) | 2025.09.06 |
리눅스 기본 개념 / 리눅스 실습 환경 구축 (0) | 2025.09.02 |