컴퓨터는 마우스, 키보드, 모니터 등을 쓴다.
리눅스의 터미널은 GUI가 개발되기 이전부터 컴퓨터를 조작하기 위해 사용 되었다. 터미널은 CLI.
GUI(Graphical User Interface)는 그래픽을 가지고 컴퓨터와 소통하는 것이다.
CLI(Command-Line Interface)는 글자의 입출력 만들어 컴퓨터와 소통한다. GUI가 할 수 있는 모든 작업은 CLI로 할 수 있다.
수많은 서버 컴퓨터들을 관리할 때 각각의 컴퓨터에 마우스, 모니터를 설치해서 사용할 수 없기 때문에, 원격으로 CLI를 이용해 서버 컴퓨터를 관리 할 수 있다.
프롬프트(Prompt)
터미널 프로그램에서 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간을 프롬프트라고 한다.
pwd: 현재 위치 확인.mkdir: 새로운 폴더 생성.ls: 특정 폴더에 포함된 파일이나 폴더 확인.cd: 폴더에 진입하기touch: 파일 생성하기cat: 파일의 내용을 터미널에 출력하기rm: 폴더나 파일 삭제. 폴더는-rf옵션 붙이기mv: 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 옮기기
mv <파일명> <폴더명>: <폴더>로 <파일>를 이동.
mv <파일명> <파일명>: 파일 이름 변경.cp: 폴더나 파일을 복사.
cp <원본 파일명> <복사할 파일명>: 내용을 복사하여, 파일을 생성하고 내용을 붙여 넣는다.
cp -rf <원본 폴더명> <복사할 파일명>:-rf를 붙여 실행한다.
PC가 항상 관리자 권한으로 실행되면 해킹을 당하기 쉽다. 따라서 사용자 계정을 컨트롤 했어야 한다. 무슨 프로그램을 하려면 관리자 권한이 있어야 하는 경우가 있다.
sudo: 관리자 권한을 획득하는 명령어
명령어 앞에 sudo를 넣게 되면 관리자 권한으로 실행된다. 시스템은 안전하게 보호한다.
Node.js는 JavaScript 런타임 중 하나다. 전에도 배웠지만, 어떤 프로그램이 동작할 때, 프로그램이 동작하는 곳이 런타임이다.
원래는 웹 브라우저에서 JavaScript가 사용되었지만, 이제는 웹 브라우저가 아닌 곳에서 Node.js를 통해서 JavaScript를 실행할 수 있다.
패키지 매니저처럼 node.js의 버전을 관리 할수 있도록 해준다. nvm을 사용하면 Node.js의 다양한 버전을 쉽게 설치하고, 사용한다.
nvm ls
nvm install 12.18.3
nvm use 버전 넘버
npm init으로 package.json을 만들 수 있다.
다른 사람이 만들어 놓은 검증된 코드(모듈)를 가져다가 사용한다. 그 모듈을 npm 모듈이라고 하고, 이에 대한 정보를 담아둔 곳이 package.json이다.
node.js 환경에서 외부 라이브러리를 다운로드하기 위해 대표적인 방법은 npm. npm(Node Package Manager)은 다운 받을 수 있는 모듈들이 모여있는 스토어.
macOS의 패키지 매니저가가 brew이듯, node.js 생태계의 패키지 매니저는 npm이다. 필요한 모듈은 npm에서 다운로드하자.
여러 사람이 같은 파일로 동시 작업하거나, 이전 상태로 다시 되돌려야 할 때. 버전 관리로 가능하게 할 수 있다. 분산형 버전 관리 시스템이다. 특정 시점에 생성된 백업 복사본을 스냅샷이라고 하는데, 하나하나 스냅샷을 만들어 주는 작업을 commit이라고 한다
Git Repository를 관리할 수 있는 클라우드 기반 서비스. Github를 통해 여러 사람들이 공유하고 접근할 수 있다
Fork: 다른 저장소에 있는 걸 내 원격 저장소로 가져오는 과정
Clone: Clone해서 내 컴퓨터로 가져올 수 있다.
Push:변경된 내용을 commit을 저장한 뒤, Remote Repository에 올려주는 작업.
Pull: Remote Repository에서 변경 사항이 있을 Local Repository로 가져오는 Pull 작업
이제는 코드가 틀리면 안된다는 생각을 하게 된다. CLI나 github에 잘못 쓰면 골치 아파질 거 같은 생각이 든다.