티스토리 뷰
1) 파일과 디렉토리의 구조
- 파일: 데이터를 담는 그릇
- 파일 시스템: 파일을 관리하기 위한 시스템
- 계층 구조: Tree 형태의 계층 구조
- root 디렉토리의 목록
2) 파일의 종류
- 일반 파일: 텍스트 파일이나 동양상 파일
- 디렉토리: 파일의 한 종류, 윈도우의 폴더와 같은 개념
- 심볼릭 링크 파일: 어떤 다른 파일을 가리키는 파일, 바로가기 같은 개념
- 블록 디바이스 파일: 블록 디바이스를 제어하기 위한 파일
- 문자 디바이스 파일: 문자 디바이스를 제어하기 위한 파일
- 파이프 파일: 파이프를 나타내는 파일. 프로세스간 통신에 사용됨
- 소켓: 소켓을 나타내는 파일. 프로세스간 통신에 사용됨
3) 대표적인 디렉토리
- /: 루트 디렉토리, 모든 디렉토리의 최상위 부모
- /bin: 모든 사용자가 사용할 수 있는 여러가지 실행 파일 위치
- /sbin: 시스템 관리자 권한으로 실행해야 하는 실행 파일 위치
- /etc: 여러 가지 설정 파일
- /lib: 공유 라이브러리 디렉토리
- /home: 사용자들의 홈 디렉토리
- /mnt: 일시적으로 파일 시스템에 마운트하는 경우 사용하는 디렉토리
- /proc, /sys: 시스템 정보를 설정/조회할 수 있는 디렉토리
- os에서 사용자에게 보여주기 위한 정보 설정
- /tmp: 임시 디렉토리
- /usr: 사용자가 추가한 실행 파일, 라이브러리 등의 s/w 저장
- /dev: 디바이스 드라이버가 사용하는 디바이스 파일 디렉토리
4) 디렉토리 개념
- 현재 작업 디렉토리(Current Working Directory)
- 홈 디렉토리(home directory)
- 상대경로와 절대경로(relative path, absolute path)
5) 아이노드 그리고 하드링크와 소프트링크
- inode: 파일의 여러가지 데이터들을 저장해놓은 구조체
- hard-link -> inode1 -> FileData
- soft-link == symlink -> inode2 -> LinkData(대상이 되는 파일의 경로)
- file = name - inode - data
6) 파일 다루기
$ touch hahaha //hahaha 파일을 생성
$ rm hahaha //hahaha 파일을 삭제
$ nano testfile //nano 편집기에서 testfile이라는 파일 생성
$ cat testfile //testfile의 내용을 보여줌
$ mv testfile apple //파일명 변경: testfile -> apple
$ mv apple /tmp/pineapple //tmp폴더에 파일명을 pineapple로 저장
$ cat /tmp/pineapple //tmp폴더에 pineapple 파일 출력
$ mv /tmp/pineapple . //현재 디렉토리로 pineapple 파일을 가져와라
$ mv pineapple ../../tmp //상위 2단계 디렉토리인 tmp폴더로 pineapple 이동
$ cat /tmp/pineapple // cat ../../tmp/pineapple과 동일 (1) 절대경로 (2) 상대경로)
- ls -al을 했을 때 .과 ..의 디렉토리를 갖는 것을 확인할 수 있다.
7) 디렉토리 다루기
$ mkdir testdir //testdir 디렉토리 생성
$ rm -rf testdir //testdir 디렉토리 한번에 삭제 가능
- -rw-r: 파일
- drwxr-xr: 디렉토리
- 디렉토리를 삭제하기 위해서는 비어있지 않아야 한다.
8) 아이노드와 하드링크
$ ln pineapple hello //pineapple이라는 파일을 hello라는 파일의 하드링크로 만들자.
$ cat pineapple
$ cat hello //2,3번 라인의 출력값은 같은 아이노드를 공유하므로 같다.
- Modify: 파일의 컨텐츠가 변경된 시간
- Change: inode가 변경된 시간
9) 소프트링크
- -s: --symbolic: make symbolic links instead of hard links
- 소프트링크를 생성하여 pineapple과 hello 연결
$ ln -s pineapple hello //소프트링크로 생성
'Linux' 카테고리의 다른 글
5. 프로세스와 시그널 (0) | 2023.04.03 |
---|---|
4. 사용자와 그룹 (0) | 2023.04.03 |
[error] 우분투 전체화면 안되는 현상 해결하기 (0) | 2023.04.01 |
2. 최소한의 커맨드라인 사용법 (0) | 2023.03.31 |
[error]리눅스 터미널 열리지 않는 현상 해결 (0) | 2023.03.31 |