✅ VI 에디터란?

  • VIM
    • 리눅스에서 가장 많이 사용하는 텍스트 에디터
    • VI에 자동화와 시각화 메뉴 등을 추가한 프로그램

1️⃣ VIM 모드

  • 일반(명령) 모드
    • 처음 실행했을 때 혹은 입력/명령 모드에서 ESC입력 시 - 찾기, 커서이동 등
  • 명령 모드
    • 일반 모드에서 :(콜론) 입력 시 - 저장, 파일 읽기, VIM 설정 등
  • 입력(편집) 모드
    • 일반 모드에서 a 또는 i 또는 o 입력 시 - 내용 입력
  • Visual 모드
    • 일반 모드에서 v 입력 시 - 블럭 복사/붙이기

2️⃣ 핵심 명령어

  • 입력 : 입력 모드 진입 시, 왼쪽 하단에 "--INSERT--" 라는 문구가 출력
    • i : 포커스 잡힌 커서 위치에서 편집 모드 시작
    • a : 포커스 잡힌 커서 위치 바로 다음에서 편집 모드 시작
  • 삭제
    • x : 포커스 잡힌 커서의 한 문자를 삭제
  • 파일 저장
    • :w : 현재 오픈된 파일 저장
    • :q : 저장하지 않고 종료
    • :wq : 현재 오픈된 파일 저장 후 종료
    • :q! : 강제 종료
  • 블록 지정 및 복사
    • v : 단어 단위로 블럭 지정
    • Shift + v : 라인 단위로 블럭 지정
    • y : 지정된 블럭 복사
    • p : 복사된 블럭을 현재 커서에 붙여넣기
    • i : 직전 실행 작업 취소 (control + z 와 같음)
  • 편집
    • x : 커서의 한 문자를 삭제
    • dd : 커서의 현재 라인 삭제
    • Shift + j : 커서의 아래 라인과 현재 라인을 하나의 라인으로 합침

3️⃣ VIM 설정

  • 명령 모드에서 set all 입력 후 엔터 - 설정할 수 있는 모든 옵션이 나옵니다.

  • -/.vimrc 파일에 필요한 vim 설정을 할 수 있습니다.

  • 기본

작성법설명
:set [Option]옵션 켜기
:set no[Option]옵션 끄기
:set기본값이 아니 옵션 목록 보기
:set all모든 옵션 목록 보기
  • 들여쓰기(탭)
작성법설명
:set autoindent기존 줄 들여쓰기 만큼 새로운 줄도 들여쓰기
:set cindentC 언어용 들여쓰기 옵션.(범용으로 VIM을 사용 할 때는 autoindent만으로 충분함)
:set tabsize=#탭 크기를 #만큼 설정
:set expandtabs탭 대신 공백을 탭 크기만큼 입력
  • 검색 옵션
작성법설명
:set hlsearch검색된 문자열을 하이라이트해줍니다. CentOS에서 vim-enhanced 팩키지가 설치 되어 있어야 동작
:set ignorecase대소문자 구분하지 않고 검색합니다.
:set smartcaseignorecase와 함께 사용하여 검색문자열이 전부 소문자인 경우 대소문자 구분하지
않고 검색하며 대문자가 들어 있다면 대소문자 구분하여 검색
:set incsearch검색 문자열을 입력하면 실시간으로 검색
:set wrapscan끝까지 검색한 후 처음부터 다시 검색
  • 기타 옵션
작성법설명
:set number줄번호를 보여줌
:set ruler하단에 줄번호와 컬럼번호를 출력(CentOS에 포함된 VIM에서는 동작안함)

✅ 쉘스크립트란?

  • 쉘을 사용해서 프로그래밍을 할 수 있습니다.
  • 서버 작업 자동화나 운영을 위해 기본적으로 익혀두는 것이 좋습니다.
  • 사용 예)
    • 서버가 다운되었는데, 이유는 로그 파일이 너무 많이 쌓여서 서버 저장 공간이 없었기 때문이다.
    • 해결) 간단한 쉘 스크립트를 생성하여 주기적으로 실행해준다.
  • 파일의 첫 라인은 #!/bin/bash로 시작하여야 합니다.
  • 파일은 일반적으로 파일이름.sh로 생성합니다.
  • 주석 처리는 #을 사용합니다.

1️⃣ 변수 선언

  • 선언
    • 변수명=데이터
      • 변수명=데이터 사이에 띄어쓰기를 허용하지 않습니다.
    • 사용법
      $변수명
  • 리스트 변수(배열)
    • 변수명=(데이터,데이터,데이터 ...)
    • 사용법
      ${변수명[인덱스번호]}

2️⃣ 조건문

  • 연산자
    • expr : 숫자 계산
    • expr를 사용하는 경우 백틱을 사용해야 함
    • 연산자와 괄호 앞에는 역슬래시와 함께 사용
    • 연산자와 숫자, 변수, 기호 사이에는 space를 넣어야 함
num=`expr \(3 \* 5 \) /4 + 7`
  • 조건문 문법
    • if문
      • 명령문을 꼭 탭으로 띄워야 하는 것은 아님(then과 fi 안에만 있으면 됨)
if [조건]
then
	명령문
fi
  • if/else 문
    • 명령문을 꼭 탭으로 띄워야 하는 것은 아님(then과 fi 안에만 있으면 됨)
if [조건]
then
	명령문
else
  	명령문
fi
  • 조건
    • == : 문자가 서로 일치
    • != : 문자가 서로 일치하지 않음
    • -z : 문자가 null이면 참
    • -n : 문자가 null이 아니면 참
  • 수치 비교
    • -eq : 값이 같음
    • -ne : 값이 다름
    • -lt : 1이 2보다 작음 (1 < 2)
    • -le : 1이 2보다 작거나 같음 (1 =< 2)
    • -gt : 1이 2보다 큼 (1 > 2)
    • -ge : 1이 2보다 크거나 같음 (1 => 2)

3️⃣ 반복문

  • for문
for 변수 in [범위](리스트 또는 배열, 묶음 등)
do
  반복할 작업
done
  • 예제
    • 현재 디렉토리에 있는 파일과 디렉토리를 출력하라
#1/bin/bash
for database in $(ls)
do
	echo $database
done
  • while문
while [조건문]
do
	명령문
done
  • 예제
    • 현재 디렉토리에 있는 파일과 디렉토리를 출력하라
#1/bin/bash
lists=$(ls)
num=${#lists[@]}
index=0
while [ $num -ge 0 ]
do
	echo ${lists[$index]}
    index=`expr $index + 1`
    num=`expr $num - 1`
done
profile
#UXUI #코린이

0개의 댓글