디스크 기반 파일 시스템(Disk-Based File System)
MINIX
유닉스의 한 갈래인 미닉스에서 사용되던 파일시스템으로, 플로피 디스크 등 작은 크기의 저장소 장치로 사용되는 파일시스템
EXT
리눅스 초기 개발 시 리눅스에서 사용하기 위해 만들어진 확장파일시스템. 유닉스의 파일시스템인 UFS의 영향을 받음. 현재 ext2, ext3, ext4 버전 존재
XFS
CentOS7, RHEL7 등 최신 리눅스 버전에서 기본으로 사용되는 파일 시스템
FAT
현재는 USB등 이동식 저장장치에 사용되고 있으며, 리눅스는 FAT, vFAT파일시스템을 지원
ISO9660
ISO 9660 표준에 따른 CD-ROM 파일시스템. 운영체제 및 플랫폼에 무관하게 사용 가능한 표준 방식
UDFS
UDF는 ISO/IEC 13346 규격으로 개발되었으며, DVD 표준 파일시스템
파일의 구성
1개 파일 생성을 위해 파일의 이름, I-NODE, Data block이 있어야함
I-Node(Index node)
파일에 대한 정보를 가지고 있는 inode가 모여 있는 테이블로, inode는 각각 1개의 파일 또는 디렉토리에 대한 정보를 가짐
주요 정보
- 파일의 종류 및 권한 종료
- 추가해서 적기-------
링크 파일
윈도우의 바로가기와 같은 파일. 링크라는 개념을 도입 해, 여러개 이름이 하나의 I-node에 연결되도록 수행하여 실제 파일이나, 디렉터리 혹은 다른 링크를 가리킴
파일에는 하드링크와 심볼릭 링크가 존재하며, 링크 파일을 생성하기 위해서는 ln 명령을 사용
하드 링크
- 원본 파일과 동일한 내용의 다른 사본 파일을 만듦
- 원본 파일 변경시 복사된 링크 파일의 내용 또한 자동 변경
- 파일의 실제 I-node 정보를 공유하기 때문에 마치 동일한 파일이 여러곳에 존재하는 것처럼 보임
심볼릭 링크(또는 Soft Link)
- 통상 사용되는 링크 파일이 심볼릭 링크
- 심볼릭 링크 파일을 삭제해도, 원본 파일 영향없음
특수 파일
- 리눅스가 지원하는 파이프, 소켓, 주변장치를 의미
- 운영체제의 C:, D:, E:등과 같은 의미
- 리눅스 시스템에선 /dev/hda1 등으로 등장함
문서 파일과 이진 파일
- 문서 파일은 키보드로 입력 받은 값만을 가지고 있으며, ASCII 문자로 구성
- 이진 파일은 문자가 아닌 데이터 파일이 들어 있으며, 기계어인 0과 1의 값으로 구성
디렉터리
작업 디렉터리
- 사용자가 현재 사용하고 있는 디렉터리
- 상대경로는 (.) 점으로 표시
홈 디렉터리
- 각 사용자에게 할당되는 디렉터리로 사용자 계정 처음 만들 때 지정
- 홈 디렉터리의 표시는 틸드(~)를 사용함
절대 경로와 상대 경로
절대경로
- 루트 디렉터리인 '/'를 기준으로 제공되는 디렉터리
- 반드시 루트를 의미하는 '/'로 시작해야함
- 루트 디렉터리부터 중간 단계 디렉터리 모두 표시해야함
- 특정 위치를 가리키는 절대 경로명은 항상 동일해야함
상대경로
- 셀의 작업 디렉터리가 상대 경로의 기준
- 자신이 속한 디렉토리는 `.` 으로 표현하고, 상위디렉토리는 `..`
- / 이외의 문자로 시작해야하고, 현 디렉터리 위치에서 서브디렉터리로 갈 시 파일명 추가
- 현재 속한 디렉토리에 따라 상대경로는 달라짐
파일, 디렉터리명 생성 규칙
- /는 경로를 나타내기 위한 문자로, 이름에 사용할 수 없음
- .으로 시작하면 숨김 파일로 처리
- -, _ 외 특수문자 사용 불가
디렉터리 관련 명령어(출력, 생성, 삭제, 복사, 이동, 찾기)
ls
ls [경로] : 해당 디렉터리 경로의 파일, 폴더를 모두 보여준다
옵션
- -a(all) : 숨겨진 파일까지 포함 모든 파일 리스트 출력
- -d : 지정 디렉터리 존재하는 파일과 디렉터리 정보 출력
- -n : 호스트네임 확인
- -i : 첫번째 열에 I-node 번호 출력
- -F [경로Optional] : 파일명 뒤에 /는 디렉터리 파일을, @는 심볼릭 링크를, 아무 표시가 없다면 일반 파일
- -l : 파일에 대한 권한, 그룹 등의 정보까지 표시(정렬)
- -r : reverse로 정렬함
- -R : 경로에 모든 폴더 내부 내용을 출력함
- [경로] : 파일의 존재 여부 체크 가능(찾기용으로 쓸 명령어는 아님)
- 모든 옵션은 한번에 같이 쓸 수 있음
파일 정보 알파벳 의미
- - : 일반 정규 파일
- d : 디렉터리 파일
- l : 심볼릭 링크 파일
- b : block 단위 read/write 파일
cd
cd [경로] : 해당 경로로 작업 디렉토리 변경(절대경로, 상대경로 모두 가능)
그냥 cd만 명령할 경우, 해당 계정의 루트 폴더로 이동한다
mkdir
- mkdir [디렉터리명] [디렉터리명] : 디렉터리를 생성함(갯수만큼 가능)
옵션
- -p [디렉터리명]: 특정 경로에 하위디렉터리 생성을 위해 중간 디렉터리를 알아서 생성함
rmdir
- rmdir [디렉터리명] [디렉터리명] : 디렉터리를 지움(갯수만큼)
옵션
- -p [디렉터리명] : 상위 디렉터리를 지울 시, 하위 디렉토리까지 모두 삭제함
rm
- rm [파일] : 파일을 삭제할 수 있음
옵션
- rm -r [디렉터리] : 디렉터리를 삭제할 수 있으며, 하위폴더도 재귀적으로 삭제
touch
- touch [이름] : 파일을 생성할 수 있음
옵션
- -t(time) YYMMDDHHMM : 파일 생성 시각 변경
cp
- cp [원본파일경로] [복사할경로]
- cp [원본파일경로] [원본파일경로] ... [복사할경로] : 다중 항목을 한번에 복사도 가능
옵션
- -i [원본파일경로] [복사할경로] : 복사할 파일명 또는 디렉터리명이 존재하면 덮어쓸건지 물어보게함
- -r : 디렉터리 복사할 때 사용
- -a : 원본파일 속성과 링크 정보 그대로 유지하며 복사
- -b : 원본파일의 백업본 생성
- -d : 원본파일이 심볼릭 링크된 파일의 경우, 그 자체까지 복사
- -f : 복사하고자 하는 파일 이름이 겹칠 경우 강제 복사
- -l : 하드 링크 형식으로 복사
- -p : 원본파일 경로가 지정되어 있으면 그대로 복사
- -r : 디렉터리안에 있는 모든 하위 디렉터리까지 복사
- -s : 심볼릭 링크 생성
find
- find [찾을디렉터리경로] [검색조건] [옵션] [동작]
옵션
- -name : 지정한 파일찾기(와일드카드 사용: '*','?','[]') 와일드카드 사용시 작은 따옴표 선언해서 파일이름 정확히 표현
- -type : 찾는 파일의 타입, b: 블록디바이스 파일, d: 디렉터리, f : 파일, l : 심볼릭링크
- -user : 지정한 사용자가 소유하고 있는 파일 찾기
예) find / -type d -name 'h*' : 루트폴더에서 이름이 h로 시작하는 디렉터리 찾기
예 find / -type f -name 'sshd' : 루트폴더에서 이름이 sshd인 파일 찾기
cat
- cat [파일경로] : 해당 경로의 파일을 읽고 출력한다
옵션
- -n : 줄마다 번호를 매겨서 출력이 됨
- 명령어 구문 이후 | more 와 함께 사용하면 출력 정도를 제어할 수 있어, 확인하기 좋음(해당 명령어만의 옵션 아님)
예제 ) cat /tmp/services | grep -n dhcp /tmp/services grep은(Global Regular Expression Print)
which
- which [이름] : 해당 파일이나 폴더의 경로를 표시
예제) which pwd : pwd 명령어에 대한 파일 위치 표시
whereis
- whereis [이름] : 해당 파일이나 디렉터리와 관련된 모든 파일 폴더를 표시
man(manual)
- man [명령] : 해당 명령에 대한 메뉴얼 확인 가능
mv(move)
- mv [이동시킬파일또는디렉터리] [이동할디렉터리]
- mv [파일명] [다른파일명] 방법으로 사용시 파일 이름을 수정할 수도 있음
- 기본적으로 이동시 같은파일명 있으면 overwrite됨 -i 옵션을 통해 overwrite 여부 확인가능
ln(link)
- ln [원본파일] [링크파일이름] : 하드링크된 파일 생성
- ln -s [원본파일] [링크파일이름] : 소프트링크된 파일 생성
- ls -lF를 사용해서 숫자 부분을 보면 하드링크 여부와 소프트링크 여부를 볼 수 있음
1은 소프트링크, 화살표 표시도 친절하게 나옴. 2는 하드링크. ls -i를 적용하면 i-node 확인 가능
gedit
- gedit [파일명] : 메모장 파일을 생성
'23년 이전 글 > 리눅스' 카테고리의 다른 글
오프라인 환경 Vim 플러그인 설치, python wheel 설치 (0) | 2022.12.27 |
---|---|
리눅스 파일 접근 권한 (0) | 2022.07.19 |
VI 에디터 사용 기초 (0) | 2022.07.19 |
malformed entry ** in list file /etc/apt/sources.list 에러 해결 방법 (0) | 2022.07.16 |
리눅스 명령어 참고 (0) | 2022.07.14 |