Vim 과 Nano 를 이용한 리눅스 텍스트 파일 편집

CompTIABeginner
지금 연습하기

소개

이 실습에서는 리눅스 환경에서 필수적인 두 가지 텍스트 편집기인 vi/vimnano의 사용에 필요한 기본 기술을 습득합니다. 이들은 리눅스 환경에서 가장 널리 사용되는 편집기이며, 각각 고유한 장점과 용도가 있습니다.

먼저 유닉스 계열 시스템에서 강력하고 어디에나 존재하는 도구인 vi 편집기부터 시작합니다. 파일을 생성하고, 입력 모드 (Insert Mode) 를 통해 텍스트를 입력하며, :w:wq와 같은 명령어로 작업 내용을 저장하는 방법을 배웁니다. 또한 이동 키를 이용한 탐색, 텍스트 검색, 단어 삭제와 같은 기본적인 편집 작업도 수행해 봅니다.

실습의 두 번째 부분에서는 초보자에게 안성맞춤인 사용자 친화적 편집기 nano를 살펴봅니다. 직관적인 인터페이스를 탐색하고, 기본적인 편집 작업을 익히며, 다양한 상황에서 vim 대신 nano 를 선택해야 하는 시점을 이해하게 됩니다.

이 실습을 마칠 때쯤이면 두 편집기 모두 능숙하게 사용할 수 있게 되며, 리눅스 작업 흐름에서 각 상황에 가장 적합한 도구가 무엇인지 판단할 수 있게 될 것입니다.

이 실습은 학습과 연습을 돕기 위해 단계별 지침을 제공하는 가이드 실습입니다. 각 단계를 완료하고 실무 경험을 쌓으려면 지침을 주의 깊게 따르십시오. 과거 데이터에 따르면 이 실습은 완료율 49%상급 수준 실습입니다. 학습자들로부터 98%의 긍정적인 평가를 받았습니다.

파일 생성 및 입력 모드에서 텍스트 작성

이 단계에서는 vi 편집기를 사용하여 새 텍스트 파일을 만들고 내용을 입력하는 방법을 배웁니다. vi(및 최신 버전인 vim) 는 유닉스 계열 운영체제에서 매우 강력하고 보편적인 텍스트 편집기입니다. 이 편집기는 여러 모드로 작동하는데, 가장 기본적인 두 가지는 명령을 내리는 명령 모드 (Normal Mode) 와 글자를 입력하는 입력 모드 (Insert Mode) 입니다.

먼저, 올바른 작업 디렉토리에 있는지 확인합시다. 이 실습의 모든 작업은 ~/project 디렉토리에서 진행됩니다.

  1. 터미널을 엽니다. 프롬프트에 project 디렉토리에 있다고 표시되어야 합니다. pwd(현재 작업 디렉토리 출력) 명령어로 전체 경로를 확인할 수 있습니다.

    pwd

    다음과 같은 출력이 나타나 현재 위치가 확인되어야 합니다.

    /home/labex/project
    현재 디렉토리를 보여주는 터미널
  2. 이제 vi 편집기를 실행하여 test.txt라는 이름의 새 파일을 만듭니다. 이 명령을 실행하면 vi가 시작되면서 터미널 화면을 점유하게 됩니다.

    vi test.txt

    터미널 화면이 지워지고 왼쪽 줄에 물결표 (~) 가 나열된 화면이 나타납니다. 이는 빈 줄을 의미합니다. 화면 하단에는 "test.txt" [New File]이라는 파일 이름이 표시됩니다. 현재 여러분은 명령 모드 (Normal Mode) 상태입니다.

  3. 텍스트 입력을 시작하려면 **입력 모드 (Insert Mode)**로 전환해야 합니다. 키보드에서 i 키를 누르십시오.

    i

    화면 하단에 -- INSERT --라는 문구가 나타나는 것을 확인하십시오. 이제 입력 모드에 진입했으며 파일에 직접 텍스트를 입력할 수 있는 상태가 되었습니다.

  4. 다음 문장을 입력하십시오.

    Now is the time for all good men to come to the aid of their country.

    입력 모드에서 텍스트가 입력된 vi 편집기

    현재 입력한 텍스트는 편집기의 메모리 버퍼에만 존재하며 아직 디스크에 저장되지 않은 상태입니다. 다음 단계에서는 작업 내용을 저장하고 편집기를 종료하는 방법을 배웁니다.

