리눅스에서 vi가 필수적인 이유가 있을까요?

익명 사용자의 이미지

필수적이라는 표현이 적절하지 않는 것 같은데
왜 리눅스를 할 줄 아는가에 대한 지표중 하나가 vi가 있나요???

그냥 학부과정에서 할때는 에디터를 다운받아서 사용해도 되던데
vi로만 할 수 있는 작업들이 있는걸까요??

pynoos의 이미지

서버에 들어가서 직접 소스를 수정하면서 작업하기에 좋습니다.

익명 사용자의 이미지

그러게요. vi는 필수가 아닙니다. emacs가 필수죠. ㅎㅎ

뭐 농담이고, 에디터는 취향껏 선택해서 사용해도 됩니다.
그래도 vi를 익혀 둬야 하는 이유를 찾는다면, 어지간한 리눅스 머신에는 다른 건 안 깔려 있어도 vi는 있는 경우가 많거든요.

김정균의 이미지

단순히 프로그래밍을 하기에는 꼭 VI를 익혀야 할 필요는 없습니다. 요즘은 IDE들이 워낙 잘 되어 있어서.. 하지만, 개발 환경과 분리된 live 서버에서 서비스 debugging 같은 것을 위해서는 IDE 환경으로 연결이 불가능한 경우가 많습니다.

이런 경우 서버에 설치되어 있는 editor를 이용해야 하는데, 이 경우 vi 가 설치되어 있을 확률이 매우 높은 거죠.

그리고, 요즘은 devops 가 대세라서, 개발자들이 서버 설정에 참여하는 경우가 많습니다. 이 경우 대부분 서버의 editor를 사용하게 되므로 vi를 사용하게 될 확률이 매우 높아지게 됩니다. 그러므로 개발자든 SE든 서버 들어가 직접 작업을 해야할 이슈들이 생기기 때문에 vi를 익혀 두시는 것이 좋습니다. bash 와 vi 는 잘 다루도록 익혀 두시는 것이 매우 좋습니다.

익명 사용자의 이미지

한 15년 전이었다면 모를까 이제는 필수라고 할 이유는 없는 듯 합니다. 다른 분들께서 서버에 접속해서 사용할 경우를 말씀하셨지만, 어차피 ssh 접속을 할 수 있는 서버라면 그냥 로컬 데스크탑에 설치된 에디터를 통해서 파일을 편집할 수 있습니다. 널리 쓰이는 대부분의 에디터들이 ssh를 통해서 원격에 있는 파일을 다룰 수 있는 기능을 제공하니까요.

필수는 아니지만 알아두면 좋을 이유를 대자면, 우선 간단한 서버 관리 작업을 할 경우에는 편리할 수도 있습니다. 에디터를 따로 사용하는 경우보다 터미널에서 vi를 통해 작업하는 것이 작업의 흐름상 (또 심리적으로) 유기적인 경우가 종종 있습니다. 아마 다른 분들께서 하신 말씀이 이런 뜻이었겠지요.

다른 한 가지 장점은 vi에 충분히 익숙해졌을 경우에는 편집에 관한한 다른 에디터에 비해 vi가 훨씬 효율적이라는 점입니다. 유튜브에서 vim을 사용하는 live coding을 찾아보세요. 코드 내용과는 별개로 편집의 효율성과 속도를 보고 감탄할 경우들이 있습니다. 하지만 이것도 역시 필수라고 할 만한 이유는 안됩니다.

reistrem의 이미지

보안이 까다로운 회사나 기관에서 특정 프로그램만 서버접속을 허용한다거나 할때(에디터로 서버 접속을 못하게 강제한다거나 하는등의)
vi를 사용할 줄 알면 편하겠죠.

지니가다2의 이미지

여러군데 다녀봤지만 로컬 에디터를 사용해 접속하는 것 자체를 못하게 하는 곳은 못봤습니다. 하지만 ssh는 허용해도 sftp는 허용하지 않는 변태적인 곳은 있더군요. ssh 서버 설정에서 막아놔서 sftp 프로토콜은 사용 불가입니다. 그런 곳에서는 결과적으로 로컬 에디터들도 사용할 수 없지요. sshfs 마운트도 안되구요. 관리자에게 그렇게 한 이유를 물었는데 딱히 속시원한 답변이 없더군요. 딱히 보안 측면에서 잇점이 있을런지 잘 모르겠습니다.

김정균의 이미지

망분리가 적용된 환경에서는 거의 local editor 를 이용하기 힘이 듭니다.
심지어는 copy & paste 도 힘든 환경도 있습니다.

지나가다가의 이미지

필수적이라는 표현이 적절하지 않는 것 같은데...

실력도 없는게 자존심만 강해서,,,

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.