Facts (사실, 객관)
: VI editor, 쉘 메타 문자, 메타 문자, 리디렉션 및 파이프에 대해서 배우고 실습을 진행하였다.
Feelings (느낌, 주관)
: 점점 어려워진다,,, 각종 명령어들이 너무 많고 쓰임도 다양하고 헷갈린다. 일단 vi 편집기 들어오면서부터 어려워지는것같다... ㅜ
Findings (배운 점)
: Vi and Vim text editor
- 유닉스 환경에서 많이 쓰이는 문서 편집기
- 실행 시 기본 모드 : command mode
Vi 명령모드
- vi의 기본모드. vi가 처음 실행되거나, 입력 모드에서 esc 키를 누른경우. 커서이동, 문자열 수정. 복붙 등
Vi 입력모드
- 명령 상태에서 a,i,o 등의 키를 누르면 진입
명령모드 -> 입력모드
key | 동작 |
i | 현재 위치에서 입력 모드로 변경 |
l | 행의 제일 처음에서 입력 모드로 변경 |
a | 현재 위치에서 우측으로 한 칸 이동 후 입력 모드로 변경 |
A | 행의 제일 마지막에서 입력모드로 변경 |
o | 커서 아래에 새로운 행을 추가하고 입력모드로 변경 |
O | 커서 위에 새로운 행을 추가하고 입력모드로 변경 |
s | 현재 문자를 지우고 입력모드로 변경 |
S | 현재 행의 모든 문자를 지우고 입력모드로 변경 |
명령모드 : 커서이동
key | 동작 |
h | 커서를 왼쪽으로 이동 |
j | 아래로 |
k | 위로 |
l | 오른쪽으로 |
W,w | 다음 단어의 처음으로 이동 |
E,e | 단어의 끝으로 이동 |
B,b | 처음으로 |
^ | 행의 처음으로 이동 |
$ | 마지막으로 |
G | 문서의 마지막으로 이동 |
gg | 처음으로 |
명령모드
key | 동작 |
x | 커서가 있는 문자 삭제 |
X | 커서가 있는 앞 문자 삭제 |
dd | 현재 커서의 행 삭제 |
숫자 + dd | 현재 커서부터 숫자만큼 행 삭제 |
yy | 현재 커서가 있는 라인을 복사 |
숫자 + yy | 현재 커서부터 숫자만큼의 행을 복사 |
P | 복사한 내용을 현재 라인 이후에 붙여넣기 |
p | 이전에 |
EX 모드
- 검색
/Pattern | Pattern을 검색 |
?Pattern | Pattern을 검색 |
- 치환
:[볌위]s/[Old]/[New]/[옵션] | Old를 New로 치환 |
g 옵션을 주면 적용되는 라인의 모든 부분 변경, 아니라면 처음 찾은 부분만 변경
- shell 명령어
:! [command] | vi를 잠시 중단하고 명령어 수행 |
:.! [command] | 수행한 명령의 결과를 vi 편집기로 출력 |
- split window
[n]split[filename] | 수평 나누기 |
[n]vs[filename] | 수직 |
명령모드에서 ctrl +wn은 현재 화면을 수평으로 나누기이고 ctrl + wv는 현재 화면을 수직으로 나누기이다.
n은 창의 크기를 의미하고 ctrl + ww는 창간의 이동
- 파일관련
:e [filename] | 파일 열기 |
:enew | 현재 창을 닫고 빈 문서를 연다 |
:q | 종료(변경된 내용이 없는 경우) |
:q! | 강제 종료(변경된 내용이 있어도 무시) |
:w | 파일 저장 |
:wq | 파일 저장 후 종료 |
- 파일 및 실행 관련
:w >> [filename] | filename에 내용 추가 |
:f | 현재 작업중인 파일의 이름과 라인 수 |
:[n]r[filename] | filename 파일의 내용을 현재 편집중인 파일의 n 라인부터 삽입 |
:[n]r[command] | Command 실행결과를 파일의 n 라인부터 삽입 |
- ETC
:set ts =4 | Tab 사이즈 조절 |
:set ne | Line number 활성화 |
:set nonnu | Line number 비활성화 |
:nohl | High light 비활성화 |
extended command mode에서의 사용
q | 종료 |
q! | 저장 없이 강제 종료 |
w | 저장 |
wq | 저장 후 종료 |
set nu | 라인 숫자 표시 |
NUM | n번째 라인으로 이동 |
SP,EP s/A/B/g | SP(시작줄)에서 (EP)끝줄까지 A를 B로 변경 |
쉘 메타 문자
- 쉘에서 사용할 때 특수한 기능을 가지고 있는 문자 (경로 이름 메타문자, 파일 이름 메타문자, 인용부호 메타문자, 방향재지정 메타문자)
- Bourne Shell의 경우에는 메타문자를 인식하지 못함
경로 이름 대체 문자
- 파일 경로 이름 매칭 기능
- 많은 수의 파일을 관리하기 쉽다
~ | 현재 사용자 홈 디렉토리 |
~+ | 현재 디렉토리 |
~- | 이전 디렉토리 |
[abc...] | 대괄호에 포함된 한 문자 |
[!abc...] | 대괄호에 없는 한 문자 |
[[:alpha:]] | 알파벳문자 |
[[:lower:]] | 소문자 |
[[:upper:]] | 대문자 |
[[:digit:]] | 숫자 |
파일 이름 대체 문자 Metacharacters
* | zero or more |
? | 모든 한 문자 |
[..] | []안의 문자를 한 문자씩 대체 |
[!..] | [] 안의 문자를 제외한 나머지 문자들을 한 문자씩 대체 |
브레이스 확장
- 임의의 문자열을 생성할 때 사용. {a,b,c} 형식으로 사용
- {} : {} 안에 요소를 하나씩 밖으로 부여시에 생성 가능
- " " : `, ₩, $제외한 특수문자 일반 문자화
인용부호 메타문자
"" | 띄어쓰기가 있는 파일 이름을 지정할 때 사용 echo와 함께 사용시에는 특정 특수문자들에 대한 작용이나 무시를 설정할 때 사용 $, ``, \를 제외한 모든 문자를 일반화 시킴 |
'' | 띄어쓰기가 있는 파일 이름을 지정할 때 사용 echo와 함께 사용시에는 특정 특수문자들에 대한 작용이나 무시를 설정할 때 사용 모든 문자를 일반화 시킴 |
$ | $(command)를 이용해서 명령어의 결과를 echo 명령어에 사용할 수 있음 echo $ 환경 변수를 이용해서 환경변수의 값을 불러올 수 있음 |
`` | 'command'를 이용해서 명령어의 결과를 echo명령어에 사용할 수 있음 |
\ | 뒤에 오는 특수문자의 효과를 무시해서 일반문자화 시킴 |
파일 및 디렉토리 생성
- 표준 입출력
0 | Stdin | 표준입력 (쓰기 전용) |
1 | Stdout | 출력(읽기) |
2 | stderr | 오류(읽기) |
3+ | file name | 파일(읽기 및 쓰기) |
- 리디렉션 사용법
> 파일 | 표준 출력을 파일로 저장(덮어쓰기) |
>> 파일 | 기존 파일의 내용에 이어서 쓰기 |
2> 파일 | 표준 에러를 파일로 저장 |
2> /dev/null | 표준 오류를 출력도 파일로 저장도 하지 않음 |
&>파일 | 표준 출력과 표준 오류를 함께 파일에 저장(덮어쓰기) |
&>>파일 | 동일한 파일의 기존 내용에 이어서 쓰기 |
파이프라인
- 파이프 : 한프로그램의 출력을 중간 파일 없이 다른 파일의 입력으로 바로 보내는 유닉스 매커니즘. 파이프 | 기호 왼쪽 명령어의 출력을
오른쪽 명령어의 입력으로 보낸다. 파이프 라인은 하나 이상의 파이프로 구성된다.
(수행 명령어) | (내용을 보는 명령어)
tee
-출력을 두 방향의 입력으로 전송. 파이프 라인을 수행한 내용을 저장하고 싶을 경우에는 | tee 이용
'GOORM' 카테고리의 다른 글
GOORM: Kubernetes-11 (0) | 2021.11.08 |
---|---|
GOORM: Kubernetes-10 (0) | 2021.11.05 |
GOORM: Kubernetes-8 (0) | 2021.11.04 |
GOORM: Kubernetes-7 (0) | 2021.11.04 |
GOORM: Kubernetes-6 (0) | 2021.11.03 |
댓글