CentOS, vi editor

Yunes·2024년 4월 13일

linux study

목록 보기
2/3
post-thumbnail

CentOS

리눅스는 무료로 사용 가능한 유닉스다.
최초 버전은 리누스 토르발스가 최초로 작성하였고 그는 커널을 개발했다.

커널을 기반으로 만든 배포판들중 하나가 CentOS 이다.
셸은 커널과 하드웨어를 포함하는 것으로 명령어 해석기를 나타낸다. (bash, csh ... )

GNU 프로젝트

  • 리차드 스톨만에 의해 시작되었다. 이 프로젝트의 목표는 모두가 공유할 수 있는 소프트웨어를 만드는 것이었다.
  • 이를 통해 컴퓨터 프로그램의 복제, 변경, 소스 코드 사용에 대한 제한을 철폐하고자 했다.
  • GPL(General Public Licence) 을 따르는데 이는 자유 소프트웨어의 수정과 공유의 자유를 보장한다. -> 아무나 가져가서 수정, 판매해도 된다.
  • 프리웨어(무료 소프트웨어) 라는 개념을 넘어 진정한 자유에 대한 개념이다.
  • 리눅스도 GNU 프로젝트에 속했으나 오픈소스라서 점점 발전할 수 있었다.

커널

커널 버전이 3.17.4 라면

  • 3 은 주 버전
  • 17 은 부 버전
  • 4 는 패치버전이다.
  • 배포판에 포함된 기본 커널을 사용자가 직접 최신의 커널로 업그레이드할 수 있다.

레드햇 리눅스, CentOS 리눅스

  • 전 세계적으로 가장 유명한 배포판중 하나가 레드햇 사에서 제작한 레드햇 리눅스 Red Hat Linux
  • 상용 판매용 레드햇 엔터프라이즈 리눅스 -> 기업용
  • 공개된 레드햇 엔터프라이즈 리눅스 소스코드를 가져와 로고만 변경한 후 다시 컴파일해서 만든 것이 CentOS -> 비용 절감시 동일한 리눅스 버전인 CentOS 사용

editor

대부분의 리눅스 배포판에는 진짜 vi 가 없다. 대신 브람 무어나르(Bram Moolenar)가 만든 vim (Vi IMproved) 이라는 vi 확장판이 있고 대체적인 리눅스 시스템에는 vi 라는 이름으로 심볼릭 링크되어 사용된다.

gedit, vi (visual editor) 의 사용법을 알아보자.

명령 모드

vi 가 실해오디면 기본적으로 명령 모드로 시작된다. 이때는 대부분의 키가 명령어를 의미하게 된다.

입력 모드 ⭐️

  • i / a 문서를 작성

i 는 현재 커서의 위치부터 입력한다.
I 는 현재 커서 줄의 맨 앞에서부터 입력한다.
a 는 현재 커서의 위치 다음 칸부터 입력한다.
A 현재 커서 줄의 맨 마지막부터 입력한다.

ex 모드

  • : + 저장(w), 종료(q), 취소(i) 를 수행한다.

커서 이동

이동 방향
h왼쪽으로 이동
j아래로 이동
k위로 이동
l오른쪽으로 이동
w다음 단어의 시작으로 이동
b이전 단어의 시작으로 이동
e현재 단어의 끝으로 이동
0 (제로)현재 줄의 시작으로 이동
$현재 줄의 끝으로 이동
gg파일의 시작으로 이동
G파일의 끝으로 이동
Ctrl-f아래로 페이지 이동
Ctrl-b위로 페이지 이동
^현재 줄의 첫 번째 공백이 아닌 문자로 이동
Shift-^현재 줄의 첫 번째 문자로 이동
%대응하는 괄호, 대괄호 또는 중괄호로 이동
/패턴"패턴"을 앞으로 검색
?패턴"패턴"을 뒤로 검색
n같은 방향으로 마지막 검색 반복
N반대 방향으로 마지막 검색 반복
Ctrl-o이전 커서 위치로 이동
Ctrl-i다음 커서 위치로 이동

빈줄 추가

명령어실행
o현재 줄 아래에 빈 줄 추가
O현재 줄 위에 빈 줄 추가

텍스트 삭제

