일반 사용자와 시스템 관리자를 위한 유닉스 리눅스 이해하기

일반 사용자와 시스템 관리자를 위한 유닉스 리눅스 이해하기

 

 

Chapter02 유닉스 리눅스 시작

패스워드 바꾸기

 자판의 사용

Chapter03 명령어 일반형식과 매뉴얼

ls 명령의 결과를 길게 나열하라

온라인 메뉴얼

빠른 명령어 탐색

 

Chapter04 파일 시스템

파일 시스템은 운영체제에서 파일을 저장하는 데 쓰이는 수단이다. 운영체제가 파티션이나 디스크에 파일들을 저장하기 위한 방법들이고 자료구조이다. 즉, 파일들이 디스크 상에서 구성되는 방식이다.
파일들이 디스크에 구성되는 의미의 파일시스템은 디렉터리, 서브디렉터리 그리고 마지막으로 개별 파일들로 구성된다. 디렉터리 트리의 최상위 레벨에는 루트 디렉터리가 있으며, “/”로 표시한다. 파일시스템의 개별 파일이 디스크에 저장되는 방법을 이해하기 위해서는 i-node와 슈퍼블록(super block)의 개념을 알아야 한다.

i-node
리눅스는 파일을 생성할 때, 두 가지의 절차를 거친다. 먼저 파일의 데이터를 저장하기 위한 디스크 내의 공간을 확보한다. 그리고 난 후 파일에 대한 기본 정보를 저장하기 위해 i-node라는 구조를 만든다. i-node에는 리눅스가 파일을 사용하는데 필요한 모든 정보가 들어있다. 리눅스는 모든 i-node를 큰 표(테이블, i-number or index number)에 보관한다.

Chapter05 파일 관련 명령어

파일과 디렉터리 내용보기 : ls

파일 조작 명령어 : touch -> touch 명령은 최근 시간과 파일이 수정한 시간과 날짜를 현재 시간과 날짜로 바꾸는 명령이다. touch 명령어로 임시 파일을 만들어 사용하면 편리하다.

파일 사용의 권한의 변경 : chmod

심볼릭 모드에서의 기호 u(user), g(group), o(other), a(all)
심볼릭 모드에서의 권한 설정 +(권한 추가), -(권한 제거), =(권한 할당, 두 사용자의 권한을 같게함)

기본 권한 : umask

주의해야 할 것은 “022”라는 것이 부여될 권한 값이 아니라 제한할 값이라는 것이다. 777-022 = 755
파일의 기본권한 = 666, 디렉터리의 기본 권한 = 777 (umask 설정값이 000일때), 텍스트형 일반 파일 같은 경우 실행 권한이 의미가 없기 때문이다.

링크 : ln
리눅스에서 파일의 사용을 사용자가 요청했다면 리눅스는 먼저 디렉터리에 있는 이름을 찾고 i-node를 찾기 위해 index number를 사용하고, 그 파일을 엑세스하기 위해 i-node 정보를 사용한다. 이렇게 파일명과 i-node 사이의 관계를 연결 관계(link)라고 한다. 리눅스 시스템에서는 하드링크라고 하는 링크 형태와 심볼릭 링크 두 가지 링크 방식을 지원한다. 일반 파일에 대해 연결 관계를 만들기 위해서 ln 명령을 사용한다.

하드 링크 만들기

위와같이 하면 hello와 newname라는 파일 이름은 각각 같은 파일 내용을 가리킨다. 이 경우 어느 하나를 지우더라도 나머지는 아무런 변화 없이 내용이 남아 있게 된다. ln 명령은 원래 파일을 참조하는 새로운 이름을 생성하는 것이다. 원본 파일의 데이터 사본은 생성하지 않은 채, 새로운 파일의 이름만 생성하는 것이다. 이렇게 되면, 이 둘은 모두 같은 파일의 내용(디스크의 동일한 물리적 위치에 존재하는 하나의 데이터)을 참조한다. 따라서 둘 중의 어느 하나의 파일이름에 대하여 수정이 이루어지면 다른 이름의 파일도 변경된 데이터를 갖게 된다. cp 명령을 사용하면 새로운 파일 이름 뿐만 아니라 데이터의 사본도 생겨나는 점에서 ln과 차이가 있다.
하드링크 관계는 하나의 파일시스템 내에서 할당되는 i-node에 기반하기 때문에 다른 파일시스템에 링크를 형성할 수 없다. 또한, 하드 링크 관계의 두 번째 문제는 링크가 파일시스템의 하위계층에서 동작하기 때문에 처음에 의도하였던 링크 관계가 오랫동안 지속되지 못한다.

이러한 하드링크의 문제를 심볼릭 링크를 사용하여 해결 할 수 있다. ‘-s’ 옵션을 쓴 연결관계는 원래의 파일의 index number를 포함하고 있지 않기 때문에 심볼릭 연결 관계라고 한다. 이는 i-node 테이블을 통해서 파일을 참조하는 것이 아니고 이름을 가지고 파일을 참조하는 것이기 때문에 하드 링크보다 높은 레벨에서 동작하는 것이다.

심볼릭 링크에서도 주의해야 될 점이 있는데 samplefile의 이름을 바꾸면 linkedfile이 아무것도 참조하지 않는 허상(dangling) 링크의 상태가 되는 것이다. 하드링크는 링크한 파일을 다른 곳으로 옮겨도 내용이 그대로이지만 심볼릭 링크는 링크한 파일을 다른 곳으로 옮기면 허상 링크의 상태가 된다.

댓글 남기기

Close Menu