텍스트 복사

  • 삭제나 변경을 위한 명령 키를 사용할 때 텍스트가 복사됨
  • 또는 커서를 적당한 위치로 이동한 후 y 명령을 사용하여 복사함

텍스트 붙여넣기

  • p 또는 p 명령을 이용하여 (커서의 왼편/위 라인) 또는 (오른 편/아래 라인)에 붙여넣기를 할 수 있음

명령 키 설명
yy 현재 라인을 복사
5yy 현재 라인부터 다섯 라인을 복사
yw 커서의 위치부터 다음 단어의 앞까지 복사
y$ 커서의 위치부터 라인의 끝까지 복사
y0 커서의 왼쪽부터 라인의 앞까지 복사
y^ 위와 같으나 라인 앞의 빈칸은 복사하지 않음
yG 현재 라인부터 파일의 끝까지 복사
y) 커서의 위치부터 한 문장을 복사
y} 커서의 위치부터 한 문단을 복사

블록 지정하기

  • v 또는 V 명령을 사용하여 문자 또는 라인 단위로 지정함
    • 블록을 지정하고 싶은 곳에 커서를 이동하고 화살표를 사용하여 블록을 지정하고 삭제(x) 또는 복사(y)함
    • 커서를 이동한 후 p 또는 P 명령을 사용하여 붙여 넣기를 할 수 있음

명령 키 설명
v 비주얼 모드에서 한 번에 한 문자씩 선택
V 비주얼 모드에서 한 번에 한 라인씩 선택

명령의 취소와 기타 명령

  • 명령 모드에서 다음과 같은 명령을 수행할 수 있음

명령 키 설명
u 이전 변경 작업을 취소(undo)
ctr+r 앞서 취소했던 작업을 다시 하는 것으로 취소를 취소
:e! 마지막으로 저장한 후의 작업을 취소하고 다시 작업
:n n번째 라인으로 이동
J 또는 :j 현재 라인과 아래 라인을 합침
:!command vi를 사용하다 쉴 명령 command를 수행
:sh vi를 잠시 빠져나가 쉘 명령을 수행함. 쉘 명령으로 exit를 실행하면 다시 vi로 돌아옴
:se nu 화면 좌측에 라인 번호를 표시
ctr+g 화면 하단에 파일의 이름, 전체 라인 수, 현재 라인의 상대적 위치를 퍼센티지로 표시
:r filename 지정된 파일의 내용을 읽어 현재 커서의 아래 줄에 추가

검색 명령

  • 한 라인에서 검색할 때 명령 모드에서 f를 사용
    • 예를 들어 fa 명령은 커서 다음 위치부터 a를 찾음
    • 세미콜론(;)을 사용하여 검색을 반복

  • 파일 전체를 대상으로 검색할 때 다음 명령을 사용

명령 키 설명
/pattern 순방향으로 pattern을 검색하여 커서를 이동
/pattern pattern을 검색하고 그 뒤(+) num번째 라인으로 이동
?pattern 역방향으로 pattern을 검색하여 커서를 이동
?pattern?-num pattern을 검색하고 그 앞(-) num번째 라인으로 이동
n 이전 검색을 같은 방향으로 반복
N 이전 검색을 반대 방향으로 반복
  • 문자열을 검색할 떄 정규식을 사용할 수 있음

명령 키 설명
/hello 순방향으로 hello를 검색하여 커서를 이동
?goodbye 역방향으로 goodbye를 검색하여 커서를 이동
/The.*does 단어 The를 포함하고 그 이후에 단어 does를 포함하는 라인을 검색함. 점(.)은 임의의 한 문자와 매칭되며, 애스터리스크(*)는 앞의 문자(여기서는 임의의 한 문자)가 0개 이상 나타날 수 있음을 의미
?[pP]rint 단어 print나 Print를 역방향으로 검색함. []는 안에 포함하는 문자 중 하나와 매칭됨

locate 명령

  • 문자열 패턴이 (기본적으로 /로 시작하는) 파일 이름에 포함될 때, 해당 파일의 이름을 출력하는 명령
    • 절대 경로 상의 디렉터리나 파일 이름에 문자열이 포함되면 출력함
  • locate [options] pattern
    • updatedb 명령에서 만들어진 데이터베이스에서 검색함
    • 접근할 수 없는 파일은 출력이 안됨
    • 옵션 -b(또는 –basename)를 사용하면 절대 경로 중 마지막 이름에서만 검색함

find 명령

  • 검색 위치에서 조건에 맞는 파일을 찾고, 검색된 파일을 대상으로 명령을 수행할 수 있음
    • 파일의 이름, 소유자, 접근권한, 크기, 수정시간 등의 속성을 조건으로 사용할 수 있음

  • find [pathnames] [expresstion]
    • 경로를 지정하지 않으면 현재 디렉터리(서브 디렉터리 포함)를 기준으로 함
    • expression(조건이나 액션)이 주어지지 않으면 -print가 주어짐

Updated: