터미널 소개

터미널 은 텍스트 기반 명령을 입력하고 실행할 수 있는 인터페이스입니다. 그래픽 응용 프로그램 및 메뉴보다 터미널을 사용하여 일부 작업을 완료하는 것이 훨씬 빠르고 더 많은 명령과 스크립트에 액세스 할 수 있습니다.

왜 bash를 사용하는지 알아봅시다

우선 bash 란 무엇인가에 대해서 알아봅시다. bash는 Borune-again shell이 전체 이름입니다. 유닉스에서 사용하는 커멘드 셀의 일종으로 GNU프로젝트를 위해 만들어졌습니다. 초기의 유닉스 셸인 본 셸*Bourne shell)과 새로 태어났다는 뜻의 영어인 "born again" 이 두개가 합쳐진 이름입니다.

Bash는 1987년 브라리언 포스 가 만들었는데요. 1990년 이후에는 첫 레이미가 주로 관리하고 있습니다. Bash 명령어의 문법은 거의 대부분 sh와 호환되어 쓸 수 있는데요. 또한 ksh, csh에서 많은 단어 아이디어를 받아서 명령 히스토리, 디렉토리 스택, $RANDOM POSIX 형식 명령어 치환 등을 지원합니다. 또한 입력 중에 명령어나 파일 이름을 자동으로 완성해주는 기능도 지원합니다. Bash는 다양한 리눅스 시스템, 맥 오에스 텐의 기본 셸이며, 수많은 유닉스 계열 운영체제에서 동작합니다. 마이크로소프트윈도에서도 시그윈 프로젝트 등에 의해 이식되어 있습니다.

Bash는 GNUGPL로 배포되고 있으며, GNU 프로젝트 FTP 사이트를 비롯하여 수많은 인터넷 사이트에서 내려받을 수 있습니다.

Bash를 사용하는 이유는 간단하다는 장점이 가장 큽니다. 일반적으로 사용자가 원하는 모든 작업을 수행할 수 있죠. 쉽게 전환도 가능합니다.

VIM이 왜 필요한지 알아봅시다

vim을 주로 리눅스 공부할 때 접해 보시겠지만 GUI(Graphic User Interface)환경에 익숙한 현대 컴퓨터 사용자들은 vim을 접하고 어려움과 당황스러움을 겪게 됩니다. 일단 방향키부터 h,j,k,l을 사용해야하고 글을 쓰거나 명령(단축키)를 하기 위한 Mode들로 전환하여야 하는 인터페이스를 가지고 있습니다. 이러한 입력모드, 명령모드, 비주얼모드는 우리에게 익숙하지 않은 전혀 다른 단축키를 사용하기에 우리가 흔히 접할 수 있는 방식으로 사용이 불가능하기 때문에 반드시 공부를 하여야 사용할 수 있어 비교적 진입 장벽이 높습니다.

이렇게 보면 사용하기도 불편한 vim을 왜 사용한는 것인가 생각을 할 수 있는데 이에 대한 이유 를 알아보겠습니다.

1. 오른손의 이동을 최소화합니다

vim 에 대해 이해하기 위해 vi의 탄생에 대해서 알아야합니다. vi는 GUI환경이 우리에게 익숙하게 다가오기 훨씬 전인 1976년 최초로 세상에 발표되었습니다. 당시 한 줄씩 편집하는 방식이 아닌 전체 화면에서 편집하였기에 Visual Editor라는 뜻으로 vi가 되었습니다. 이 당시 마우스는 당연히 사용되지 않았으며 현재 사용되는 키 배치와 다른 키보드를 사용했었습니다. 이 때문에 커서를 이동하는 방향키도 지정되어 있어야하고 명령 단축키들도 현재의 키보드와 다른 배치를 가지게 되었습니다. 참고로 이러한 불편한 점 때문에 vim을 주력으로 사용하는 사용자들은 해피해킹이라는 UNIX계열 환경에 최적화 된 고가 키보드를 사용하여 작업 효율을 향상시키기도 합니다. 해피해킹 키보드는 vim뿐 아니라 라이벌 관계인 Emacs 에디터와 BSD UNIX계열의 운영체제인 애플의 매킨토시(MAX OS X)와도 궁합이 잘맞습니다. 이러한 특징을 보았을 때 현재의 직관적인 방향키와 마우스 등에 의해 편하고 익숙한 방식에 뒤떨어진다고 말할 수도 있습니다. 그렇지만 vim은 오른손의 이동을 최소한으로 감소시켜 준다는 것이 장점입니다.

