CLI: Command-line Interface (terminal에서 텍스트로 컴퓨터를 조작하는 방식)
GUI(Graphical Use Interface)에 비해 분명한 장점을 가진다.
- 클라우딩 컴퓨팅 같이 대량의 서버 컴퓨터가 필요할 때 자원이 적게 든다.
- 원격 작업 시 웬만한 네트워크 환경에서 안정적으로 작업할 수 있다.
Input Source : 키보드, 마우스, 카메라, 마이크 등 컴퓨터에 입력을 넣는 장치
Output Source: 모니터, 스피커, 하다못해 오케이 구글로 켠 전등까지 Input Source로 작성된 프로그램에 의해 보여지는 것
terminal은 I/O로, 모든 작업을 할 수 있다!
pwd
현재 위치(print working directory)
mkdir
폴더 생성
touch
파일 생성
ls
하위 내용(list)
ls -a
숨어있는 폴더를 포함해 모두 출력
ls -l
포맷 전부 표현
ls -la
모든 폴더 및 파일의 포맷을 출력 / 앞자리 d이면 폴더, -이면 파일
cd
위치 이동(change directory)
cat
파일 내용 출력 (파일의 모든 내용을 출력해서, 원격 서버에 접속해 큰 파일을 보려면 비효율적이다. 대안은 다음에 알아보자!)
mv
폴더 및 파일 이름 변경(전 이름 후 이름), 위치 옮기기(이름 변경하려는 위치) (move)
rm
파일 삭제 * CLI에서 삭제된 파일은 휴지통으로 가지 않고 즉시 삭제된다!
rm -rf
폴더 삭제 (r: reclusive, 대상이 폴더일때 / f: force, 질문 받지않고 지운다)
cp
파일 복사
cp -rf
폴더 복사
c.f. prompt
키보드의 입력을 확인하고, 편집할 수 있는 한 줄의 공간
c.f. 폴더나 파일의 공백이나 특수문자가 있으면 백슬래시를 이용해 적용한다.
(ex. hello world -> hello\ world)
절대 경로: 루트 폴더(/)로부터의 위치
~/
/Users/username/ 이라는 뜻(사용자 폴더 경로)
상대 경로: 현재 위치로부터
.
현재 폴더
..
상위 폴더
./
현재 폴더의 내부
../
상위 폴더의 내부
../../
2단계 상위 폴더
sudo: 관리자 권한을 획득하는 명령어
VS code를 터미널로 code filename.js
라는 명령을 통해 열 수 있다.
똑같이 터미널 기본 에디터인 nano도 nano filename.js
를 통해 실행시킬 수 있다.
Package Manager
: 여러 프로그램들의 설치, 변경, 삭제를 한데 모아 관리의 편리성을 높여주는 도구
brew help
brew update
brew install 프로그램 이름
brew uninstall 프로그램 이름
brew list
c.f. wget: URL을 통해 파일을 다운로드 받는 프로그램
Runtime
: 프로그래밍 언어가 구동되는 환경 ex. 웹브라우저
nvm으로 아래 코드들을 통해 쉽게 node의 버전을 관리할 수 있다.
nvm install --lts
node 설치, LTS: Long-Term Support
nvm ls
설치된 버전 확인
nvm install xx.xx.x
특정 버전 node 설치
nvm use xx.xx.x
사용중인 version을 변경
남이 만들어놓은 모듈, 외부 라이브러리가 모여있는 패키지 매니저
이에 대한 카탈로그(정보)는 package.json
에 담는다.
npm install
package.json에 작성된 모듈을 다운로드
npm run [script name]
package.json에 작성된 스크립트에 해당하는 작업을 실행 ex. npm run start
프로젝트을 실행시키기 위해 필요한 모듈, 실행 방법, 테스트 방법 등을 명시
프로젝트을 만들기 위해 사용한 모듈을 직접 담을 필요없이, 정보만 전달해 사용하고자 한다면 이 정보를 기반으로 다운로드해서 쓰면 되는 것!
(실제 이 모듈들은 디렉토리 내 node_modules
폴더에 저장된다.)
주말에는 터미널 테마를 바꿔보도록 하자