3. vi 편집기의 명령어와 파일 link

2022. 9. 10. 23:27Linux

이번 시간에는 vi 편집기의 명령어와 link(Hard, Soft)에 대해서 알아보겠습니다.

 

vi편집기의 명령은 다음과 같이 존재합니다.

 

i : 현재 커서 위치에 삽입

a : 현재 커서 바로 다음위치에 삽입

o : 현재 줄 다음 위치에 삽입

x : 커서가 위치한 곳의 글자 1개 삭제

dw : 커서가 위치한 곳에서 부터 단어 삭제

dd : 커서가 위치한 곳의 한 줄 삭제

u : 방금 한 명령 취소

yy : 현재 줄을 버퍼로 복사 - 5줄 복사 : 5yy 

... 이외에 많은 명령어가 존재합니다.

 

이 중 자주 사용되는 한 명령어만 살펴보겠습니다.

 

:set nu

행 번호를 표시해주는 명령어 입니다.

 

파일 하나를 vi로 열어보겠습니다.

/etc/inittab 파일

 

여기서 :set nu 명령어를 적용하면

 

위와 같이 행 번호를 알기 쉽게 숫자로 표시해줍니다.


다음으로 link에 대해서 알아보겠습니다.

link란 어떤 경로를 다른 파일에서 접근할 수 있는것을 말합니다. 윈도우의 바로가기 개념과 같다고 생각할수 있습니다.

 

롤 바로가기 아이콘

바로가기 아이콘을 통해 원본과 동일한 기능을 수행할 수 있습니다.

 

파일 링크를 사용하는 주된 이유는 

1. 경로단축

2. 데이터 백업

과 같습니다.


link는 링크한 파일이 inode를 가르키냐, 파일 이름을 가르키냐에 따라서 Hard link, Soft link로 나뉩니다.

 

여기서 inode에 대해서 짚고 넘어가겠습니다.

 리눅스에서는 파일이나 디렉터리를 생성하면 inode라는 번호가 부여되고 이 번호를 기준으로 관리됩니다.

inode에는 파일의 소유권, 허가권, 파일 종류등의 정보와 실제 데이터의 위치도 담겨 있습니다.

파일명이 다르더라도 inode가 같다면 똑같은 파일로 인식합니다.

 

Hard link는 원본을 삭제해도 사본 파일에 영향이 미치지 않고, 파티션/파일 시스템이 다르면 사용할 수 없다는 특징이 있습니다.

Soft link (Symbolic link)는 원본 파일이 삭제되면 link가 깨지고, 파티션/파일 시스템이 달라도 사용 가능하다는 특징이 있습니다.


먼저 Hard link를 실습해보겠습니다.

 

abc라는 내용을 담고 있는 abc 파일을 원본으로 설정하겠습니다.

 

명령어를 입력해 하드링크 파일을 만들어 보겠습니다.

 

# ln abc abc_hard

 

abc_hard 파일이 abc와 inode가 동일하게 설정되어 생성된 것을 확인할 수 있습니다.

 

내용 또한 동일합니다.

 

abc_hard 파일의 내용을 수정할 경우 abc에도 영향을 미칩니다.

 

원본인 abc를 삭제해도 사본 abc_hard에 영향을 미치지 않습니다.


마지막으로 Soft link(Symbolic link)에 대해서 알아보겠습니다.

 

심볼릭 링크를 위해 명령어를 입력해줍니다.

 

# ln -s abc abc_soft

 

Hard link와 달리 inode가 다르고 abc_soft 가 abc를 가리키고 있는 표시를 확인할 수 있습니다.

 

사본 내용 수정 시 원본도 역시나 수정되는 모습입니다.

 

다만 Hard link와 달리 원본 삭제 시 링크가 깨져 내용을 확인할 수 없습니다.

 

원본과 동일한 이름의 파일을 다시 생성한다면 링크가 회복됩니다.


끝!