[TIL] CLI(Linux), Node.js ,Git

Jade·2022년 9월 1일
1

Today I learn

목록 보기
8/78
post-thumbnail

Command-line-interface (<-> Graphical-user-interface)


  • GUI는 아이콘이나 폴더 같이 그래픽으로 나타낸 것.

  • prompt : 키보드 입력을 확인&편집할 수 있는 한 줄의 공간.

  • CLI 명령어

    pwd 현재 위치 확인 
    
    cp 폴더나 파일 복사 
    
    rm 폴더나 파일 삭제 
    
    mv 폴더나 파일의 이름 변경, 폴더나 파일의 위치 옮기기 
    
    ls 특정 폴더에 포함된 파일이나 하위 폴더 리스트 출력 (옵션: -a, -l)
    
    mkdir 새로운 폴더 생성
    
    touch 파일 생성 
    
    cat 파일 내용 터미널에서 출력 
    
    nano CLI 환경에서 사용되는 에디터 중 사용하기 쉬운 에디터 (vim, emacs 등도 있으나 어렵다)

파일 이름은 확장자를 포함해야 함.




관리자 권한과 경로

  • 사용자 계정과 관리자 계정이 나뉘어져 있는 이유는 보안을 위해서. (악성코드, 해킹)

  • 절대경로 : 기준점으로부터 절대적 위치. 여기서 기준점을 루트 폴더라고 함.
    (루트 폴더로부터 사용자 폴더까지 경로 축약한 형태를 '~'로 나타냄
    'cd ~' 명령어로 루트 폴더로 이동 가능)

  • 상대경로 : 특정 폴더 또는 파일 위치를 현재 위치 기준점으로 나타냄.
    (현재 위치한 폴더는 '.'으로 표현. 상위 폴더는 '..'으로 표현)

  • 관리자 권한 : 루트 폴더는 관리자 영역이므로 사용자 권한으로는 할 수 있는 게 없고, sudo와 같은 명령어를 사용해 일시적으로 관리자 권한 획득 가능.
    (whoami : 현재 로그인된 사용자 확인, ls -l : 특정 폴더나 파일이 사용자 또는 관리자 소유로 생성되었는지 확인 가능)




패키지, 패키지 매니저

  • 패키지는 여러 파일이 담긴 하나의 상자로 패키지 내에는 프로그램 파일, 프로그램 설치 파일, 프로그램 설치 설명서, 프로그램에 대한 정보 담은 파일 등이 있음.

  • 패키지 매니저는 패키지 설치, 변경, 삭제 등을 편리하게 해주는 도구. 패키지 매니저는 모든 패키지 저장소 위치를 알고 있기 때문에 독립적으로 프로그램들의 저장 위치를 알아내서 설치하지 않아도 됨. 프로그램 업데이트, 제거 등에도 사용 가능.





Runtime, Node.js, nvm, npm, package.json

  • runtime은 어떤 프로그램이 동작하는 곳을 말하는데, js의 대표적인 런타임은 크롬, 사파리와 같은 웹 브라우저였음. 이후 Node.js가 나타나면서 웹 브라우저가 아닌 곳에서도 js가 실행가능해졌음. (node.js도 js의 런타임)
  • nvm : node.js의 다양한 버전 관리.
    (nvm install 특정 버전 : 버전 설치, nvm use 버전 넘버 : 버전 변경)
  • npm : node.js의 패키지 매니저로 node.js 환경에서 외부 라이브러리 다운로드 하기 위해 사용. (모듈들의 스토어)
    (모듈은 개발 잘 하는 사람들이 만들어 놓은 검증된 코드이고, 하나의 프로그램은 여러 모듈들이 합쳐서 만들어짐. node.js에서는 npm 모듈이라고 부름.)
리눅스 패키지 매니저는 apt, macOS는 brew, node.js는 npm
  • package.json : 어떤 프로그램 실행하기 위해 필요한 모듈들, 프로그램 실행법, 테스트 법 등 명시.
    => package.json 통해서 프로젝트 전달할 때 모듈까지 전부 전달 안 해도 받는 사람이 알아서 필요한 모듈 설치 가능.
    => devDependencies(프로젝트 개발 환경에 필요한 모듈 목록), script(CLI에서 사용 가능한 명령 기술), dependencies(직접 실행에 필요한 모듈 목록) 등이 있음.

  • node_modules : 실제로 이 프로그램 실행시키기 위한 모듈들이 설치되어 있는 곳.





Git

  • Git은 코드의 효율적 관리를 위해 개발된 분산형 버전 관리 시스템.
    => 장점 : 파일 변경 이력 저장 가능, 이전 버전으로 돌아가기 가능, 변경 사항 확인 가능, 협업에 좋음, 백업 가능.
특정 시점에 생성된 백업 복사본을 '스냅샷'이라고 하고, 스냅샷을 만들어 주는 것을 'commit'이라고 한다!
  • Git repository : git으로 관리되는 폴더로 원격 저장소와 로컬 저장소 두 종류의 저장소를 제공.
	local repository : 내 컴퓨터의 저장소, 내 개인용 저장소. 
    remote repository : 원격 온라인 서버상 저장소, 여러 사람들과 공유 가능.
    fork : 다른 원격 저장소에서 내 원격 저장소로 프로젝트 가져옴. 
    clone : 내 원격 저장소에 있는 코드 내 컴퓨터로 가져옴. 
    push : 작업 완료하고 변경된 내용 commit 통해 저장한 후, 원격 저장소로 업로드.
    		(로컬 저장소 => 원격 저장소)
    pull : 원격 저장소에서 변경 사항 있을 때 로컬 저장소로 가져옴.         
  • Github : git의 저장소를 관리할 수 있는 클라우드 기반 서비스. (개발자들의 sns)




오늘의 오답노트

  1. CLI에서 파일을 삭제하면 휴지통으로 가지 않고, 즉시 삭제 된다!

  2. npm은 사용 전 npm init 해야 하는데, npm 패키지를 초기화 해주는 명령어라고 함. 새로운 프로젝트나 패키지 만들 때 사용.

  3. const range 와 const { range }의 차이점은 전자는 변수고 후자가 객체라는 점인데, 객체 안에는 함수도 넣어줄 수 있다. (require으로 모듈을 불러올 때) 함수를 바로 꺼내오고 싶을 때 'const { range } = require('range') 이렇게 쓸 수 있다. (뒤쪽 require에 들어간 range는 모듈임.)

profile
키보드로 그려내는 일

0개의 댓글