명령어삭제 내용
x커서가 위치한 문자 한 개 삭제
3x커서로부터 세 문자 삭제
dd현재 줄 삭제
5dd현재 위치로부터 다섯 줄 삭제
dW현재 위치로부터 다음 단어의 끝까지 삭제
d$현재 위치로부터 현재 줄의 끝까지 삭제
d0현재 위치로부터 현재 줄의 시작까지 삭제
d^현재 위치로부터 현재 줄의 첫 번째 비공백 문자까지 삭제
dG현재 위치로부터 파일 끝까지 삭제
d20G현재 위치로부터 20번째 줄까지 삭제

d 명령어는 텍스트를 단순히 삭제하는 것이 아니고 텍스트를 자른다. 삭제된 내용은 버퍼에 복사되어 p 명령어로 해당 내용을 다시 불러와 커서 앞, 뒤로 붙일 수 있다.

텍스트 자르기, 복사하기, 붙이기

명령어복사 내용
yy현재 줄 복사
5yy현재 위치로부터 다섯 줄 복사
yW현재 위치로부터 다음 단어의 끝까지 복사
y$현재 위치로부터 현재 줄의 끝까지 복사
y0현재 위치로부터 현재 줄의 시작까지 복사
y^현재 위치로부터 현재 줄의 첫 번째 비공백 문자까지 복사
yG현재 위치로부터 파일 끝까지 복사
y20G현재 위치로부터 20번째 줄까지 복사

u 명령어는 실행을 취소한다.

p 명령어는 해당 줄의 바로 다음 라인에 버퍼로 복사, 잘라진 내용을 붙여넣고,
P 명령어는 해당 줄의 윗 라인에 버퍼로 복사, 잘라진 내용을 붙여넣는다.

줄 합치기

  • J 명령어를 실행하면 EOL (End Of Line) 이 취소되는 것처럼 줄바꿈이 사라지고 윗 라인과 줄이 합쳐진다.

검색 및 치환

줄에서 검색

  • f 는 커서가 위치한 줄에서 특정 문자 위치로 커서를 검색할 때 사용한다. fa 는 해당 줄의 커서 위치를 기준으로 바로 다음에 오는 a 위치를 찾아 커서를 이동시킨다.

파일에서 텍스트 검색

  • / 에 이어 검색할 텍스트를 입력하면 파일에서 단어, 문장으로 검색된 위치로 커서를 이동시킨다.
  • n 명령어를 사용시 이전 검색어로 검색을 반복한다.

전체 검색 및 치환 ⭐️

  • :%s/Line/line/g : 파일 전체에서 Line 을 line 으로 치환한다.

  • vi 는 ex 명령어를 사용해서 해당 줄이나 파일 전체에서 검색할 내용을 찾아 바꾸기 작업을 수행할 수 있다.

  • : : 콜론 문자는 ex 명령어 ( q 종료, w 저장, i 취소 등... )를 실행한다.

  • % : 작업을 수행할 범위를 보여준다. % 기호는 첫 번째 줄에서 마지막 줄까지라는 의미다. 줄 범위를 지정하지 않으면 현재 라인에만 작업이 수행된다.

:3,8s/TEST/test/g
  • s : 작업을 지정한다. 이 경우 치환 작업이다.

  • g : 전체를 의미한다. g 를 사용하지 않으면 각 줄마다 첫 번째 검색 문자열만 변경된다.

  • :%s/TEST/CHANGE/gc : 마지막에 c 를 붙이면 각 검색마다 replace with CHANGE (y/n/a/q/1/^E/^Y) 가 나타나며 해당 텍스트로 변환할 것인지 물어본다.

실행
y예, 교체
n아니오, 교체하지 않음
a모두, 추가 확인 없이 모든 발생을 교체
q종료, 이 발생 또는 이후 발생을 교체하지 않음
ESC취소, 이 발생을 교체하지 않음
l이 발생을 교체하고 멈춤
ctrl-E한 줄 아래로 스크롤하고 더 많은 내용을 표시
ctrl-Y한 줄 위로 스크롤하고 더 많은 내용을 표시
profile
미래의 나를 만들어나가는 한 개발자의 블로그입니다.

0개의 댓글