:w 및 :wq 를 사용하여 파일 저장 및 종료

이 단계에서는 변경 사항을 저장하고 vi 편집기를 종료하는 방법을 배웁니다. 이러한 작업은 **명령 모드 (Normal Mode)**에서 수행됩니다. 이전 단계에서 입력 모드 상태였으므로, 먼저 명령 모드로 돌아가야 합니다.

  1. 입력 모드에서 명령 모드로 전환하려면 Esc 키를 누르십시오.

    Esc

    화면 하단의 -- INSERT -- 표시가 사라지는 것을 볼 수 있습니다. 이제 키 입력이 텍스트 입력이 아닌 명령어로 해석되는 명령 모드 상태가 되었습니다.

  2. 이제 파일을 저장해 보겠습니다. 명령 모드에서 콜론 (:) 으로 시작하는 명령어는 화면 하단의 명령줄에 표시됩니다. 파일을 저장 (쓰기) 하려면 :w 명령어를 사용합니다.

    다음 순서대로 입력하고 Enter를 누르십시오.

    :w

    Enter를 누르면 vi가 버퍼의 내용을 test.txt 파일에 기록합니다. 하단에 다음과 유사한 확인 메시지가 나타납니다.

    "test.txt" [New] 1L, 79C written

    이 메시지는 1 행 79 자로 구성된 test.txt 파일이 성공적으로 저장되었음을 알려줍니다.

  3. 마지막으로 vi를 종료하려면 "quit"의 약자인 :q 명령어를 사용할 수 있습니다. 더 자주 쓰이는 명령어는 저장과 종료를 한 번에 수행하는 :wq입니다. 이미 명령 모드 상태이므로 다음을 입력하고 Enter를 누르십시오.

    :wq

    이 명령어는 최종 변경 사항을 저장한 후 vi 편집기를 닫고 터미널의 쉘 프롬프트로 돌아가게 합니다. 이제 터미널에 익숙한 명령 프롬프트가 다시 나타나며, test.txt 파일은 ~/project 디렉토리에 안전하게 저장되었습니다.

gg, h, j, k, l 및 /를 이용한 탐색과 검색

이 단계에서는 vi의 강력한 탐색 및 검색 명령어를 연습합니다. 이 명령어들을 사용하면 마우스를 쓰지 않고도 커서를 이동하고 원하는 텍스트를 효율적으로 찾을 수 있습니다. 이 모든 작업은 **명령 모드 (Normal Mode)**에서 수행됩니다.

  1. 먼저 test.txt 파일을 다시 엽니다. ~/project 디렉토리의 쉘 프롬프트에서 다음 명령어를 입력하십시오.

    vi test.txt

    편집기가 열리고 파일 내용이 표시됩니다. 커서는 아마도 첫 번째 줄의 맨 앞에 위치할 것입니다.

  2. 커서를 파일의 맨 처음으로 확실히 이동시키려면 gg 명령어를 사용합니다. 명령 모드에서 (확실하지 않다면 Esc를 누르세요) gg를 입력합니다.

    gg

    커서가 즉시 첫 번째 줄의 첫 번째 글자인 'N'으로 이동합니다.

  3. vi에서 커서를 이동하는 기본 방법은 h, j, k, l 키를 사용하는 것입니다. 이는 모든 vi 사용자에게 핵심적인 기술입니다.

    • h: 커서를 왼쪽으로 한 칸 이동
    • l: 커서를 오른쪽으로 한 칸 이동
    • j: 커서를 아래 줄로 이동
    • k: 커서를 위 줄로 이동

    이 키들을 눌러 문장 안에서 커서를 이리저리 움직여 보십시오. 이 탐색 방식은 모든 터미널 환경에서 동일하게 작동합니다.

  4. 이제 텍스트를 검색해 보겠습니다. / 명령어는 파일 내에서 앞방향으로 검색할 때 사용합니다. 'a'라는 글자가 나타나는 모든 위치를 찾으려면 다음 단계를 따르십시오.
    a. 명령 모드인지 확인합니다 (Esc 누름).
    b. /를 입력한 후 검색하려는 문자인 a를 입력합니다. 그 다음 Enter를 누릅니다.

    /a

    커서가 현재 위치 이후에 처음으로 발견되는 'a'로 점프합니다.

    c. 동일한 검색어로 다음 위치를 찾으려면 "next"의 약자인 n 키를 누르기만 하면 됩니다.

    n

    n을 여러 번 눌러 파일에 있는 모든 'a'를 순환하며 확인해 보십시오.

