실제 PowerShell 텍스트 편집기로 파일 편집하는 방법

파일을 읽고 여러 잘못된 항목이 있는 것을 발견하는 스크립트를 실행했나요? 이런 상황에서 PowerShell 텍스트 편집기는 유용할 수 있습니다. 외부 편집기를 실행할 필요가 없으며 PowerShell을 떠나지 않고도 파일을 편집할 수 있습니다. 그게 얼마나 멋진 일인가요?

계속 읽으면서 PowerShell 내에서 텍스트 파일을 편집하는 세 가지 텍스트 편집기(Nano, Vim, 그리고 Emacs)를 설치하고 사용하는 방법을 배우게 될 것입니다. 이 자습서는 또한 각각의 장점을 다루어 어떤 것이 여러분에게 이상적인지 선택하는 데 도움이 될 것입니다.

시작해 봅시다!

필수 조건

이 자습서는 실습을 위한 것입니다. 따라오고 싶다면 다음 사항을 확인하세요:

  • A computer running on Windows 7 or higher. The examples in this tutorial will use Windows 10 version 21H1.
  • Windows PowerShell v3+ 또는 PowerShell Core v6+. 이 자습서는 Windows PowerShell 버전 5.1을 사용합니다.
  • 이 자습서를 작성할 당시 최신 버전의 Chocolatey (v0.11.2)입니다.

PowerShell 텍스트 편집기로 Nano 사용

만약 터미널 기반 텍스트 편집기가 처음이거나 파일을 빠르게 편집해야 할 때라면, Nano가 이상적입니다. Nano는 가볍고 직관적이며, 이 튜토리얼에서 소개되는 다른 고급 편집기들에 비해 가벼운 텍스트 편집 작업에 더 적합합니다.

Nano 설치

Nano를 설치하려면 아래 단계를 따르십시오.

1. 관리자 권한으로 PowerShell을 엽니다.

2. PowerShell에서 다음 choco install 명령을 실행하여 Nano 텍스트 편집기를 설치합니다. (-y) 스위치는 확인 프롬프트를 우회하고 패키지 설치를 진행합니다.

choco install nano -y

설치 과정은 아래 스크린샷과 비슷할 것입니다. 이 예제에서 보듯이, Nano 설치가 성공적으로 완료되었습니다.

Installing Nano

3. Nano를 설치한 후, 다음 명령을 실행하여 설치가 성공적인지 확인하고 현재 버전을 표시합니다.

nano --version

아래에서 볼 수 있듯이, 명령이 성공적으로 실행되고 컴퓨터에 Nano 버전이 표시되었습니다.

Verifying the Nano version

파일 편집 및 저장

Nano를 설치했으니, 이제 사용해 보는 것이 좋습니다!

1. 새 파일을 만들거나 기존 파일을 열려면 nano 명령을 실행하고 만들거나 열 파일의 이름을 입력하세요. 이 튜토리얼의 예제에서는 windows powershell 스크립트를 만들고 편집하게 됩니다. 해당 스크립트는 .ps1 파일 확장자를 사용합니다. 아래 명령은 현재 디렉토리에 mypowershellscript.ps1이라는 새 파일을 만듭니다.

nano myPowerShellScript.ps1

nano 텍스트 편집기가 powershell 내에서 열립니다. 아래 이미지에서 볼 수 있듯이 하단에 [new file]이라고 나와 있어서 nano가 새로운 빈 파일을 열었다는 것을 나타냅니다.

The Nano editor screen

모든 사용 가능한 단축키 명령을 보려면 키보드에서 ctrl+g를 눌러 도움말 문서를 표시하세요. ^로 시작하는 명령은 ctrl 키를 눌러야 한다는 것을 의미하고, m으로 시작하는 경우 alt 키를 눌러야 합니다.

2. 다음으로 키보드의 화살표 키를 사용하여 스크립트를 작성하세요. 예를 들어 다음 이미지에 표시된 대로 windows powershell 명령 write-host "hello world!"를 입력하세요. 이 명령을 실행하면 콘솔에 텍스트 “hello world!”가 출력됩니다.

파일 내용을 수정하면 편집기 오른쪽 상단에 modified라는 단어가 나타납니다. 편집 후 ctrl+o를 눌러 nano에게 파일을 저장하려고 한다고 알려주세요.

Using the Write-Out shortcut

