Linux 편집기의 종류
- GUI 환경인 그놈에서 제공하는 gedit
- Unix에서부터 사용했던 행 편집기(라인 편집기)와 화면 편집기
행 단위 편집기 : ed, ex, sed
화면 단위 편집기 : vi, emacs(이맥스)
GUI 편집기 : gedit
- 화면 단위 편집기
- vi : Linux에서 일반적으로 사용할 수 있는 화면 편집기
- emacs(이맥스) :제공하는 기능이 매우 다양하지만 사용법이 어렵고 복잡하여 전문적인 애호가 위주로 사용
vi의 동작 모드
vi는 visual editor의 약자입니다. vi로 파일을 열기 위해서는 vi 뒤에 경로를 입력해야 합니다.
- 절대 경로 방식 : /etc/~~ 처럼 /로 시작하는 경로 방식입니다.
- 상대 경로 방식 : 현재 자신의 폴더가 etc이고 etc/services 현재 경로에서부터 출발 합니다.
- 보통 i를 많이 사용 해서 입력 모드로 들어가고 :wq! 를 사용해 저장을 하고 vi를 끕니다.
- 저장 안하고 끌려먼 :q, :q!를 사용하면 됩니다.
- :w [ 파일명 ] : 작업한 내용을 저장만 합니다. 파일명을 지정하면 새 파일로 저장을 합니다.
- ZZ : 작업한 내용을 저장하고 vi를 종료합니다.
특정 행으로 바로 이동하기
- [[ -> 맨 앞으로 이동, ]] -> 맨 뒤로 이동
- :행 번호 -> 지정한 행 번호로 이동합니다.
- G -> 파일의 마지막 행으로 이동합니다.
- 행 번호G -> 지정한 행 번호로 이동합니다 (:행 번호 와 동일)
- :$ -> 파일의 마지막 행으로 이동합니다.
내용 삭제하기
- x, #x
- 커서 위치의 글자를 삭제합니다.
- #에는 삭제할 글자 수를 지정합니다. (ex. 3x는 세 글자를 삭제합니다)
- dw, #dw
- 커서 위치의 단어를 삭제합니다.
- #에는 삭제할 단어 수를 지정합니다.
- dd, #dd
- 커서 위치의 행을 삭제합니다.
- #에는 삭제할 행의 수를 지정합니다. (ex. 5dd는 커서 위치부터 다섯 행을 삭제합니다)
- D
- 커서 위치부터 행의 끝까지 삭제합니다.
명령 취소하기
- u
- 명령을 취소합니다.
- U
- 해당 행에서 한 모든 명령을 취소합니다.
- :e!
- 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업합니다.
d를 한 후에 u를 하면 삭제한 내용 복구!!
d를 하면 삭제가 되는데 그 후 u를 누르면 복구가 된다. 그럼 d를 하고 어디에 저장하는 걸까??
d를 사용하여 텍스트를 삭제할 때, 해당 텍스트는 "버퍼"라고 불리는 일시적인 저장 공간으로 이동합니다. Vim에서는 "레지스터"라는 특별한 형태의 버퍼를 사용합니다.
Vim에서 레지스터는 텍스트를 임시 저장하는 공간으로, 사용자가 삭제하거나 복사한 텍스트가 저장됩니다. 이 레지스터는 다양한 용도로 사용될 수 있으며, 삭제된 텍스트의 복구에도 사용됩니다.
복사하기, 잘라서 붙이기
- yy, #yy
- 커서가 위치한 행을 복사합니다.
- #에는 복사할 행의 수를 지정합니다. 예를 들어 3yy는 3개의 행을 복사합니다.
- p
- 커서가 위치한 행의 아래쪽에 붙입니다.
- P
- 커서가 위차한 행의 위쪽에 붙입니다.
- dd, #dd
- 커서가 위치한 행을 잘라둡니다.
- 삭제와 같은 기능입니다. 컨트롤 x와 같은 기능.
- 1,$ 또는 %
- 1행부터 마지막 행까지 지정합니다.
- #y, #d
- #로 지정한 행을 복사합니다, #로 지정한 행을 잘라낸다.
- :pu, :#pu
- #로 지정한 행 다음에 버퍼의 내용을 붙입니다.
검색하기
- /찾고 싶은 단어 입력 -> 위에서 아래로 찾습니다.
- ?찾고 싶은 단어 입력 -> 아래에서 위로 찾습니다.
- n -> 원래 찾던 방향으로 다음 문자열을 찾습니다.
- N -> 역방향으로 다음 문자열을 찾습니다.
바꾸기
- 커서 위치의 문자열만 바꿀 수도 있고, 파일 전체나 특정 범위 내에서 해당하는 문자를 바꿀 수 있습니다.
:s/문자열1/문자열2/ # 커서가 위치한 행에서 첫번째 문자열1을 문자열2로 바꿉니다.
:%s/문자열1/문자열2/g # 파일 전체에서 모든 문자열1을 문자열2로 바꿉니다.
:<범위>s/문자열1/문자열2/ # 범위 내 모든 행에서 첫 번째로 나오는 문자열1을 문자열2로 바꿉니다.
:<범위>s/문자열1/문자열2/g # 범위 내 모든 행에서 문자열1을 문자열2로 바꿉니다.
:<범위>s/문자열1/문자열2/gc # 범위 내 모든 행에서 문자열1을 문자열2로 바꿀 때 수정할지 여부를 묻습니다.
- 지금 변경은 대소문자를 구분합니다. 대소문자를 가리지 않고 바꿀려면 어떻게 해야 할까?
:set ignorecase # set ignorecase를 하면 대소문자를 구별을 안합니다.
:%s/tcp/KDN/g
:%s/.*/\L&/g # 대문자를 소문자로 변경할 때
:%s/.*/\U&/g # 소문자를 대문자로 변경할 때
vi에서 셸명령 사용하기
- :! 셸 명령
- vi 작업을 잠시 중단하고 셸 명령을 실행합니다.(vi로 다시 돌아올려면 Enter 키 입력)
- :sh
- vi를 잠시 빠져나가거나 셸 명령을 실행합니다. (vi로 돌아오려면 exit 명령어를 입력해야합니다.)
vi 환결 설정
- 사용자 홈 디렉터리에 .exrc 파일로 저장
- 환경 변수 EXTINIT에 지정
- vi의 마지막 행 모드에서 명령으로 실행
vi 환결 설정 명령(set)
- :set nu -> 라인 넘버를 찍어 줍니다.
- :set nonu -> 찍은 라인 넘버를 삭제 해줍니다.
trusted 관계의 서버들을 등록 할 수 있습니다.
Cluster type(분산 시스템)을 구현할 때 자주 사용합니다.
분산 시스템에서 제일 중요한 것은 시간 동기화 이기 때문에 ntpd를 이용해 시간 동기화 또한 해줘야 합니다.
vi /etc/hosts
cat ~/.ssh/known_hosts
시간 ntp 설정
systemctl status ntpd # ntpd 상태 확인
systemctl start ntpd # ntpd 시작
systemctl enable ntpd # 부팅시 자동 시작 설정
ntpq -p # 시작동기화 여부 확인
'AWS Cloud School > Linux, Network' 카테고리의 다른 글
DMZ (Demilitarized Zone)란? (1) | 2024.02.01 |
---|---|
Network 주요 기기 및 기술 설명 (0) | 2024.01.30 |
Linux - Shell, alias, 방화벽, 환경설정 (2) | 2024.01.21 |
CentOS에서 보안 회선 VPN 구성 (이론) (0) | 2024.01.21 |
Linux - (1) (0) | 2024.01.20 |