윈도우에서 텍스트 편집을 하려면 사용하는 메모장처럼 리눅스에서도 텍스트 편집을 위한 에디터가 존재하는데 오늘은 그중에서 nano, vi , vim, gedit에 대해서 설명해보려고 합니다
Nano 에디터
먼저 nano 에디터에 대해서 먼저 알아봅시다
리눅스 터미널에서 nano명령을 입력하면 위와 같이 nano에디터가 실행됩니다
nano filename
nano 에디터를 실행시킬 때 명령어 뒤에 저장될 파일 이름을 미리 지정해주면 나노 에디터를 종료할 때 설정한 이름으로 바로 저장할 수 있습니다
그리고 제가 nano에디터를 사용하면서 코드를 작성하거나 줄이 많을 경우에 몇 번째 줄인지 라인을 표시해주는 유용한 옵션이 있는데 nano명령어 뒤에 -c옵션을 주어 실행해주면 편리하게 작업할 수 있습니다
nano -c
nano에디터는 일단 CLI환경에서 초보자의 접근성이 높으며 명령어도 간단하며 기본적인 명령어 도움말을 에디터 하단에 보여주기 때문에 쉽게 사용할 수 있습니다
명령어를 조합할 때 에디터 하단에 ^라고 써져있는데 ^는 ctrl과 함께 조합하여 사용할 수 있습니다
한 가지 단점이 있다면 nano에디터를 사용 중인 터미널 해상도에 따라서 도움말이 잘려 보인다는 점이 있습니다
물론 사용에 익숙해지면 외워서 사용하기 때문에 굳이 도움말을 볼일이 없지만 처음 사용하는 입장에서는 엥? 이게 전부인가 다른 명령도 있었던 거 같은데 하면서 불편을 호소할 수도 있습니다
가로로 길게 터미널을 늘리게 되면 위에처럼 더 많은 도움말을 볼 수 있으며 자주 사용하는 간단한 명령어만 소개해드리겠습니다
저장하기
ctrl키와 x키를 조합하여 나가려고 하면 파일을 저장 유무를 물어보는데 y를 입력 후에 저장될 파일 이름을 설정 후 enter키를 누르면 저장할 수 있습니다
ctrl +x > y > enter
복사 붙여 넣기
alt + 6으로 복사 후에 ctrl + u로 붙여 넣을 수 있습니다
ctrl + k의 잘라내기 명령도 있습니다
문자열 검색
ctrl + w키를 입력하여 원하는 내용을 검색할수 있습니다
동일한 내용의 두 번째 검색은 enter키를 눌러서 다음 단어의 위치를 찾을 수 있습니다
vi와 vim
vim은 VI IMproved의 줄임말로 요즘엔 리눅스에서 vi를 입력해도 vim이 실행되는 경우가 있는데 vim은 vi의 향상된 버전이라고 생각하시면 됩니다
vi명령어를 입력하여 처음 실행시키면 이런 화면이 보이게 되며 텍스트를 입력하려고 해도 입력되지 않습니다
입력 모드 명령어인 i를 입력해주어야 텍스트 입력이 가능해집니다
nano에디터와 달리 명령어를 외워야 더 편리하게 활용할 수 있기에 초보자의 입장에선 난해하다고 생각할 수 있지만 개발자들에게는 익숙해지면 vi에디터만큼 편리한 에디터가 없다고 합니다
vi에서 자주 사용하는 명령어
텍스트 편집 모드
현재 줄 잘라내기 - dd
붙여 넣기 - p
실행 취소 - u
커서 이동
h : 왼쪽으로
j : 아래로
k : 위로
i : 오른쪽으로
←→↑↓ : 화살표 방향으로
명령 모드
(아래 명령들은 esc키로 명령 모드로 전환 후 입력해야 작동합니다)
강제로 명령을 수행하기 위해선 :뒤에! 를 붙여주면 됨
저장 후 종료 - :wq
저장 - :w
종료 - :q
행 라인 표시 - :set nu
커서 기준 뒤 문자열 검색 - :? 문자열
커서 기준 앞 문자열 검색 - :/문자열
더 많은 명령어 옵션은 터미널에서 에디터를 실행 전 man vi 명령으로 확인할 수 있습니다
gedit
앞서 소개한 nano, vi, vim와 달리 gedit는 gui방식으로 사용 가능합니다
윈도우에서 사용하고 있는 메모장과 유사하며 마우스를 사용하여 편집이 가능합니다
초보자에게도 윈도우에서 사용하던 메모장과 비슷하므로 접근성이 유용하고 편리하지만 gedit는 GUI 환경에서만 지원하는 에디터입니다
만약 다른 서버로 연결하여 gedit에디터를 사용하고자 할 경우엔 ssh가 아닌 vnc연결을 통해 GUI 환경에서 gedit를 사용할 수 있습니다
그럼 과연 어떤 에디터가 가장 좋을까요?
윈도우를 사용하다가 리눅스로 막 넘어온 시점에서 gedit를 사용하면 윈도우의 메모장과 흡사하므로 접근성이 빨라 좋지만 리눅스에서 환경에 따른 제약이 있기 때문에 CLI환경에서는 nano를 추천합니다
하지만 익숙해지면 정말 유용하게 사용할 수 있는 vi에디터 처음에는 조금 난해하다고 생각할 수 있지만 명령어도 단어의 약자를 따온 경우도 있으며 모든 명령을 외울 필요 없이 자신이 사용할 명령어는 자주 사용하면 금방 외워지기 때문에 vi에디터 또한 추천합니다
가장 좋은 건 무조건 정답이란 건 없기에 가장 좋은 건 모두 사용해보고 자신에게 맞는 에디터를 골라 사용하시면 됩니다