본문으로 바로가기

[D+11] Vi editor

category 해킹&보안/Linux 2017. 2. 21. 19:15
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


9. vi editor


▣ Vi Mode

- usage : vi [File name]

- 파일명에 해당하는 파일이 없다면 새로 생성

- 파일명에 해당하는 파일이 이미 있다면 수정




▣ 명령 모드

- vi 기본모드

- vi가 실행되거나 입력, 실행모드에서 ESC 키

- 커서 이동, 문자열 수정, 복사 & 붙여넣기

- Enter키 입력 불필요 (입력모드가 아니니까)

- Tip. 현재 내 모드가 무엇인지 모를 때는 그냥 무조건 ESC 키를 누르다보면 명령모드로 돌아감!

 인자값

의미 

 i

  커서 위치에서 입력 모드로 변경 ( i2sec )

 a

  커서 위치 우측 한칸에서 입력 모드로 변경 ( i2sec )

 s

  커서 문자를 지우고 입력모드로 변경 ( 2sec )

 x

  커서 위치 문자 삭제( 2sec )

 dd

  현재 커서 행 삭제

 yy

  현재 커서 행 복사

 p

  복사 내용 현재 행 다음 라인에 붙여넣기

 u

  되돌리기


☞ 현재 커서 행부터 5000줄 삭제하기 : 5000dd

☞ 현재 커서 행부터 5000줄 복사하기 : 5000yy

☞ 현재 커서 행부터 5000번 붙여넣기 : 5000p (똑같은 한 행을 5000번 붙여넣는 것임)


▣ 실행 모드


 인자값

의미 

 :! [command]

  vi 에디터를 종료하지 않고 잠시 명령어를 실행

 :e [filename]

  파일 열기 (잘 사용하지 않음)

:q

  종료 (무변경)

:q!

  강제종료 (변경 무시)

:w

  파일 저장 (종료 x)

:wq

  파일 저장 후 종료

:wq!

  강제로 파일 저장 후 종료


- vi 에디터는 프로그램이지 쉘이 아니기 때문에 명령어가 실행이 불가함.

- 그러나 실행 모드에서 :! [command]를 사용하면 명령어를 잠시 사용 가능.




앞서 vi 에디터를 배우기 전이라 넘어갔던 부분을 보충 설명함.


[리눅스 시스템]


1) 사용자 환경 설정 파일


▣ 사용자 별 환경설정 파일

- .bash_logout, .bash_profile, .bashrc ("."으로 시작하는 파일은 숨김파일임)

- 위의 세가지 파일의 원본파일은 /etc/skel/에 존재함.

- 새로운 사용자가 추가 될 때 새로운 사용자의 홈디렉토리에 원본파일들이 복사됨.


▣ 모든 사용자 환경설정 파일

- /etc/profile

- /etc/bashrc



2) PATH


▣ 현재 PATH 관련 확인

- usage : echo $PATH


- PATH 사용이유 : 명령어 사용시 경로 생략을 하기 위해서 사용. (/bin/ls -al 하기는 싫으니까...)


▣ PATH 디렉토리 추가

- 전체 사용자에게 추가 : /etc/profile 을 편집

- 특정 사용자에게 추가

☞ 영구적으로 추가 : ~/.bash_profile 편집 (특정 사용자의 홈 디렉토리에 존재)

= 환경설정을 파일로 저장했기 때문에 적용을 위해서는 재로그인 해야함.


☞ 현재 로그인 세션에서만 추가 (로그아웃 시 소멸, 1회성) -> 굳이 홈 디렉토리에서 할 필요는 없음.

= echo $PATH

= PATH=$PATH:<추가할 디렉토리, 절대경로>


▣ 개인별 별칭(alias) 설정 = 단축명령어

- 영구적으로 설정 : ~/.bashrc 편집

☞ 환경설정을 파일로 저장했기 때문에 적용을 위해서는 재로그인 해야함.

- 1회성 설정 usage : alias hh='history'



[리눅스 커맨드]


1) 사용자 환경 설정 파일


▣ Crontab

- 지정된 시간에 특정프로그램을 자동 실행

- 스케줄링 파일 수정은 vi editor임.

- usage : crontab [Option]

- 실행 결과과 화면에 출력되는 것이 아닌 /var/spool/mail/계정명 파일의 끝에 추가가 됨

 인자값

의미 

-e

  스케줄링 파일 수정 (수정할 게 없다면 새롭게 등록)

-l

  스케줄링 파일 확인

-r

  스케줄링 파일 초기화

- 스케줄링 파일 내용

☞ [minute] [hour] [day] [month] [weekday] [username] [command]

  

 인자값

의미 

minute

  0 - 59 까지 값을 입력

hour

  0 - 23 까지 값을 입력

day

  1 - 31 까지 값을 입력 ( * : 매일)

month

  1 - 12 까지 값을 입력 ( * : 매달)

weekday

  0 - 6 까지 값을 입력 (일요일 0부터 시작)

username

  실행할 파일의 소유자 (생략가능)

command

  실행할 명령어 (절대경로)




☞ 시간 정보를 알기위해 vi editor안에서 실행모드에서 :! date 명령어를 이용하여 시간을 체크.

☞ 원하는 시간대에 username은 생략하고 ls -al 명령어를 적음.


☞ crontab -l로 스케줄링 파일을 확인.


☞ /var/spool/mail/root 파일 마지막에 저장되어 있는 ls -al 결과값.








i2sec 대구지점 23기 수료생.

'해킹&보안 > Linux' 카테고리의 다른 글

[D+13] System Log & APM  (0) 2017.02.23
[D+12] Package Install & Daemon  (0) 2017.02.22
[D+10] Link  (0) 2017.02.20
[D+9] Process Management  (0) 2017.02.17
[D+8] Permissions  (0) 2017.02.16