linux directory structure and important files paths explained
cd 명령어
- 현재 사용자 계정의 홈 디렉토리로 이동하려면 cd만 입력
- 이전 디렉토리로 이동은 - 사용
- 특정 계정의 홈 디렉토리로 이동하려면 ~user명 사용 (공백시 현재 사용자)
(참고) which/rpm 명령어 : 관련 패키지 정보를 조회할 수 있음
- which : 현재 사용하고 있는 명령어 실행 파일의 위치를 알 수 있다.
- rpm q : 패키지 정보 확인 옵션 (f : 이 경로 파일들이 어떤 패키지랑 연관이 되어 있는지 확인 / l : 이 패키지에 어떤 파일들이 포함되어있는지 / i : 패키지 설명 확인)
- man은 매뉴얼 파일
- rpm 명령어는 Redhat 계열의 리눅스에서 사용 가능한 명령어
- 다른 PC에 어떤 파일이 실행이 안될 때, 어떤 패키지가 설치되어있는지 확인하고 Trouble Shooting 하는 용도로 활용 할 수 있다.
ls 명령어
- ls -l 명령어 : 해당 디렉토리의 정보 (사진의 세번째 행을 기준으로 설명)
- 첫번째 열 : 파일의 속성
- d : 디렉토리 / - : 파일
- rwx (앞의 세자리) : 파일의 소유자(세번째 열 root)가 가지는 권한
- r-x (다음 세자리) : 그룹(네번째 열 root)이 가지는 권한
- r-x (다음 세자리) : 소유자와 그룹을 제외한 Other가 가지는 권한
(r : 읽기 / w : 쓰기 / x : 실행)- 두번째 열 (숫자) : 링크 카운트. 파일은 기본으로 1, 디렉토리는 최소 2 이상(.과 ..이 있기 때문)
- 다섯번째 열 : 바이트 단위의 파일 크기
- 여섯번재 열 : Modify Time 마지막으로 수정된 시간 (리눅스의 시간은 세가지 : 1. Modify Time 2. Access Time 3. Change Time - 세가지 정보는 stat 명령어에서 확인 할 수 있음)
- ls -lt = ls -l : Modify Time
- ls -lut : Access Time
- ls -lct : Change Time
- 마지막 열 : 파일 또는 디렉토리 명
ls명령어 옵션
- ls -a : all, 숨김파일도 모여줌
- ls -i : i노드, 이 파일시스템에서 식별하기 위한 id 정보. 파일 이름이 같을 때 구분하기 위한 정보 (같은 파티션 내에서 다른 이름 같은 inode 면 같은 파일 / 다른 파티션에서 같은 inode여도 다른 파일) 리눅스 전용 특수 index
- ls -F : 하위 디렉토리, 파일의 속성 (-d는 자기 자신의 속성) 파일의 속성별로 색깔이 다르게 표시됨
- ls -d : 자기 자신의 속성
- ls -R : 하위 디렉토리까지 보여주는 명령어
(명령어를 섞어서 사용할 수 있다. ls -lR, ls -a -i 등등)
참고
stat 명령어
- 디렉토리와 파일에 대한 다양한 정보를 확인. 내가 원하는 데이터와 정보를 원하는 형태로 출력시킬 수 있음.
(머신러닝 등의 학습데이터 추출에 유용하다. ls명령어는 불필요한 데이터가 많이 포함됨)
파일 시스템
- 파일은 디렉토리에 등록되어있는 개념임
- 파일을 실행하는 것. 파일 명을 통해서 디렉토리에 접근. 디렉토리에 등록된 파일명의 inode를 읽고 저장장치에 접근
- 파일을 삭제하는 것. 디렉토리에 파일명과 inode의 연결을 끊는 것.
- 파일은 메타데이터 + 데이터 블록
- 디렉토리도 메타데이터 + 데이터 블록으로 구성되어있는데, 데이터 블록에 하위 디렉토리와 파일에 대한 정보가 기입됨. 파일의 경우 파일명 + inode 등의 정보가 등록됨.
- (왼쪽)xfs 파일 시스템 : 그냥 폴더만 생성했을 때 6바이트. 하위 폴더를 생성하면 조금만 늘어남.
- (오른쪽)ext4 파일 시스템 : 폴더 만 생성했을 때 4096바이트. 하위 폴더를 생성해도 4096. => 파일 시스템마다 데이터를 저장하고 관리하는 방식이 다름.
find 명령어 활용 예시