디렉터리 계층 구조
🥚 리눅스에서는 파일을 효율적으로 관리하기 위해 디렉터리를 계층적으로 구성한다. ==트리구조
🥚모든 디렉터리의 출발점은 루트(root)디렉터리이며 / 으로 표시한다.
하위 디렉터리 : user, etc, home, tmp
상위 디렉터리 : .. 으로 표시한다.
🔥 루트 디렉토리를 제외하고 모든 디렉터리는 부모가 있다.
현재 위치가 user1이라면
디렉터리/파일명 | 절대 경로 | 상대 경로
/ | / | ../ ../
home | /home | ../
tmp | /tmp | ../../tmp
lib | /usr/lib | ../../usr/lib
ls | /usr/bin/ls | ../../usr/bin/ls
리눅스 파일의 종류와 특징
dev : 키보드, USB등 장치를 연결했을 때 그 정보를 파일형태로 dev에 저장
opt : 패키지들이 저장되는 폴더
usr : 환경변수에 들어있는 많은 실행파일들이 usr폴더에 있다. ex) 계산기, 그림판 등
etc: 설정파일들이 들어있는 폴더
tmp : 다양한 사용자들이 임시로 사용하는 폴더
리눅스 경로
절대 경로명
1. 항상 루트 디렉터리 부터 시작한다.
ex) cd /home
2. 반드시 /로 시작
3. 디렉터리 부터 시작해 특정 파일이나 디렉터리 위치까지 이동하면서 거치는 모든
중간 디렉터리 이름 표시
4. 특정 위치를 가리키는 절대 경로명은 항상 동일하다
상대 경로명
1. 현재 디렉터리를 기준으로 시작
2. /이외의 문자
3. 현재 디렉터리를 기준으로 서브 디렉터리로 내려가면 서브 디렉터리 이름 추가
cd ./ ../로 입력하면 된다.
(현재 -> 상위)
4. 현재 디렉터리를 기준으로 상위로 가려면 ..을 추가
명령어
cd : 이동 ex) cd / ==root로 이동
clear : 청소
ls : 디렉토리에 있는 내용들을 확인
---------------------------------------------------------------------------------
ls 옵션 :
-i : 첫 번째 항부터 inode 번호 출력
-a :(all) ==숨김파일까지 확인하고 싶다
-d : 상세 내용까지 알고 싶다
-l : 파일의 상세 정보 출력
-A: (마침표)와 ..(마침표) 두개를 제외한 모든 파일 목록 출력
-F: 파일의 종류 표시 (* : 실행 파일 / :디렉터리 , @ : 심벌릭 링크)
-L : 심벌릭 링크 파일의 경우 원본 파일 정보 출력
-R : 하위 디렉터리까지 출력
--------------------------------------------------------------------------------
여기서 .은 현재 폴더
..은 상위폴더를 의미한다.
만약 상위폴더로 이동하고 싶다면
cd ./ ../로 입력하면 된다.
cd /home(절대 경로 )
ls -l 의 결과
-l : 파일의 상세 정보 출력
읽는 법
문자 | 파일 종류 |
- | 일반 파일 |
d | 디렉터리 |
l | 심벌릭 링크 |
b | 블록 장치 파일 |
c | 문자 장치 파일 |
p | 파이프 파일 |
s | 소켓 파일 |
필드 번호 | 필드 값 | 의미 |
1 | d | 파일 종류 |
2 | rwxr-xr-x | 접근 권한 |
3 | 2 | 하드링크 개수 |
4 | user1 | 파일 소유자 |
5 | user2 | 파일이 속한 그룹 |
6 | 4096 | 파일크기(바이트) |
7 | 10월 10 10:10:45 | 마지막 수정시간 |
8 | 공개 | 파일이름 |
※하드링크 : 이 폴더를 참조하는 심볼릭 링크의 개수
🔥etc(설정파일), home (사용자 폴더) root , var (로그 )
pwd : 현재 폴더를 알려주는 거
현재 root폴더라는 것을 알려준다.
디렉터리 사용명령
mkdir | 기능 | 형식 | 옵션 | 예시 |
디렉터리 생성 | mkdir [옵션] 디렉터리명 | -p : 하위 디렉터리를 계층적으로 생성할 때 중간의 디렉터리가 없으면 생성하면서 전체 디렉터리를 생성 | mkdir temp mkdir -p temp |
cat | 기능 | 형식 | 옵션 | 예시 |
파일 내용 출력 | cat[옵션] 파일명 | -n : 행번호 붙여서 출력 | cat file01 cat -n file01 |
more | 기능 | 형식 | 옵션 | 예시 |
파일 내용을 화면단위로 출력 | more[옵션] 파일명 | +행 번호 : 출력 할 때 행 번호 지정 | more file1 |
less | 기능 | 형식 | 예 |
파일 내용을 화면단위로 출력 | less 파일명 | less file |
less 명령에서 사용하는 키와 동작
키 | 동작 |
j | 한줄 씩 다음 행 스크롤 |
k | 한 줄 씩 이전행 스크롤 |
스페이스 바 ctrl f | 다음 화면 이동 |
ctrl b | 이전 화면 이동 |
파일 뒷 부분 출력하기
tail (가장 최신의 로그가 남은 내용을 확인 가능) |
기능 | 형식 | 옵션 |
파일의 뒷 부분 몇행 출력 | tail [옵션] 파일명 | +행번호 : 지정한 행부터 끝까지 출력 -숫자 : 화면에 출력할 행의 수를 지정(기본 값 10) -f : 파일 출력이 종료되지 않고 주기적으로 출력 |
※ 기본값인 10개줄만 출력
-> tail -5 /etc/passwd면 뒤에서부터 5줄로 출력
※ -f
사진 처럼 echo로 추가할 때마다 계속 출력 된다.
cp(copy) | 기능 | 형식 | 옵션 | 예시 |
파일이나 디렉터리 복사 |
cp [옵션 ] 파일명1/디렉터리 명1 파일명2 /디렉터리 명2 |
-i: 대화식 복사 방법으로 이미 파일명 2가 존재할 경우 덮어 쓸 것이지 물어봄 -r: 디렉터리를 복사할 때 지정한다. |
cp file1 file2 cp f1 f2 f3 dir1 cp -r dir1 dir2 |
※ ex_) cp ./a ./b
현재 폴더에 있는 a를 b라는 이름으로 복사한다.
mv | 기능 | 형식 | 옵션 | 예시 |
파일 이동 | mv [옵션] 파일명1 /디렉터리명1 파일명 2/디렉터리명2 |
-i : 파일명2/디렉터리명2가 존재하면 덮어쓸 것이지 물어봄 | mv file1 file2 |
rm | 기능 | 형식 | 옵션 | 예시 |
파일 삭제 | rm [옵션 ] 파일명 / 디렉터리 명 | -i : 대화식으로 지정한 파일을 정말 삭제할 것인지 확인 -r : 디렉터리를 삭제할 때 지정 |
rm file rm -r dir |
ex) rm -rf는 물어보지 않고 걍 삭제
touch | 기능 | 형식 | 옵션 | 예시 |
빈 파일 생성 | touch [-acm] [-r ref_file] | -t time] 파일 | -a : 접근 시간만 변경 -m : 수정 시간만 변경 -t [[CC] YY]MMDDhhmm[.ss] :시간을 직접 입력 |
touch test |
grep (가장 많이 쓰는 것 중 하나 ) |
기능 | 형식 | 옵션 | 예시 |
지정한 패턴을 포함하는 행을 찾는다. | grep [옵션 ]패턴 [파일명] |
-i : 대,소문자 모두 검색 -l : 해당 패턴을 포함하는 파일 이름 출력 -n : 행 번호를 출력 |
grep root /etc/passwd grep -n /unix~/".txt grep -l hello ".c |
-> ntp가 포함된 것만을 검색
find | 기능 | 형식 | 옵션 | 동작 |
조건에 맞는 파일을 지정한 위치에서 찾음 | find 경로 검색조건 [동작] |
-name filename:파일이름으로 검색 -type 파일 종류 : 파일의 종류로 검색한다. -user loginID: 지정한 사용자가 소유한 모든 파일을 검색 -perm 접근 권한: 지정한 사용 권한과 일치하는 파일 검색 |
-exec 명령 {} \ ; : 검색된 파일에 명령 실행 -ok 명령 {}\ ; : 사용자의 확인을 받아서 명령을 실행한다. -print : 검색된 파일의 절대 경로명을 화면에 출력한다 -ls :검색 결과를 긴 목록 형식으로 출력한다. |
ex ) $ find ~ ~ name hello.c
$ find /tmp -user user10 -exec em {} |;
이름이 find_01_file인 것을 찾겠다.
whereis | 기능 | 형식 | 옵션 | 예시 |
지정된 경로에서 명령의 바이너리 파일이나 매뉴얼 파일의 위치를 찾는다. | whereis [옵션] 명령 | -b : 바이너리 파일만 검색한다. -m : 매뉴얼 파일만 검색한다. -s: 소스 파일만 검색한다. |
whereis ls |
mv라는 이름을 가진 애를 전부 찾아준다.
★심벌릭 링크와 하드 링크 차이
심벌릭 링크는 바로가기이기 때문에 원본파일의 경로와 똑같아서 원본이 삭제되면 같이 삭제된다.
하드링크는 새로운 파일을 하나 더 생성한 거라 파일번호가 달라 원본이 삭제되도 유지된다.
댓글