기본적인 탐색과 검색 연습을 마쳤습니다. 다음 단계에서는 텍스트를 삭제하는 방법을 배웁니다.

dw 로 단어 삭제 및 :q 로 저장 없이 종료

이 단계에서는 텍스트를 삭제하는 방법과 변경 사항을 저장하지 않고 vi를 종료하는 방법을 배웁니다. 이는 실수로 내용을 잘못 수정했을 때 마지막으로 저장된 상태로 되돌리기 위해 꼭 필요한 기술입니다. 이전 단계에서 열어둔 test.txt 파일이 여전히 vi에 열려 있어야 합니다.

  1. 먼저 삭제하려는 단어로 커서를 이동합니다. 명령 모드인지 확인하고 (Esc 누름), hl 키를 사용하여 커서를 time이라는 단어의 첫 번째 글자 위에 위치시킵니다.

  2. 커서가 timet 위에 있을 때, dw 명령어를 입력합니다. 이 명령어는 "delete word"의 약자입니다.

    dw

    화면에서 time이라는 단어와 그 뒤의 공백이 사라지는 것을 볼 수 있습니다. 문장이 어색해졌는데, 이는 다음 실습을 위해 의도된 것입니다.

  3. 이제 편집기 버퍼의 내용이 수정되었습니다. 이 삭제 작업이 실수였다고 가정해 봅시다. 잘못된 버전을 저장하는 대신, 변경 사항을 버리고 종료하겠습니다. 이때 사용하는 명령어는 :q!입니다. q는 종료를 의미하며, !는 저장되지 않은 변경 사항을 무시하고 강제로 실행하라는 의미입니다.

    a. 명령 모드인지 확인합니다 (Esc 누름).
    b. 다음 명령어를 입력하고 Enter를 누릅니다.

    :q!

    이 명령어는 즉시 vi 편집기를 종료하고 쉘 프롬프트로 돌아갑니다. :q!를 사용했기 때문에 time 단어를 삭제한 내용은 test.txt 파일에 저장되지 않았습니다. 파일을 다시 열어보면 time 단어가 그대로 남아 있는 것을 확인할 수 있습니다.

추가 연습을 위한 대화형 vimtutor 실행

