[구름 k8s] TIL 1-2-3

Peppie·2022년 8월 10일
0

1. 파일 읽기 및 생성

파일 읽기

일반 파일 중 텍스트 파일에 대하여 파일 내용 확인 명령어
(바이너리 파일의 경우 이진수 값으로 작성되었기에 내용 확인 자체가 어려움)

cat 명령

텍스트 파일 전체 내용 출력; cat [옵션] 텍스트파일

  • -n : 줄번호 출력
  • -A : 제어문자 출력

제어문자 (control character)

실제 출력되지 않고 특정 기능을 갖는 문자

  • \n : 줄바꿈, line feed + carriage return, Enter 키 입력시 포함
    line feed : 줄바꿈
    carriage return : 해당 line 홈 위치 이동
  • \t : tab
  • \b : backspace

more 명령

텍스트 파일 내용을 페이지 단위로 출력; more <텍스트 파일>

  • spacebar : 페이지 단위 출력
  • enter 키 : 라인 단위 출력
  • q 키 : 종료
  • /검색어 : 해당 검색어로 검색
  • 파일내용 처음부터 마지막 내용으로만 출력
    (처음 -> 마지막 정방향으로만 출력, 이전 화면으로 되돌아가기 불가능)

less 명령

텍스트 파일 내용을 페이지 단위로 출력하고 이전/이후 화면 이동가능; less <텍스트 파일>

  • spacebar : 페이지 단위 이동
  • j 키 / 아래 방향키 : 다음 라인으로 이동
  • k 키 / 위 방향키 : 이전 라인으로 이동
  • Ctrl + b 키 : 이전 페이지로 이동
  • q 키 : 종료
  • enter 키 : 라인 단위 출력
  • / 검색어 : 해당 검색어로 출력

head 명령

파일 첫 부분에 일정 개수 내용 출력 ; head [옵션] <텍스트 파일>

  • 기본 출력은 10줄
  • -<라인 수>- : 지정한 라인 수 만큼 출력

tail 명령

파일 마지막 부분 일정 개수 내용 출력 ; tail <텍스트 파일>

  • 기본 출력은 10줄
  • -<라인 수>- : 지정한 라인 수만큼 출력
  • -f : 파일 내용 출력 종료 X, 주기적으로 파일 내용 출력
    => log 파일 내용 확인시 유용, Ctrl + C 키로 종료

"일반적으로 파일 최신 내용을 보려면 head 보단 tail의 끝부분에서 업데이트가 주로 이뤄지기 때문에 확인 필요 => 주기적 확인을 tail -f에서 하는게 유용"

텍스트 파일 생성

touch 명령

의외로 쓰임새가 많은 명령어
touch <텍스트 파일>

  • 새로 생성되는 경우 0 byte 크기의 텍스트 파일 생성
  • 기존 파일의 최종 수정 시간 변경, 파일내용 변경 X

ln 명령

하드 링크 (hard link) 파일심볼릭 링크 (symbolic link 또는 soft link) 파일 생성

하드 링크 파일

ln <원본 파일명> <하드 링크 파일명>

  • 원본 파일에 대한 복사본
  • 원본과 동일한 내용을 갖는 파일
  • 하드 링크와 원본 파일은 inode 번호 동일
  • 하드 링크 파일이 생성되면 inode block의 하드 링크 수 증가
  • 원본 파일에 변화가 생기면 하드 링크 파일에도 변화된 내용 반영
    => 원본 파일 내용과 하드 링크 파일 내용은 항상 동일
  • 원본 파일이 삭제되어도 하드 링크 파일은 그대로 존재 -> 원본 삭제에 영향 X
  • 원본 파일에 대한 복사본 성격으로 여러 개의 하드 링크 파일 생성도 가능 => 백업

심볼릭 링크 (소프트 링크) 파일

ln -s <원본 파일명> <심볼릭 링크 파일명>

  • 원본 파일에 대한 링크 정보만 저장 -> 작은 파일 크기
  • 원본 파일과 다른 inode 번호
  • 원본 파일 내용 변화와 관계 X
  • 원본 파일이 삭제되면 심볼릭 링크 파일은 원본 파일의 링크만 가지므로 원본 파일 찾을 수 X
  • 파일 종류 문자로 l 사용
  • Windows OS의 바로가기와 유사한 기능