하지만 이러한 특징은 현재의 직관적인 방향키와 마우스 등에 의해 편하고 익숙한 방식에 뒤떨어진다고 말할 수도 있습니다. 그렇지만 vim은 오른손의 이동을 최소한으로 감소시켜 준다 는 것이 장점입니다. 즉 굳이 방향키까지 오른손을 이동하지 않아도 쓸 수 있다 는 장점입니다.

2. 문서편집에 효율이 향상됩니다.

vim 은 키 조합을 이용한 명령이 적습니다. 바로 입력과 명령이 가능한 다른 에디터들과 달리 vim은 입력모드로 전환하여야 글자가 입력되고 일반모드로 전환하여 복사, 붙여넣기, 줄 삭제 등의 명령이 가능합니다. 각 Mode로 전환하는 것이 꽤나 번거롭겠지만 명령을 조합이 아닌 키 하나로 작업 할 수 있기 때문에 익숙해지고 나면 Ctrl이나 Alt등을 조합할 일이 줄어들고 한 손으로도 문서 편집이 가능해지져서 효율성이 올라갈 수도 있습니다.

3. 어디서든 사용 가능합니다.

vim 은 UNIX 계열 대부분 기본적으로 제공하고 있기에 따로 설치할 필요가 없다는 것이 장점입니다. 예를 들어 서버 기술자가 자신의 관할이 아닌 서버를 다루어야 할 상황 이 발생하였을 경우 남의 서버에 자신이 사용하는 에디터가 없어서 작업에 난감한 상황이 생길 수 있습니다. vim은 대부분의 UNIX계열에 기본적으로 설치되어 있기에 이런 난감한 상황이 생기지 않을 수있습니다. 이 뿐만 아니라 교육을 받으러 갔을 때도 교육 대부분은 VM(Virtual Machine)안에서 이루어지지만 네트워크가 연결되지 않아 주력 에디터를 설치하지 못할 수도 있고 혹여 주변 시선을 신경쓰는 분들은 혼자 vim을 다루지 못한다는 것에 민망함 을 가질 수 있습니다.

터미널로 어떤 것들을 할 수 있는지 알아봅시다

터미널은 원래 유닉스 기반의 대형 컴퓨터에서 사용자들이 컴퓨터에 접속하기 위해 사용했던 단말기를 의미 합니다. 즉 하나의 컴퓨터를 케이블로 연결해 여러명이 접속해 사용하는 방식이었습니다. 각각의 터미널은 대부부은 특별한 기능은 없고 모니터와 키보드를 가지고 있었으며 나중에는 확장되어 프린터나 마우스등이 연결되는 형태로 까지 발전 했습니다.

지금은 개인용 컴퓨터를 사용하기 때문에 더이상 과거와 같은 터미널 을 사용하지는 않습니다. 대신 원격으로 컴퓨터에 접속하거나 혹은 명령어입력을 통해 컴퓨터를 직접 제어 하기 위해 사용하는 소프트웨어를 터미널 혹은 콘솔(Console) 이라고 합니다.

모든 운영체제는 기본적인 터미널 프로그램을 내장하고 있으며 전문적으로 만들어진 별도 프로그램도 많이 개발되어 있습니다.

터미널에서 자주 사용되는 명령어를 알아봅시다

  1. cd 디렉토리명 - 해당 디렉토리로 이동 (change directory)
  2. ls - 조회하기(list). 윈도우 command prompt의 dir과 동일함.
  3. cd .. - 상위 디렉토리로 이동
  4. cd 또는 cd ~ - 홈디렉토리로 이동
  5. mkdir 디렉토리명 - 새로운 디렉토리 폴더 생성 (make directory)
  6. rmdir 디렉토리명 - 폴더 삭제 (remove directory)
  7. touch 파일명.확장자명 - 파일 생성
  8. clear 또는 cmd + K - 화면 클리어하기
  9. cp 대상파일명 변경파일명 타겟경로 - 복사 (copy)
  10. mv - 이동(move)
  11. rm - 삭제(remove)
  12. whoami - 내 정보 조회
  13. cat - 텍스트 파일 열기
  14. vim 또는 vi - vim 편집기 실행
  15. grep - 파일안 내용찾기
  16. sudo - 관리자 권한으로 실행

위에서 배운 부분들로 터미널과 VIM을 사용해보며 다음 챕터에서 시작할 코딩 준비해봅시다!!

1. 가상머신을 설치한 후 terminal을 실행합니다.

2. terminal에서 자신의 이니셜이 들어간 디렉토리를 생성하고 그 디렉토리로 이동합니다.

3. 그곳에서 명령어를 사용하여 코딩을 할 수 있는 폴더를 vim 명령어를 사용하여 열어봅시다!
( 파일이름은 자유로 지정 )