이 단계에서는 vi/vim 기술을 실습을 통해 배울 수 있도록 설계된 대화형 튜토리얼인 vimtutor를 알아봅니다. 이 실습에서는 아주 기초적인 부분만 다루었지만, vimtutor는 모든 신규 사용자에게 강력히 권장되는 종합적인 자습 과정을 제공합니다.

  1. ~/project 디렉토리의 쉘 프롬프트 상태에서, vimtutor 명령어를 입력하고 Enter를 누르십시오.

    vimtutor
  2. 이 명령어를 실행하면 특별한 튜토리얼 파일이 vi로 열립니다. 파일 내용 자체가 모든 지침을 담고 있습니다. 텍스트를 읽고, 설명된 명령어를 튜토리얼 파일 안에서 직접 연습해 볼 수 있습니다. 임시 복사본 파일에서 연습하는 것이므로 안전하고 효과적인 학습 방법입니다.

    튜토리얼은 여러 레슨으로 나뉘어 있으며 완료하는 데 약 25~30 분 정도 소요됩니다. 본인의 속도에 맞춰 진행하면 됩니다.

  3. 튜토리얼을 마쳤거나 도중에 나가고 싶을 때는 일반적인 vi 세션과 동일하게 종료하면 됩니다. 튜토리얼 파일의 변경 사항을 저장할 필요가 없으므로 :q! 명령어를 사용하여 종료하는 것이 가장 좋습니다.

    a. Esc를 눌러 명령 모드인지 확인합니다.
    b. :q!를 입력하고 Enter를 누릅니다.

    :q!

이것으로 이번 실습의 직접 실습 부분을 마칩니다. 이 단계들을 통해 vi 편집기로 파일을 생성, 편집, 저장 및 탐색하는 데 필요한 근본적인 기술을 습득하셨습니다.

nano 편집기 소개

이 단계에서는 초보자나 빠른 수정 작업에 적합한 사용자 친화적인 텍스트 편집기인 nano의 사용법을 배웁니다. vi와 달리 nano는 화면 하단에 유용한 단축키 도움말을 항상 표시하며 별도의 모드 구분이 없어 입문자가 훨씬 직관적으로 사용할 수 있습니다.

  1. 먼저 nano를 사용하여 새 파일을 만들어 봅시다. ~/project 디렉토리의 쉘 프롬프트에서 다음 명령어를 입력하십시오.

    nano welcome.txt

    nano 편집기가 빈 파일과 함께 열립니다. 화면 하단에 사용 가능한 기능들이 메뉴로 표시되는 것을 확인하십시오.

  2. vi와 달리 nano에서는 모드 전환 없이 즉시 타이핑을 시작할 수 있습니다. 다음 텍스트를 입력하거나 복사하여 붙여넣으십시오.

    하단에 단축키가 표시된 nano 편집기 인터페이스
    Welcome to Linux Text Editing!
    
    This file was created using the nano editor.
    Nano is beginner-friendly and intuitive.
    
    Key advantages of nano:
    - No modes to switch between
    - Shortcuts displayed at bottom
    - Easy to learn and use
    - Perfect for quick edits
  3. 이제 파일을 저장해 보겠습니다. nano 의 저장 기능을 사용하십시오. 파일 이름을 묻는 프롬프트가 나타나며, 현재 이름인 welcome.txt가 이미 표시되어 있을 것입니다. Enter를 눌러 저장을 확정합니다.

    화면 하단에 몇 개의 행이 기록되었는지 알려주는 성공 메시지가 나타납니다.

  4. nano 를 종료하려면 종료 기능을 사용하십시오. 이미 파일을 저장했으므로 nano 는 즉시 종료되어 쉘 프롬프트로 돌아갑니다.

nano 와 vi/vim 비교: 상황별 편집기 선택