3. nano는 변경 내용을 기록할 파일 이름을 입력하라고 요청합니다. 확인하려면 enter 키를 누르세요.

Saving the file

4. 마지막으로 nano를 종료하려면 ctrl+x를 누르세요.

만약 보류 중인 변경 사항이 있을 때 편집기를 종료하려고 하면, Nano가 변경 사항을 저장하거나 무시할 것인지 물어볼 것입니다. 저장하려면 Y를 누르고 단계 3에서와 같이 파일 이름을 지정하십시오. 그렇지 않으면 변경 사항을 버리려면 N을 누르십시오.

Exiting Nano

5. 이제 다음 명령을 실행하여 스크립트를 실행하십시오. 다음 명령은 파일이 C:\ 폴더에 있는 것으로 가정합니다.

& C:\myPowerShellScript.ps1

스크립트는 터미널에 ‘Hello World!’ 메시지를 출력합니다. 다음 이미지에 표시된 것처럼.

Output of the script

텍스트 검색 및 교체

이제 파일을 편집하고 저장하는 방법을 알았으므로, 더 고급 기능 중 하나를 배우는 시간입니다: 문자열 검색 및 교체!

문자열을 검색하려면 다음 단계를 따르십시오.

1. 먼저 Nano 편집기에서 텍스트 파일을 엽니다 (아직 열리지 않은 경우).

2. 텍스트 파일을 열었으면 키보드에서 CTRL+W를 눌러 Where Is 명령을 호출하십시오.

3. 다음으로 검색 프롬프트 옆에 검색할 문자열을 입력하고 Enter를 누릅니다. 아래 예제에서는 단어 Hello를 검색합니다.

Searching for a string

파일에 문자열이 있는 경우 커서가 해당 위치로 이동합니다. 아래에 표시된 것처럼.

Finding the string

문자열을 검색하고 바꾸려면 다음을 수행하십시오.

1. 키보드에서 CTRL+\를 눌러 검색 및 교체 메뉴를 엽니다. 교체할 문자열을 입력하고 Enter를 누릅니다.검색 (교체할 대상) 프롬프트 옆에 교체하려는 문자열을 입력한 후 Enter를 누릅니다.

Searching for the word ‘Hello’

2. 그다음, 대체할 내용 프롬프트에서 새로운 단어를 입력하고 Enter를 누르세요. 아래 예시에서 대체할 단어는 안녕하세요.가 될 것입니다.

Replacing the word

3. 마지막으로, 현재 인스턴스만 또는 파일에서 일치하는 단어의 모든 인스턴스를 대체할지 선택하세요. 선택지는 다음과 같습니다:

  • – 단일 인스턴스를 대체하려면 Y를 누르세요.
  • – 모든 인스턴스를 대체하려면 A를 누르세요.
  • – 이 인스턴스를 건너뛰려면 N을 누르세요.
  • – 대체 작업을 취소하려면 CTRL+C를 누르세요.

이 예시에서는 현재 인스턴스를 대체하려면 Y를 누르세요.

Confirming the search and replace operation

Nano는 대체 작업이 성공하면 대체된 발생 횟수를 나타낼 것입니다. 다음 이미지에서 보여진 대로입니다.

Replace occurrence count

4. 키보드에서 CTRL+X를 눌러 Nano를 종료하고 버퍼를 저장하려면 Y를 누르세요. 스크립트를 다시 실행하세요. 새로운 메시지 ‘안녕하세요, 세계!’가 터미널에 출력될 것입니다.

The script output

PowerShell 텍스트 편집기로 Vim 사용하기

Vim은 Nano보다 세션 복구, 구문 색상, 창 분할 및 자동 완성과 같은 더 많은 기능을 제공합니다. Nano는 빠른 파일 편집을 위한 것이며, Vim은 IDE에 대한 경량 대안입니다.

하지만 Vim이 제공하는 추가 기능은 더 높은 학습 곡선을 가지고 있습니다. 그러나 기운을 잃지 마십시오. Vim은 학습하기에 훌륭한 편집기입니다.

Vim 설치하기

이제 Vim을 설치하여 시작할 시간입니다.

1. 관리자 권한으로 PowerShell을 엽니다.

2. PowerShell 터미널에서 다음 명령을 실행하여 Vim 편집기를 설치합니다.

choco install vim -y

3. Vim 버전을 확인하려면 다음 명령을 실행합니다. vim --v

vim --version
Verifying the Vim version

파일 편집 및 저장

