리눅스 CLI 에서 텍스트 파일을 편집하는 3가지 방법 (Feat. cat)

웹서버를 구성할 때에는 각종 설정 텍스트 파일을 편집할 일이 빈번합니다. 대부분의 웹서버가 리눅스로 구성되어 있기 때문에, 이러한 작업은 주로 CLI(Command line interface)에서 이루어집니다. 하지만, GUI(Graphical user interface) 위주로 텍스트 파일을 편집하는 우리들에게는 CLI에서의 텍스트 파일 편집은 생소하고 어렵게 느껴질 수 있습니다. 이번 포스팅에서는 리눅스 CLI에서의 텍스트 파일 편집을 위한 3가지 방법을 살펴보겠습니다.

nano (쉬움)

nano는 리눅스에 기본 설치되어있으며, 가장 간단하고 쉬운 텍스트 편집기입니다. 초보자들에게 추천하는 편집기입니다. 파일을 편집하려면 nano 파일경로 명령을 활용합니다.

343dcf4290254314bdf514356d57fd9c.jpg

  • 커서 이동 : 키보드의 화살표나 PageUp/PageDown 키를 사용
  • 파일 저장 : Ctrl+O
  • 편집기 종료 : Ctrl+X

9a1f716bba9e44c1b553c0c5c830de50.jpg

Vim (어렵지만, 강력!!!)

Vim은 많은 기능을 가진 텍스트 편집기로, CLI에서 가장 많이 사용되는 편집기 중 하나입니다. Vim 만의 독특한 단축키가 처음에는 사용법을 익히기 어렵지만, 익숙해지면 높은 생산성을 얻을 수 있습니다. 파일을 편집할려면 vim 파일경로 명령을 활용합니다.

84bef6f1e1774e039f8c5113d5dbe0b7.jpg

아래 화면에서 print 글자를 입력할려고 하면 에디터에 입력되지 않아서 당황하시는 분들이 많습니다. Vim은 크게 3가지 모드가 있으며, Insert 모드로 전환해야만 글자 입력이 가능합니다.

396314f23d82481aaf2ac47626f2ddfa.jpg

  1. i키를 눌러 Insert 모드로 전환하신 후에
  2. print("hello world")를 입력하시고
  3. ESC키를 눌러 Normal 모드로 전환하신 후에
  4. :wq 를 입력하고 엔터키를 눌러서 저장(w)하고 에디터를 빠져(q, quit)나오세요.

94a02c10585d4a0d994394dc9579d3e9.jpg

1. Normal 모드 (명령 모드)

  • Vim에서 기본 실행되는 모드이며, 텍스트를 편집하지 않는 상태입니다.
  • Normal 모드에서는 삽입, 복사, 붙여넣기 등의 다양한 명령을 지원합니다.
    • 커서 이동
      • h : 커서 좌로 글자 단위 이동
      • l : 커서 우로 글자 단위 이동
      • j : 커서 아래로 이동
      • k : 커서 위로 이동
      • w : 커서 우로 단어 단위 이동
    • Insert 모드로 전환
      • i : 현재 위치에서 "Insert 모드"로 전환
      • I : 현재 줄 처음 칸에서 "Insert 모드"로 전환
      • a : 바로 다음 칸에서 "Insert 모드"로 전환
      • A : 현재 줄 마지막 칸에서 "Insert 모드"로 전환
      • o : 바로 아래 줄에서 "Insert 모드"로 전환
      • O : 바로 윗 줄에서 "Insert 모드"로 전환
    • dd : 한줄 잘라내기
    • :w : 저장하기
    • :wq : 저장하고 편집기 종료하기
    • :q! : 저장없이 강제로 편집기 종료하기

2. Insert 모드

  • 일반적인 편집 모드입니다. 키를 타이핑하는 대로 파일내용으로 입력됩니다.
  • Normal 모드로 전환할려면 ESC 키를 누릅니다.

3. Visual 모드

  • 영역을 선택하여, 복사, 붙여넣기 등을 할 수 있는 모드입니다.
  • Normal 모드에서 v 혹은 V 혹은 Ctrl-v을 입력하여 전환합니다.
    • v : 글자 단위 영역 선택
    • V : 줄 단위 영역 선택
    • Ctrl-v : 컬럼 단위 영역 선택
  • 영역 선택 후에 y 키를 입력하면 복사가 되고, p키를 입력하면 붙여넣기가 됩니다.

vim에 대해서 대해서 살펴보고 싶으시다면, (도서) 손이 먼저 반응하는 Practical Vim 책을 참고하세요.

Tip

리눅스 CLI 명령행에서 set -o vi를 입력하시면, 명령입력을 VI 모드로 수행하실 수 있습니다. 쉘 설정파일에 넣어두시면 좋아요.

  • bash 쉘 : ~/.bash_profile
  • zsh 쉘 : ~/.zshrc

사용하시는 쉘은 echo $SHELL 명령으로 파악하실 수 있습니다.

cat

cat은 리눅스에서 파일 내용을 출력하는 명령어 중 하나로, 파일을 합치거나, 새로운 파일을 만들거나, 파일의 내용을 확인하는 등의 다양한 용도로 사용됩니다.

파일 내용 출력하기

가장 일반적으로 사용되는 cat 명령은 파일 내용을 출력하는 것입니다. 이를 위해서는 cat 파일경로 명령을 입력하면 됩니다.

5664614c0c1a4fea92cb3bbc0cf788f8.jpg

cat 파일경로1 파일경로2 파일경로3 명령으로 지정 파일들의 내용을 한 번에 출력할 수도 있습니다.

파일 합치기

cat 명령과 >를 섞어 쓰면, 출력 문자열을 다른 파일에 저장할 수 있습니다. 명령은 cat 파일경로1 파일경로2 파일경로3 > 저장할파일경로 포맷입니다.

a43a37fae92e43d0a898e6a9634f636a.jpg

> 은 리다이렉션(redirection)이라 부르며, 앞선 명령의 표준출력을 뒷 경로에 덮어쓰기(overwrite)합니다. 대개의 운영체제에서 지원해줍니다.

파일 추가하기

cat 명령과 >>를 섞어쓰면 출력 문자열을 다른 파일 끝에 추가(append)할 수 있습니다. >은 덮어쓰기로 동작하기에 여러번 수행해도 파일의 내용은 그대로이지만, >>은 끝에 추가되기에 수행한 만큼 파일 내용이 길어집니다.

f8cf485527d34c6f966dcafdfef77cfc.jpg

표준입력을 통해 파일에 저장하기

cat 명령에서 파일경로 지정없이 cat >> 저장할 경로처럼 수행하면 표준입력의 문자열을 지정 경로에 저장할 수 있습니다. 여러 줄을 입력할 수 있는 데요. 입력을 종료할려면 빈 줄에서 Ctrl-d를 입력해주세요.

4d9cb21013624c71b688b8816ea71d57.jpg

  • 마지막 편집일시 : 2023년 2월 26일 11:14 오전
  • 최초 생성일시 : 2023년 2월 26일 10:24 오전
🌟 본 포스팅이 도움이 되셨다면 댓글 하나 남겨주시고, 널리 공유도 부탁드립니다. 🌟

댓글