터미널로 프롬프트(Prompt) 에 원하는 명령어를 입력해 컴퓨터와 소통할 수 있다.
pwd
: 현재 위치 확인하기
mkdir
: 새로운 폴더 생성하기
mkdir helloWorld // helloWorld 라는 폴더 생성
ls
: 특정 폴더에 포함된 파일이나 폴더 확인ls -l
: 파일이나 폴더의 포맷을 확인ls -a
: a는 all 이라는 뜻(숨어있는 폴더나 파일을 모두 출력)ls -al 또는 ls -la
drwxr-xr-x // d로 출력된 경우 폴더
-rw-r--r-- // -로 출력된 경우 파일
cd
: 폴더에 진입하기
touch
: 파일 생성하기
touch hi.txt // hi.txt 의 빈 텍스트 파일을 생성
cat
: 파일의 내용을 터미널에 출력cat hi.txt // hi.txt 의 파일 내용 출력
rm
: 폴더나 파일 삭제하기(이렇게 삭제한건 휴지통 거치지 않고 삭제)
- rm -rf
: 옵션 f는 질문을 받지 않고 지울 때 사용
mv
: 폴더나 파일을 이동하거나 이름을 변경할 때 사용
mv bye.txt bye/ // bye.txt 의 파일을 bye 폴더로 옮김
mv bye.txt hello.txt // bye.txt 파일명을 hello.txt 로 바꿈
cp
: 폴더나 파일 복사cp -rf bye hi // bye 폴더를 복사해서 hi라는 새로운 폴더 만듬
// -rf 는 rm 처럼 질문을 받지 않겠다 뜻
컴퓨터가 파일을 옮기거나 복사하는 방법
⇒ 파일의 내용을 잠시 저장 > 원래 위치의 파일 삭제 > 도착 폴더에 잠시 저장한 내용으로 새로운 파일 생성
~
~/helloWorld/hello/bye/
// ⇒ /Users/[username] 가 ~ 에 있는 것(간략하게 표시)
.
: CLI 에서의 .
은 현재 폴더, ..
은 현재 폴더보다 앞에 있는 폴더를 가르킴
./
: 현재 폴더 아래의 폴더로 진입하고자 할 때
cd ./hi // 현재 폴더 아래의 hi 폴더로 진입하는 명령
../
: 현재 폴더의 상위 폴더로 진입하고자 할 때관리자 영역을 실수로 변경하면 크으은일!!
절대 경로의 기준점인 루트 폴더(/)는 Linux의 관리자 영역
함부로 폴더를 생성하거나 삭제 등을 할 수 없음
whoami
: 현재 로그인된 사용자를 확인하는 명령어sudo
: 관리자 권한을 일시적으로 획득하는 명령어mkdir justMkdir // 일반으로 생성한 폴더
sudo mkdir sudoMkdir // 관리자 권한으로 생성한 폴더
password: // 타이핑을 해도 출력이 없음. 출력되지 않더라도, 입력되고 있음
ls // justMkdir sudoMkdir
****
// ls 로 보이는 폴더 정보
// drwxr-xr-x 2 로그인사용자이름 staff 64 3 29 19:47 justMkdir
// drwxr-xr-x 2 root staff 64 3 29 19:47 sudoMkdir
터미널에서 사용하는 에디터
VScode 같은 에디터인데, 나중에 AWS 와 같은 원격 서버 환경에서 원격으로 텍스트 파일을 편집해야 하는 경우 사용. => 터미널에서 자유자재로 다룰 수 있는 에디터가 하나쯤은 있어야 함
nano hello.js // hello.js 를 nano에서 열기
code hello.js // hello.js 를 nano에서 열기
Node.js는 JavaScript 런타임
nvm
로 설치 (별도의 프로그램으로도 설치 가능)nvm 은 Node.js의 다양한 버전을 관리하는 프로그램
nvm use 12.18.3
이라는 명령어로 버전을 변경할 수 있다.우리보다 잘하는 사람들이 만들어놓은 검증된 코드(모듈)을 Node.js 에서는
npm 모듈
이라고 하며, 이에 대한 정보를 담아둔 곳이package.json
=> 필요한 모듈을 전부 전달해주는게 아니라 package.json 으로 알려주고, npm을 이용해 다운
npm init
: 새로운 package.json 파일 생성
생성 후 파일에 들어갈 정보를 직접 입력해주어야 함.(입력하지 않으면 ()괄호 안의 기본값으로 생성)
npm init -y
: 위 과정을 모두 생략하면서 package.json 생성
npm install
: package.json에서 필요하다고 하는 모듈을 다운
이 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지가 적혀 있다.
ex) 코드 모양을 잡아주는 lint나 테스팅 모듈처럼, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들을 명시
특별히 개발이나 실행에 해당 모듈을 의존
한다고 해서, 의존성(dependency)
이라고 부름
JSON 형식에서 키에 적힌 것은 모듈 이름, 값은 버전
{
"devDependencies": {
"@mochajs/json-file-reporter": "^1.2.1",
"chai": "^4.2.0",
"mocha": "^8.2.0", // 테스트를 위해 필요
"sinon": "^9.0.3"
}
}
$ npm install mocha --save-dev
devDependencies와는 다르게 이 프로젝트가 돌아가기 위해 반드시 필요한 모듈들이 무엇인지가 적혀 있음.
ex) underscore 나 이후 배울 React 같은 것
npm install react
CLI에서 사용 가능한 명령을 기술
⇒ npm run 스크립트 이름
으로 실행
npm run start
: node.js 앱 실행npm run test
: 테스트 실행npm run lint
: 코드 검사