Vim을 설치했으므로 이제 파일을 편집하는 방법을 배우고 실습해 봅시다. 더 나아가기 전에 Vim에는 다른 모드가 있음을 알아야 합니다. 각 모드는 다르게 작동하며 편집기 내에서 수행할 수 있는 작업에 영향을 미칩니다.

세 가지 일반적으로 사용되는 모드는 다음과 같습니다.

  • Normal – Vim을 열면 기본 모드입니다. 이 모드에서는 텍스트 파일을 탐색할 수 있지만 새로운 텍스트를 추가할 수는 없습니다.
  • Insert – 이 모드에서는 파일을 편집할 수 있습니다. 이 모드로 진입하려면 키보드에서 i를 누르세요(대소문자 구분 없음). 정상 모드로 돌아가려면 ESC를 누르세요.
  • Command – 이 모드에서는 Vim에서 파일을 저장하거나 종료하거나 도움말 문서를 보는 등의 명령을 사용할 수 있습니다.

Vim에서 파일을 편집하는 방법을 살펴봅시다.

1. Vim에서 파일을 열려면 vim 명령 다음에 열 파일의 이름을 지정합니다. 아래 명령은 myPowerShellScript.ps1 파일을 엽니다.

vim myPowerShellScript.ps1

Vim 텍스트 편집기가 열리며 PowerShell 명령 ‘Write-Host’와 메시지 ‘Hello World!’은 Vim에서 구문 강조 색상을 지원하기 때문에 서로 다른 색으로 표시됩니다.

The Vim opening view in normal mode

Vim 도움말 문서를 보려면 :h를 입력하고 Enter 키를 누르세요. 정상 모드에서 : 문자를 누르면 Vim이 명령 모드로 전환되며, h는 도움말 파일을 열기를 의미합니다. 도움말 문서를 나가려면 :q를 입력하고 Enter 키를 눌러 정상 모드로 돌아갑니다.

다음으로, insert 모드로 들어가려면 i를 누르세요. insert 모드로 들어가면 편집기 하단에 -- INSERT -- 텍스트가 표시됩니다.

Vim in insert mode

3. 이제 insert 모드에 있으므로 파일을 원하는 대로 편집하세요. 화살표 키를 사용하여 편집기 내에서 커서를 이동시킬 수 있습니다.

4. 편집이 완료되면 Esc를 눌러 정상 모드로 돌아갑니다.

5. 명령 :wq를 입력하고 Enter 키를 눌러 파일을 저장하고 닫습니다. 명령 w는 파일을 저장하고 q는 Vim을 종료합니다.

Saving the file and existing Vim

텍스트 검색 및 교체

Vim에서 문자열을 검색하려면 다음 단계를 따르세요.

1. Vim에서 편집하려는 파일을 엽니다.

2. Vim 편집기에서 문자열을 검색하려면 아래 명령을 실행하세요. 여기서 <string>은 검색하려는 문자열입니다.

:/<string>

예를 들어, 단어 “Hello”를 검색하려면 다음과 같이 입력하세요:

:/Hello

Vim은 일치하는 단어를 강조 표시합니다.

일치하는 텍스트의 여러 인스턴스를 반복하려면 n을 눌러 다음 발생으로 이동하거나 이전 발생을 위해 N 키를 누르세요.

Vim highlighting the matching words

3. 마지막으로 전체 파일에서 문자열의 모든 인스턴스를 교체하려면 아래 명령을 실행하십시오. 여기서 <old>는 교체할 텍스트이고 <new>는 교체할 새 텍스트입니다.

:%s/<old>/<new>/g

예를 들어, 아래 명령은 단어 Hello를 단어 Goodbye로 교체합니다.

:%s/Hello/Goodbye/g
Performing a search and replace in Vim

결과적으로 Vim은 아래에서 볼 수 있듯이 텍스트를 교체합니다.

Vim showing the search and replace results

4. 명령을 입력하고 :wq를 눌러 파일을 저장하고 닫습니다. 스크립트를 다시 실행하면 새 메시지가 표시됩니다.

The script output

Emacs를 PowerShell 텍스트 편집기로 사용

Vim과 마찬가지로 Emacs는 Nano보다 더 많은 기능을 제공합니다. 또한 Emacs는 또한 통합 개발 환경 (IDE)입니다. Emacs의 일부 기능에는 구문 색상 지원, 동시에 여러 파일 편집 및 자동 들여쓰기가 포함됩니다.

