리눅스

LINUX (리눅스에서의 파일/ 디렉터리의 계층 구조와 주요 기능/ 디렉터리 관련 명령/ 파일 관련 명령/파일링크)

아리빠 2023. 4. 25. 21:09

●리눅스에서의 파일

: 사용 목적에 따라 일반 파일, 디렉터리, 심볼릭 링크, 장치 파일로 구분

-파일: 관련있는 정보들의 집합

 

-일반파일

: 데이터 저장하는데 주로 사용

-디렉터리: 해당 디렉터리에 저장된 파일이나 하위 디렉터리에 대한 정보 저장

-심볼릭 링크: 원본 파일을 대신하도록 원본 파일을 다른 파일명으로 지정한 것( ex) 바로가기)

-장치파일: 리눅스 시스템에 부착된 장치들을 관리하기 위한 특수 파일

 

●디렉터리의 계층 구조

-트리구조: 파일을 효율적으로 관리하기 위한 계층적 구조

 

●디렉터리 주요 기능

디렉터리 기능
dev 장치의 파일이 담긴 디렉터리
home 사용자 홈 디렉터리가 생성되는 디렉터리
media dvd/cd, usb 같은 외부 장치를 연결(마운트)
opt 추가 패키지 설치되는 디렉터리
root root계정의 홈 디렉터리[ 루트(/) 디렉터리와 다름]
sys 리눅스 커널과 관련된 파일이 있는 디렉터리
usr 기본 실행 파일과 라이브러리 파일, 헤더 파일 등 많은 파일
boot 부팅에 필요한 커널파일 
etc 리눅스 성정을 위한 각종 파일 존재
lost+found 파일 시스템에 문제가 생겨 복구할 경우, 문제가 되는 파일이 저장되는 디렉터리 
mnt 파일시스템을 임시로 마운트하는 디렉터리
proc 프로세스 정보 등 커널 정보가 저장되는 디렉터리
run 실행중인 서비스와 관련된 파일이 저장되는 디렉터리
srv FTP,WEB 등 시스템에서 제공하는 서비스 데이터가 저장
imp 시스템 사용중에 발생하는 임시 데이터가 저장
(재시작 시 모두 삭제)
var 시스템 운영중에 발생하는 데이터, 로그 등 내용이 자주 변경되는 파일이 주로 저장

 

●작업 디렉터리

- 현재 사용중인 디렉터리, (.)로 표시하며 pwd명령으로 확인 가능

●홈 디렉터리

-처음 사용자 계정 만들 때 지정, (~)로 표시

 

●경로명: 디렉터리 계층 구조에 있는 특정 파일이나 디렉터리의 위치를 나타내는 것 (/)을 구분자로 사용

- 절대 경로명: 항상 루트 디렉터리부터 시작 = 반드시 /로 시작

                       루트 디렉터리부터 시작해 특정 디렉터리에 이르기까지 중간에 있는 모든 디렉터리 이름 표시

                       특정 위치를 가르키는 절대 경로명은 항상 동일

 

-상대 경로명: / 이외의 문자로 시작

                      현재 디렉터리 기준으로 서브 디렉터리로 내려가면 서브 디렉터리명으로 시작

                      현재 디렉터리 기준으로 상위 디렉터리 가려면 (..)로 시작

                      현재 디렉터리가 어디냐에 따라 달라짐

 

 

●디렉터리 관련 명령

pwd
현재 디렉터리의 위치 확인 pwd

 

 

cd
지정한 디렉터리로 이동 cd[디렉터리]

 

ls
디렉터리의 내용 출력
-a 숨김 파일을 포함해 모든 파일 목록 출력
-d 디렉터리 자체의 정보 출력
-i 첫 번째 행에 inode 번호 출력
-l 파일의 상세 정보 출력
-A (.)와 (..)를 제외한 모든 파일 목록을 출력
-F 파일의 종류 표시(*: 실행파일, /:디렉터리, @:심볼릭 링크)
-L 심볼릭 링크 파일의 경우 원본 파일의 정보를 출력
-R 하위 디렉터리의 목록까지 출력
ls [옵션] [디렉터리 파일]

 