마지막 단계에서는 nanovi/vim의 주요 차이점을 배우고, 각 편집기를 언제 사용해야 하는지 이해합니다. 두 편집기를 모두 사용하여 차이점을 보여주는 비교 파일을 만들어 보겠습니다.

  1. 먼저 nano를 사용하여 비교 파일을 만듭니다.

    nano editor_comparison.txt
  2. nano 에 다음 내용을 입력하십시오.

    TEXT EDITOR COMPARISON: nano vs vi/vim
    
    NANO EDITOR:
    Pros:
    - Beginner-friendly interface
    - No modes to learn
    - Shortcuts displayed on screen
    - Immediate text input
    - Good for quick edits and simple tasks
    
    Cons:
    - Limited advanced features
    - Less efficient for complex editing
    - Not available on all systems
  3. 파일을 저장하고 nano 를 종료합니다.

  4. 이제 동일한 파일을 vi로 열어 내용을 추가해 보겠습니다.

    vi editor_comparison.txt
  5. 대문자 G를 눌러 파일의 맨 끝으로 이동한 다음, o를 눌러 새 줄을 만들고 입력 모드로 진입합니다. 다음 내용을 추가하십시오.

    VI/VIM EDITOR:
    Pros:
    - Extremely powerful and feature-rich
    - Available on virtually all Unix/Linux systems
    - Highly efficient once mastered
    - Excellent for programming and complex editing
    - Extensive customization options
    
    Cons:
    - Steep learning curve
    - Modal interface can be confusing for beginners
    - Requires memorizing many commands
  6. Esc를 눌러 명령 모드로 돌아온 후, :wq를 입력하여 저장하고 종료합니다.

  7. 완성된 비교 파일을 확인해 봅시다.

    cat editor_comparison.txt

    두 편집기를 통해 추가된 모든 내용이 포함된 전체 비교 결과가 표시됩니다.

각 편집기 사용 시점:

  • 이럴 때 nano 를 사용하세요:

    • 리눅스 텍스트 편집이 처음일 때
    • 빠르고 간단한 수정이 필요할 때
    • 가끔씩 설정 파일을 수정할 때
    • 복잡한 것보다 직관적인 인터페이스를 선호할 때
  • 이럴 때 vi/vim을 사용하세요:

    • 대규모 프로그래밍이나 복잡한 텍스트 조작을 할 때
    • 원격 서버에서 작업할 때 (vi 는 거의 모든 시스템에 기본 설치되어 있음)
    • 매크로, 플러그인, 복잡한 찾기/바꾸기 등 고급 기능이 필요할 때
    • 명령어를 익힌 후 작업의 효율성과 속도를 극대화하고 싶을 때

두 편집기 모두 리눅스 사용자에게 소중한 도구이며, 두 가지 모두를 다룰 줄 알면 다양한 상황에서 유연하게 대처할 수 있습니다.

요약

이 실습에서는 리눅스의 필수 텍스트 편집기인 vi/vimnano의 사용법을 배웠습니다.

vi/vim을 통해서는 모드형 편집의 기본 개념을 익히고 명령 모드와 입력 모드 사이를 전환하는 방법을 배웠습니다. 파일 생성, 텍스트 입력, :w:wq를 이용한 저장, 이동 키 (h, j, k, l) 를 이용한 탐색, /를 이용한 검색, dw와 같은 명령어를 이용한 편집, 그리고 :q!를 이용한 저장 없는 종료를 연습했습니다. 또한 지속적인 학습을 위한 대화형 vimtutor의 존재도 확인했습니다.

nano를 통해서는 텍스트 편집에 대한 보다 초보자 친화적인 접근 방식을 경험했습니다. 모드에 대한 걱정 없이 파일을 생성하고 편집했으며, 화면 하단에 표시되는 단축키와 직관적인 인터페이스를 활용하여 저장 및 종료와 같은 기본 작업을 수행했습니다.

핵심 요약:

  • nano는 직관적인 인터페이스와 가시적인 단축키 덕분에 초보자와 빠른 수정 작업에 완벽합니다.
  • vi/vim은 복잡한 편집 작업에 더 강력하고 효율적이지만, 학습 시간이 더 필요합니다.
  • 두 편집기 모두 가치 있는 도구입니다. 단순함이 필요할 때는 nano 를, 강력한 기능과 범용성이 필요할 때는 vim 을 선택하십시오.
  • 각 편집기의 적절한 사용 시점을 이해하면 다양한 리눅스 환경에서 더 효율적으로 작업할 수 있습니다.

이제 자신의 필요에 맞는 텍스트 편집기를 선택할 수 있는 기초를 갖추었으며, 두 도구 모두에서 실력을 계속 쌓아나갈 수 있습니다.