이 튜토리얼의 다른 편집기와 비교하여 Emacs의 또 다른 이점은 Emacs가 모드 없이 동작한다는 것입니다. Emacs는 완전히 사용자 정의할 수도 있습니다. Emacs가 제공하지 않는 기능이 있다면 Emacs Lisp를 사용하여 직접 지원을 추가할 수 있습니다.

Emacs 설치

Emacs를 설치하려면 아래 단계를 따르십시오.

1. 관리자 권한으로 PowerShell을 엽니다, 아직 열지 않았다면.

2. PowerShell 터미널에서 다음 명령을 실행하여 Chocolatey를 사용하여 Emacs를 설치합니다. choco install emacs -y

choco install emacs -y

3. 설치한 Emacs 버전을 확인하려면 다음 명령을 실행합니다. emacs --version

choco install emacs -y

컴퓨터에 설치된 Emacs 버전이 표시된 아래 이미지와 유사한 출력이 표시됩니다.

Displaying Emacs version

파일 편집 및 저장

Emacs를 설치했습니다. 그다음은 무엇인가요? 텍스트 파일을 편집하여 Emacs를 실제로 사용해 보세요. 아래 단계를 따라 텍스트 파일을 편집하고 저장하세요.

1. Emacs에서 파일을 열려면 PowerShell에서 파일 이름을 포함한 emacs 명령을 실행합니다. 아래 명령은 emacs가 현재 터미널 창 (PowerShell) 안에 편집기를 열도록 하며 별도의 GUI가 아닌 것을 나타내는 -nw 스위치가 있습니다. emacs -nw myPowerShellScript.ps1

emacs -nw myPowerShellScript.ps1

편집기 상단에 여러 드롭다운 메뉴가 표시됩니다. Emacs 도움말 문서를 보려면 도움말 드롭다운 메뉴를 클릭하세요.

Opening a file in Emacs

2. 파일을 원하는 대로 편집한 후 변경 사항을 저장하려면 연속적으로 CTRL+XCTRL+S를 누르세요. 편집기 하단에 파일 저장 확인이 표시됩니다.

Saving the file

3. 편집기를 종료하려면 키보드에서 CTRL+X를 누른 다음 CTRL+C를 누르세요.

텍스트 검색 및 대체

이제 Emacs의 기본을 알았으니 검색 및 대체 작업을 실행하는 방법은 어떻게 되나요? 아래 단계를 따라 진행하세요.

1. CTRL+S를 누르고 I-search 프롬프트 옆에 검색할 텍스트를 입력하세요. 아래 예제에서는 단어 Hello를 검색합니다.

Searching for text

2. 검색 및 대체 옵션을 시작하려면 키보드에서 ALT+%를 누르세요 (ALT+SHIFT+5와 동일합니다).

3. 다음으로, Query replace: 프롬프트 옆에 검색할 텍스트를 입력하고 Enter를 누르세요.

Searching for the text to replace

4. 다음으로, 프롬프트 옆에 대체할 텍스트를 입력하고 Enter를 누르세요.

Entering the replacement text

5. 마지막으로, Query replacing <old text> with <new text>: 프롬프트에서 텍스트의 모든 발생을 확인하고 대체하기 위해 !를 누르세요.

Replacing all instances of the matching text

결과적으로, Emacs가 텍스트를 대체했습니다. 또한, Emacs는 편집기 하단에 텍스트가 대체된 횟수를 표시합니다.

Emacs replaced the search text

6. 키보드에서 CTRL+X를 누르고, 이어서 CTRL+C를 눌러 편집기를 종료하세요. 스크립트를 다시 실행하세요. 출력에는 새로운 메시지가 표시됩니다.

The script output

결론

이 튜토리얼을 통해 세 가지 PowerShell 텍스트 편집기의 기본 사용 방법과 각각의 장점을 배웠습니다. 다음에 터미널에서 파일을 편집해야 할 때, 외부 텍스트 편집기를 설정하는 데 시간을 허비하지 마세요. Nano, Vim 또는 Emacs를 열고 몇 가지 키 입력으로 변경 사항을 수행하세요!

이 튜토리얼에 없는 다른 텍스트 편집기를 아셨나요? 그리고 어떤 PowerShell 텍스트 편집기가 가장 좋으셨나요?

Source:
https://adamtheautomator.com/powershell-text-editor/