본문 바로가기

기타

[Unix] vi 에디터 사용하기 & Shell 명령

vi 에디터란?

  • 최초의 유닉스용 화면 편집기
  • 작고, 빠르고, 모든 유닉스/리눅스 시스템이 기본적으로 갖추고 있음
  • 몇가지 기본적 기능만 갖추고 있으나 유닉스의 다른 명령들과 결합하여 매우 다양하게 확장/응용 가능
  • 독특하지만 매우 빠르고 강력한 명령 체계

에디터 사용법

vi : 에디터 프로그램을 실행시작하라는 명령

vi myfile.c(파일이름) : myfile.c 파일을 만들어 vi 에디터프로그램 시작하는 명령

▶ vi를 시작하면 기본적으로 들어가는게 명령 모드이기 때문에 편집모드로 변경해야함

▶ (ex모드는 다른 파일을 읽어들일때, 편집을 마치고 파일을 저장할때 사용됨)

vi 작성모드 이동

  • 명령모드 → 편집모드 : 'i', 'a' 등의 명령 사용
    ▶ i를 누르면 커서위치부터 수정, a를 누르면 커서위치의 다음 위치부터 수정됨
  • 편집모드 → 명령모드 : 'esc' 명령 사용
  • 명령모드 → ex모드 : ':' 명령 사용
  • ex모드 → 명령모드 : ex모드의 명령 사용 후 자동 변환 혹은 'esc'명령 사용
  • 편집 모드와 ex모드간의 전환은 불가

vi 작동 모드 확인

  • 명령모드 : 화면 하단에 표시 없음
  • 편집모드 : 화면 하단에 '끼워넣기' 표시
  • ex모드 : 화면하단에 ':' 표시

vi 에디터 사용하기

1. 텍스트 편집

  • 명령모드에서 'i'명령을 눌러 편집모드로 들어간다
  • 현재 커서워치부터 텍스트 편집이 가능해진다

2. 파일 저장하기 & vi 끝내기

  • 편집이 끝났으면 'esc'누르고 ':' 눌러 ex모드로 진입
  • 파일 저장하기 : ex모드에서 'w' 명령
  • vi 끝내기 : ex모드에서 'q' 명령
  • ex모드에서 wq로 저장과 동시에 종료 가능
    (편집중인 파일 저장하지 않고 종료하려고 하면 'q!'눌러 강제 종료 가능)

3. 유닉스에서 컴파일 및 실행시키기

$ gcc test1.c [-o destination]

  • gcc test1.c(파일이름) 입력 시 : a.out이라는 이름으로 컴파일됨
  • -o destination을 붙여 입력하면 destination 이라는 이름으로 컴파일 가능
  • [ ] 의 의미는 있어도 되고, 없어도 된다는 의미로 쓰임

컴파일 실패 시, 오류 메시지가 뜸

 

$ ./destination

실행시키기. destination이 실행 파일의 이름

 

vi 에디터 명령어(명령 모드에서 사용해야함)

커서 이동 명령 

  • ctrl + f : 한 화면만큼 아래로 이동
  • ctrl + b : 한 화면만큼 위로 이동
  • ctrl + d : 화면 크기의 반 만큼 아래로 이동
  • ctrl + u : 화면 크기의 반 만큼 위로 이동
  • H : 화면의 첫 줄 첫 칸으로 이동
  • L : 화면의 마지막 줄 첫 칸으로 이동
  • M : 화면의 중간 줄 첫 칸으로 이동
  • ^ : 현재 줄의 제일 첫 단어로 이동
  • $ : 현재 줄의 마지막 단어로 이동
  • w : 한 단어씩 오른쪽으로 이동
  • b : 한 단어씩 왼쪽으로 이동
  • 15G : 15번째 줄로 이동
  • G : 파일의 제일 마지막 줄로 이동
  • /string : 'string'을 검색 -> 이후 'n'을 입력하면 검색된 다음 단어를 찾음

삭제 명령

  • x : 커서위치의 한 문자 삭제
  • 5x : 커서 위치부터 다섯 문자 삭제
  • dw : 현재 커서 오른쪽 한 단어 삭제
  • db : 현재 커서 왼쪽 한 단어 삭제
  • dd : 현재 커서가 위차한 줄 한줄 삭제
  • 15dd : 현재 커서가 위치한 줄부터 15줄 삭제

삽입 명령

  • o : 현재 커서위치 아래에 한 줄 생성
  • O : 현재 커서위치 위에 한 줄 생성
  • Y : 현재 커서가 위치한 줄 복사
  • 15Y : 현재 커서가 위치한 줄부터 15줄 복사
  • P : 복사한 내용을 현재 커서가 위치한 줄 아래에 삽입

기타 명령

  • u : 복구 명령 (바로전 명령의 실행 취소)
  • . : 바로 이전 명령을 다시 한번 실행
  • :%s/string1/string2/g : 문서 전체의 string1을 string2로 치환

 

UNIX SHELL 명령

List 명령

  • ls : 현 디렉토리 내에 존재하는 모든 서브디렉토리 및 파일들을 listing 하는 명령
  • ls -l : 각 서브디렉토리 및 파일에 관한 상세 정보를 함께 표시하는 명령
  • -rwxr-xr-x. 1 unix19011494 class 8416  9월  5 19:33 a.out 가 있을 때
    • -rwxr-xr-x. : 맨처음 문자가 - 이면 file , d 이면 directory를 나타냄. 이후 문자는 본인/같은 그룹에 속한 사람/그 밖의 사람이 해당 파일 혹은 디렉토리에 대해 읽기/쓰기 실행이 가능한지를 나타냄
    • 1 : 링크 개수를 나타냄 (이름이 몇 개 인지)
    • unix19011494 : 파일을 만든 사람의 ID
    • class : 만든 사람이 속해있는 그룹
    • 8416 : 파일 크기
    • 9월 5 19:33 : 업데이트한 날짜
    • a.out : 파일 이름

유닉스에서는 

  • 폴더 : directory
  • 상위 폴더 : parent directory
  • 하위 폴더 : subdirectory

File 관련

  • cat filename : 해당 file의 내용을 화면에 출력
  • more filename : 해당 file의 내용을 한페이지씩 화면에 출력. 'enter'혹은 'space bar'로 다음화면 출력
  • cp file1 file2 : file1의 내용을 복사하여 file2 생성
  • mv file1 file2 : file1의 이름을 file2로 변경
  • mv file1 dir1 : file1을 dir1으로 이동
  • rm filename : 해당 file 삭제

※ cp 할때 이미 있는 파일이름에 복사하면 그 파일은 사라므로 조심해야 함

※ rm 할때도 이미 하고나면 복구할 수 있는 방법이 없기 떄문에 주의해야함

 

Directory 관련 

  • mkdir dirname : 해당하는 이름의 directory 생성
  • cd dirname : 해당 directory로 이동
  • chmod 700 filename (or dirname) : 해당 file(혹은 directory)의 access permission 변경
    실행 파일&directory에 permission은 700
    프로그램 파일에 permission은 600

Directory 이동

  • home directory : $cd 또는 $cd ~
  • current working directory : .
  • parent directory : $cd ..
    $cd ../.. 하면 parent - parent directory로 올라감

'기타' 카테고리의 다른 글

VAE (Auto-Encoding Variational Bayes) 리뷰  (0) 2022.03.24
Quick DBD  (0) 2021.10.15
[AWS] 스토리지 활용 웹사이트 만들기  (0) 2021.08.10
[AWS] Amazon Linux 2 실행하기  (0) 2021.08.10
[Linux] 프로세스와 실행  (0) 2021.08.08