mkdir
디렉터리 생성 mkdir [옵션] [디렉터리]
-p 하위 디렉터리를 계층적으로 생성할 때 중간 단계 디렉터리 없으면 자동으로 중간 단계 디렉터리 생성

 

 

rmdir
디렉터리 삭제 rmdir [옵션] [디렉터리]
-p 지정 디렉터리 삭제하고, 그 디렉터리의 부모 디렉터리가 빈 디렉터리 일 경우 부모 디렉터리도 자동 삭제

 

●파일 관련 명령

cat
 파일 내용을 출력  cat [옵션] [파일]
-n 행 번호를 붙여서 출력

 

more
파일 내용을 화면 단위로 출력 more [옵션] [파일]
+ 행 번호 출력을 시작할 행 번호를 지정

 

less
파일 내용을 화면 단위로 출력 less [파일]

 

tail
파일 뒷부분의 몇 행을 출력
+행 번호 지정한 행부터 끝까지 출력
-숫자 화면에 출력할 행의 수를 지정한다
-f 파일 출력을 종료하지 않고 주기적 출력
tail [옵션] [파일]

 

cp
파일이나 디렉터리를 복사
-i 파일2가 이미 존재하면 덮어쓸 것인지 물어봄
-r 디렉터리를 복사할 때 지정
cp [옵션] [파일1 (디렉터리)] [파일2 (디렉터리)]

 

mv
파일 또는 디렉터리를 이동하거나 이름을 바꿈 mv [옵션] [파일1 (디렉터리1)] [파일2(디렉터리2)]
-i 파일2(디렉터리2)가 존재하면 덮어쓸 것인지 물어봄

 

rm
파일을 삭제 rm [옵션] [파일 또는 디렉터리]
-i 파일을 정말 삭제할 것인지 확인
-r 디렉터리를 삭제할 때 지정한다

 

●파일링크

파일 링크는 기존에 있는 파일에 새로운 이름을 붙이는 것

-리눅스에서 파일은 '파일명 + inode + 데이터 블록' 으로 구성

 

ln
파일의 링크를 생성 ln [옵션] [원본파일] [링크파일]
-s 심볼릭 링크 파일을 생성

 

touch
빈 파일을 생성하거나
파일의 마지막 접근 시간 또는 수정 시간을 변경
-a 접근 시간만 변경
-m 수정 시간만 변경
-t[[CC]YY]MMDDhhmm[.ss] 시간을 직접 입력
touch [-acm] [-r ref_file] | -t time] [ 파일]

 

grep
지정한 패턴이 포함된 행을 찾는다
-i 대문자, 소문자 모두 검색
-l 지정한 패턴이 포함된 파일명 출력
-n 행 번호를 출력
grep [옵션] [패턴] [파일]

 

find
지정한 위치에서 검색 조건에 맞는 파일을 찾음
-name filename 파일명으로 검색
-type 파일 종류 파일 종류로 검색
-user loginID 지정한 사용자가 소유한 모든 파일 검색
-perm 접근권한 지정한 사용 권한과 일치하는 차일을 검색
-exec 명령 {}\; 검색된 파일에 명령을 실행
-ok 명령 {}\; 검색된 파일의 절대 경로명을 화면에 출력
-print  검색된 파일의 절대 경로명을 화면에 출력
-ls 검색 결과를 긴 목록 형식으로 출력
find [경로] [검색조건] [동작]

 

 

●명령의 위치 찾기

whereis
지정된 경로에서 명령의 바이너리 파일이나 매뉴얼 파일의 위치 찾음
-b 바이너리 파일만 검색
-m 매뉴얼 파일만 검색
-s 소스 파일만 검색
whereis [옵션] [파일]

 

which
명령 파일의 위치를 찾아서 그 경로나 alias를 출력 which [명령]