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 |