"문서 편집기 (텍스트 파일) 또는 컴파일러(compiler, 바이너리 파일)를 사용하여 생성"

2. 문서 (텍스트) 편집기

Linux 텍스트 편집기

행 단위 편집기

행 단위로 문서 내용 입력, 편집 수행

  • ed : 현재는 사용 X
  • ex : 현재는 사용 x
  • sed : 스트림 편집기

화면 단위 편집기

문서를 화면에 표시, 커서 이동을 통해 문서 내용 입력, 편집 수행

  • vi / vim : Linux 기본 편집기, 기본 설치
  • nano : 배포판에 따라 설치 필요
  • emacs : GNU 편집기, 설치 필요
  • TeX : 수식 편집기, 설치 필요

GUI 편집기

CLI 환경 위주에서는 사용 불가능, 마우스 사용 가능

  • gedit : Linux GUI 기본 편집기

vi 편집기

  • Linux 기본 편집기
  • 작은 실행파일 크기
  • 화면 단위 편집기능 제공
  • 단축키를 이용하여 편집 및 에디터 기능 수행
  • 명령 모드 / 편집 모드 구분

명령 모드

  • 문서 편집이나 파일 관련 명령 입력모드
  • 명령 입력 가능 상태
  • 명령모드 진입은 Esc 키 입력 후 : (colon) 입력

편집 모드
실제 내용 입력 및 편집 모드

  • 단축키를 사용하여 편집
    (장) 빠른 편집속도
    (단) 처음에 사용방법 익히는게 어려움
  • 명령 모드에서 사용할 수 있는 명령과 편집 모드에서 사용하는 단축키에 차이 있음

vi 실행

  • vi (vim) : vi 실행, 편집할 파일은 별도 지정 X
  • vi (vim) <파일명> : 지정한 파일을 vi로 읽어서 실행
  • vi 시작 시 명령모드로 실행

vi 종료

  • :q : vi 종료 명령, 현재 편집내용에 대한 저장이 필요한 경우 저장하지 않으면 종료 X
  • :q! : vi 강제종료 명령, 현재 편집내용 저장유무 상관 X 강제종료

명령 모드 / 편집 모드 전환

  • 명령 -> 편집 전환
    편집 모드에서 사용하는 단축키 입력
  • 편집 -> 명령 전환
    Esc 키 입력 후 : (colon) 또는 / (slash) 입력 후 명령 입력

편집 모드 단축키

편집 모드에서 명령 모드 전환은 Esc 키로

편집 모드 상태에서 커서 이동

  • 키보드 방향키 사용
  • 키보드의 h, j, k, l 키 사용

    h : 왼쪽
    j : 아래쪽
    k : 위쪽
    l : 오른쪽

내용 입력

  • i 키 : 현재 커서 위치에 입력 (헷갈리면 주로 이거 위주로 쓰는걸 권장)
  • a 키 : 현재 커서 위치 다음에 입력
  • o 키 : 현재 줄 다음줄에 입력
  • I 키 : 현재 줄 Home 위치에 입력
  • A 키 : 현재 줄 end 위치에 입력
  • O 키 : 현재 줄 이전줄에 입력

내용 수정

  • r 키 : 현재 커서위치 내용 한 글자만 수정
  • R 키 : 수정 상태 진입, Esc 키 입력 전까지 수정 상태 유지

내용 삭제

  • x 키 : 한 글자 삭제
    <숫자> X : 숫자 개수만큼 글자 삭제
  • dd 키 : 줄 단위 삭제
    <숫자> dd 키 : 숫자 개수만큼 줄 삭제

내용 복사

  • yy 키 : 줄 단위 복사
    <숫자> yy 키 : 숫자만큼의 줄 복사
  • p 키 : 붙여넣기
  • v 키 : 범위 지정
    y 키 : 지정 범위 내용 복사
    d 키 : 지정 범위 내용 삭제

