본문 바로가기
학점은행제

[컴퓨터시스템] 학습복습 - UNIX파일시스템, 명령어, 파일종류들

by 코곰 2021. 5. 24.

본 학습 내용은, 아이티뱅크 컴퓨터시스템 강의 및 교안을 바탕으로 합니다.

 

1. 파일 시스템

* 파일을 저장하는 데 쓰이는 수단

* 디스크에서 파일이 저장되는 방식

 

* 유닉스 파일

(1) 파일 이름

(2) i-node (index-node): 파일에 대한 기본 정보 저장

UNIX는 모든 file에 대한 정보를 i-node 구조로 생성하여 보관합니다. UNIX는 i-node를 테이블에 보관, i-node에는 파일의 소유자, id, 그룹 id, 파일의 크기, 최근 액세스 시간 등  파일 관련 모든 정보가 보관됩니다

(3) 데이터블록 : 파일의 실제 데이터가 디스크의 어느 한 곳에 저장되어 있는것

 

(4) 슈퍼블록: i-node와 다르게 시스템 관리자가 이용

: 디스크와 i-node, 자유 블록에 대한 정보

: 파일 시스템 마운트 시 맨 처음 읽는 정보

 

* 파일의 종류

(1) 일반 파일: 텍스트파일, 바이너리 파일. 데이터 저장 목적

(2) 텍스트 파일

(3) 바이너리 파일

(4) 디렉터리 파일

(5) 심볼릭링크 파일: 윈도우 시스템의 바로가기 아이콘처럼, 원본 파일을 가리키는 역할만 수행

(6) 장치(디바이스)파일: 부착된 장치들 관리목적. 

- 문자 장치 특수 파일 (버퍼 x 장치로부터 한 문자씩 입출력함)

- 블록 장치 특수 파일 (버퍼 사용, 자료 전송 효율 높임, 블록 단위 입출력함)

(7) 파이프 파일

: 프로세스간 통신 수행 위해 만들어진 파일

: 한 프로그램 출력을 바로 다른 파일의 입력으로 전송

(8) 소켓 파일

: 네트워크 입출력 담당 API, 서로 다른 호스트 컴퓨터 사이 정보 전달

 

* 파일 종류 확인: $file 파일이름

 

 

2. 디렉터리 계층 구조

 : 데이터 효율적 관리 위해 트리 구조로 시스템 구성

: 루트 디렉토리 - 최상위 디렉토리 '/'

: 작업 디렉토리, 현재 디렉토리 - '.'로 표시

: 상위 디렉토리 - '..'로 표시

: 홈 디렉토리 - '~'로 표시, 각 사용자에게 할당된 작업 영역

 

: /bin - 기본 실행 명령어 디렉토리

: /sbin - 시스템 운영 명령어 디렉토리

: /etc - 시스템 설정 파일 디렉토리

: /boot - 부팅  관련 파일 디렉토리

: /mnt - 입출력 장치 연결 마운트 디렉토리

: /media - 임시 마운트 디렉토리

: /usr - 응용 패키지 프로그램 설치 디렉토리

: /lib - 공유 라이브러리 디렉토리

: /home - 일반사용자 홈 디렉토리

: /dev -시스템 디바이스 장치파일 디렉토리

: /proc - 가상파일 시스템 디렉토리

: /var - 가변자료 저장 디렉토리

: /tmp - 임시파일 저장 디렉토리

: /opt - 리눅스에서 제공않는 프로그램 추가 설치용

: /lost+found - 파일 시스템을 진단 및 복구하는 fsck에 의해 사용

 

* 절대경로명 - 루트 디렉토리 기준

* 상대경로명 - 현재 디렉토리 기준

 

3. 파일시스템관련 명령어들

* 현재 디렉토리 위치 확인

$ pwd

* 현재 작업 디렉토리 변경

$ cd

* 현재 디렉토리 내에 있는 파일과 디렉토리 보여줌

$ ls

=> 숨김파일도 보여주는 -a옵션

=> 파일형식 보여주는 -F옵션 - 디렉토리(/), 심볼릭링크 파일(@), 실행가능한 파일(*) 구분 가능

=> 상세 정보는 -l 옵션

* 이동 - 디렉토리

$ mv

* 생성 - 디렉토리

$ mkdir

* 삭제 - 디렉토리

$ rmdir

* 이름 변경 - 디렉토리

$ mv

* 검색 - 디렉토리 내의 파일

$ find [검색 시작 위치 경로] [검색 조건 및 동작! ]

 

 

4. 출력 재지정, 리다이렉션

* 출력의 방향을 바꿈

* 파일 있으면 >는 기존 파일의 내용 덮어씀, >>는 기존 파일 뒤에 내용을 추가

* 아니면 파일 새로 생성!

명령 > 파일명, 명령 >> 파일명

예시

$ cat > sample.txt
Hello!
Writing a simple text file on terminal
^D 
 

 

 

5. 오류 재지정 

명령 >파일명

 

 

6. 와일드 카드 

(1) * - 모든 문자 혹은 0

(2) ? - 한 문자

(3) [] - 문자열의 범위 (EX. [a-z] 는 a부터 z, [a,c]는 a 혹은 c)

(4) {} - 여러 개의 패턴 쉼표로 구분해 명시

 

 

7. 파일 내용 보기 

* 파일 내용 연속적 출력

$ cat [옵션] 파일명1 파일명2 ..

 

예시

$ cat > sample // 파일 작성

$ cat >> sample //이미 존재하는 파일에 내용 추가

$ cat < sample // 이미 존재하는 파일 내용 출력

$ cat < sample > sample2 // 파일 복사

* 파일 내용 화면 단위 출력

$ more [옵션] [파일명]

* 파일 뒷부분 몇행 출력

$ tail [옵션] 파일명

* 파일 앞부분 몇행 출력

$ head [옵션] 파일명

* 파일 디테일 출력

: word count

$ wc

* 파일 내용 비교

$ cmp

* 정렬된 파일 행별 차례대로 비교

$ comm 

* 줄 단위 비교

$ diff 

* 파일복사

$ cp

* 파일 삭제

$ rm 

* 파일이동

$ mv

* 파일링크 생성

$ ln [옵션] 원본파일이름 링크파일이름

* 하드링크

: 하나의 파일에 둘 이상의 이름 붙임

: 파일에 붙인 이름 = 하드링크, 이름 붙여진 파일 = 하드링크 파일

: 하드링크는 원본파일과 inode값 다름

(<=> 파일복사)

 

* 빈 파일 생성 혹은 파일 수정 시각 변경

$ touch

 

댓글