[Linux] CLI, Brew, Node.js (nvm, npm)

Steve·2021년 4월 14일
0

웹개발 코스

목록 보기
5/59

CLI

GUI : Graphic User Interface
CLI : Command-Line Interface (Terminal)

CLI는 대량의 컴퓨터가 있는 환경에서 유리하다:

  • GUI는 I/O 소스(키보드, 마우스, 모니터)가 필요한데, 이를 수많은 컴퓨터에 일일이 부착하기 힘듦.
  • CLI를 이용해 서버 컴퓨터로 접속을 요청하면, 서버 컴퓨터는 요청한 컴퓨터의 출력소스(모니터)를 이용 -> 서버 컴퓨터로 직접 찾아갈 필요없이, 자신의 모니터로 서버 컴퓨터와 소통.

대부분의 서버 컴퓨터는 무료로 이용할 수 있는 Linux 운영체제를 사용.

Linux CLI Commands

  • prompt : 터미널에서 편집하는 한 줄의 공간
  • pwd: print working directory
  • mkdir: make directory
  • ls: list
    • -l: 포맷까지 출력
    • a: 숨겨져 있는 파일/폴더까지 출력
  • open(macOS): open current folder with finder
  • cd: change directory
  • touch: create new file
  • cat: display contents of a file
  • rm: remove
  • mv: move
  • cp: copy
  • sudo: 관리자 권한 획득
  • whoami: 현재 로그인된 사용자 확인
  • clear: clear CLI window
  • exit: exit CLI window
  • code: open in VScode
  • nano: edit on nano editor

절대경로, 상대경로 (Absolute Path, Relative Path)

절대경로 - 루트폴더부터 현재 위치까지의 경로
/Users/[username]/helloWorld/hello/

상대경로 - 현재 위치를 곳을 기준으로 한 그곳의 경로

/: 루트폴더 (절대경로의 시작)
.: 현재 위치한 폴더 (상대경로의 시작)
..: 상위 폴더
./: 현재 폴더 아래의 (폴더)
../: 현재 폴더 위의 (폴더)
~/: 루트폴더로부터 사용자 폴더(username)까지의 경로

관리자(root) 권한

리눅스 관리자의 가장 큰 특징은, 어떤 일이 있더라도 일반 사용자에게 관리자 권한(root)를 완전하게 넘기지 않는다.

  • 새 프로그램 설치, 변경, 삭제하는 경우에만 해당 권한이 부여된 관리자 권한을 전달한다.
  • 명확한 분리로 운영체제 보호

Package, Package Manager

리눅스 운영체제의 "Package"는:

  • 프로그램 파일
  • 프로그램 설치 파일
  • 프로그램 설치 설명서
  • 프로그램에 대한 정보를 담은 파일

을 담고 있는 것을 의미한다.

Package Manager - 앱스토어 같은 역할

  • 모든 패키지의 저장소 위치를 저장하고 있음. (각 패키지의 저장소를 일일이 찾아갈 필요가 없다)
  • 설치된 모든 패키지 관리(설치, 삭제, 변경, 업데이트 등)

brew (macOS 패키지 매니저)

  • brew update - brew 자체 업데이트
  • berw outdated - 업데이트 필요한 파일 조회
  • brew upgrade 프로그램이름
  • brew search 검색어
  • brew info 프로그램이름
  • brew install 프로그램이름
  • brew uninstall 프로그램이름
  • brew list - 설치된 프로그램 보기

Node.js

  • Runtime: 프로그래밍 언어가 구동되는 환경
  • JavaScript Runtime - 브라우저, node.js
  • Node.js 런타임의 등장으로,
    • 웹 브라우저에서만 작동했던 자바스크립트 코드를 터미널에서도 실행이 가능하게 됨.
    • 서버와 같은 다른 프로그램을 만들수 있게 됨.
node helloWorld.js // js파일을 node환경에서 실행

nvm

  • nvm(Node Version Manager)은 node.js의 다양한 버전을 관리하는 프로그램. (windows 환경에서는 사용불가)
  • nvm을 사용하는 이유:
    • 개발을 하다 보면 다양한 버전에 대응해야 하기 때문에 테스트를 위해 기존 버전을 삭제하고 다른 버전을 설치하는 과정 필요 없이, nvm을 사용해 간단한 명령어로 node version 을 손쉽게 옮겨다닐 수 있다.
nvm install 12.18.3 // 원하는 버전을 설치
nvm use 12.18.3 // 원하는 버전으로 전환

npm & package.json

"Do not reinvent the wheel"

이미 만들어진 것들을 조합해서 새로운 것을 만든다.

npm이란?

npm 은 node.js 의 앱스토어이다. npm (node package manager) 를 이용하여 남이 만들어놓은 모듈(node 에서는 "npm 모듈") 을 이용한다.

package.json

모듈의 대한 정보를 담은 파일

  • package.json 을 이용해 모든 모듈을 직접 전달하는 것이 아니라 필요한 모듈을 적어주고 npm을 통해 다운로드 받게 함으로써 모듈의 크기를 줄일 수 있다.
"scripts" // CLI 에서 사용 가능한 명령어
"dependencies" // 프로그램 구동에 필요한 모듈 
"devDependencies" // 프로그램 개발에 필요한 모듈

CLI 명령어 더 알아보기

  1. linux permission (권한)
  2. -r, -f 옵션
  3. cat head, tail, more, less (파일 내용 출력시)
  4. -help

느낀점

  • 명령어들이 꽤 많다. 터미널, brew, node, nvm, npm... 아마 실제로 프로젝트를 만들면서 익숙해질 것 같다.
  • 이번 레슨을 통해 왜 모든 서버가 리눅스를 쓰고(무료라서...) 런타임이 뭔지, 노드js가 뭔지 명확하게 알게 되었다. 서버를 굴리려면 무조건 언어가 cli 상에서 작동해햐 함을 알게 되었다.
profile
게임과 프론트엔드에 관심이 많습니다.

0개의 댓글