내용 이동

dd 키를 이용하여 삭제 후 원하는 위치로 커서 이동 후 p 키 입력

검색 및 바꾸기

  • / <검색 문자열> : 현재 커서 위치 이후로 검색
    n 키 : 현재 위치에서 파일 끝 방향으로 다음 검색결과 이동
    N 키 : 현재 위치에서 파일 처음 방향으로 이전 검색결과 이동
  • s/ <문자열 1> <문자열 2> : 현재 커서 위치에서 첫번째 찾은 문자열 1을 문자열 2로 변경
  • %s/ <문자열 1> <문자열 2> : 파일 전체에서 문자열 1을 문자열 2로 변경

기타 편집 키

  • u 키 : undo
  • Ctrl + r 키 : redo

명령모드 단축키

편집 내용 저장

  • :w : 처음 vi 실행시 입력한 파일에 현재 편집내용 저장
  • :w <파일명> : 지정한 파일명에 현재 편집내용 저장
  • :wq : 처음 vi 실행시 입력한 파일에 현재 편집내용 저장 후 vi 종료

새로운 파일 로드

:e <파일명> : 파일명에 해당하는 파일 로드

외부명령 실행

  • :! <외부명령> : vi 실행상태에서 외부명령 실행결과 확인 ex) !ls -l
  • :!sh : 표준 shell 실행, 표준 shell에서 exit 입력하면 다시 vi로 전환
  • :!bash : 표준 bash shell 실행, bash에서 exit 입력하면 다시 vi로 전환

vi 환경설정

  • vi 실행 환경과 관련된 여러 내용을 환경 변수에 등록하여 vi 실행시마다 환경 변수 내용을 기반으로 작동
    변수 (variable) : 메모리 공간 ; 원하는 값 저장 및 변경 가능
    환경변수 (environment variable) : 명령 or 응용 프로그램의 원할한 동작 수행을 위해 미리 메모리에 저장된 값

  • set 명령을 통한 환경 변수 확인 및 변경
    :set all : 전체 환경 변수 내용 출력
    :set <환경 변수>=값 : 환경 변수 내용 변경, = 기호 오른쪽 값을 = 기호 왼쪽 환경변수에 저장
    ex) set tabstop=4
    현재 vi 상태에서 set 명령으로 환경변수를 변경/적용하면 현재 vi에서만 환경변수 내용 적용

  • vi 실행환경을 사용자가 원하는 형태로 구성하기 위해 별도의 환경설정 파일을 만들어 사용자 홈 디렉토리에 저장해두면 vi 실행 시 해당 환경 변수 기반으로 동작
    .vimrc : vi 환경설정 파일
    .exrc : vi 환경설정 파일
    (둘다 dot(.)으로 시작하니 히든파일)

실제 ~/.vimrc 실습파일에 적용한 주요 환경 변수

  • set number : line 번호 표시
  • set tabstop=4 : tab 간격을 4칸으로
  • set ai : auto indent (들여쓰기)
  • set si : smart indent
  • set hisearch : 검색시 하이라이트
  • set nocompatible : 방향키 이동 가능
  • set ruler : 상태표시줄에 커서 위치 표시
  • set title : 제목 표시
  • set mouse=a : 커서 이동을 마우스로 이동 가능하도록 설정
  • set bs=indent,eol,start : backspace 사용 가능
  • set showmatch : 매치되는 괄호 표시

3. TIF

이전에 혼자서 리눅스를 독학했을 적에는 아무리 해봐도 그 까다로운 vi 에디터에 도저히 적응을 못하겠어서 이후 뭔가 편집할 일이 있으면 항상 gedit으로만 편집하곤 했었다. 이번 강사님이 매우 잘 가르쳐주시는 덕분에 전보다는 vi 에디터랑 많이 친해진 느낌이다. 또 강사님께서 항상 뭔가 모든걸 몽땅 암기하려는 강박을 갖지 말라고 강조하시는게 마음 편하게 만들어줘서 좋다.

0개의 댓글