오늘 느낀 점
- 학습 자료를 꼼꼼하게 읽자 → 학습 자료에 답이 있는 경우 많음
- 처음 해본다고 쫄지말고 일단 해보자 → 생각보다 쉬운 문제 많음
Chapter1. CLI(Command-Line Interface)
- CLI(Command-Line Interface) : 가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식
- cf) GUI(Graphical User Interface): 그래픽(아이콘 등)을 통해 사용자와 컴퓨터가 상호 작용하는 방식
- GUI와 CLI는 사용자와 소통하는 방식에만 차이가 있기 때문에 변경사항이 있을 때에는 두 인터페이스에 모두 반영됨
- CLI 사용의 필요성
대량의 서버 컴퓨터를 설치해야하는 경우
→ 일일이 I/O 소스 (input & output 장치: 마우스, 모니터 등)를 설치 할 수 없음
→ CLI를 통해 서버 컴퓨터에 직접 작업을 요청하고, 나의 컴퓨터 출력 소스(모니터)에 출력
1-1. CLI 명령어 - 폴더 및 파일의 위치
- 터미널: 일종의 CLI
- 프롬프트(Prompt): CLI의 명령줄 대기모드로, 터미널 화면에서 글자가 입력되는 한 줄의 공간을 의미
현재 위치 확인하기
pwd
(print working directory): 현재 위치한 폴더(directory) 주소 나타내기
특정 폴더에 포함된 파일/폴더 확인하기
ls
: 특정 폴더에 포함된 파일 또는 폴더 확인하기
ls -l
: 폴더나 파일의 포맷을 전부 표현하기
- 하나의 파일 또는 하나의 폴더는 한 줄로 출력
- d로 시작하면 → 폴더
- -로 시작하면 → 파일
ls -a
: 숨어있는 폴더 또는 파일을 포함한 모든 항목 출력하기
ls -al
또는 ls -la
: 옵션(-) 옵션의 기능은 뒤에 오는 옵션 순서와 상관없음
파일의 모든 내용 터미널에 출력하기
cat 파일이름.확장자
폴더에 진입하기
cd 폴더이름
(change directory) : 프롬프트로 상호작용하는 폴더를 다른 폴더로 바꾸기 → 폴더에 들어가기
현재 위치를 GUI로 실행하기
open
새폴더 만들기
mkdir 폴더이름
(make directories)
새파일 만들기
touch 파일이름.확장자
: 파일 생성하기 (반드시 확장자도 함께 써주기!)
파일 삭제하기
rm 파일이름.확장자
: remove - 파일 삭제하기
- 휴지통을 거치지 않고 바로 삭제됨
- 단일 파일만 삭제 가능
- cf.
rm -rf 폴더이름
: 폴더 삭제하기
- r - recursive (폴더 삭제) f - force (질문을 받지 않음)
폴더나 파일 위치 옮기기/이름 바꾸기
mv [폴더나 파일의 이름] [도착 폴더의 이름]
: 폴더나 파일의 위치 옮기기
- ex) mv bye.txt bye/ → bye.text를 bye 폴더로 옮기기
- cf)
mv [폴더나 파일의 이름] [변경하고자 하는 폴더나 파일의 이름]
: 폴더나 파일의 이름 바꾸기
- 파일은 파일명 뒤에 확장자까지 써주기!
파일/폴더 복사하기
cp [원본 파일 이름.확장자] [복사할 파일 이름.확장자]
: 파일 복사하기
- cf)
cp -rf [원본 폴더 이름] [복사할 폴더 이름]
: 폴더 복사하기
도움말
명령어 이름 -h
또는 명령어 이름 —help
: 각 명령어에 포함된 옵션 확인하기
1-2. 관리자 권한과 경로
사용자와 관리자
- 사용자 : 프로그램 실행 가능 → 프로그램 변경 할 수 없음
- 관리자 : 프로그램 설치, 변경, 삭제 가능
관리자(root) 권한
whoami
: 현재 로그인된 사용자 확인하기
sudo CLI 명령어
: 관리자 권한 일시적으로 획득하기
사용자 권한
username 폴더 내에서만 자유롭게 사용
- ~/ : 사용자 폴더의 경로
- ~ : 루트 폴더(/)로 부터 사용자 폴더까지의 경로를 축약해서 표현
관리자 권한
- 다른 사용자 폴더는 물론 시스템 자체에도 접근 가능
- 프로그램 설치/변경/삭제 가능
- 관리자 권한으로 변경한 내용은 사용자 권한으로 해결할 수 없음
절대 경로와 상대 경로
절대 경로
기준점인 루트 폴더(/)를 기준으로 목적지까지의 절대적인 위치
→ 시작 지점부터 목표지점까지의 주소
상대 경로
현재 위치를 기준으로 목적지까지의 상대적인 위치
- . : 현재 위치
- .. : 상위 위치
- / : 폴더 내부
- ./: 현재 폴더 내부
- ../: 상위 폴더 내부
Chapter2. 패키지와 패키지 매니저
패키지
여러 파일이 담겨있는 하나의 박스(압축 박스) ex) 알집
- 기본 구성: 프로그램 파일, 프로그램 설치 파일, 프로그램 설치 설명서, 프로그램의 정보를 담은 파일
패키지 매니저
패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구 ex) 앱 스토어
Chapter3. Node.js
Node.js
런타임(runtime)
프로그래밍 언어가 실행되는 환경 → 어떤 프로그램이 동작할 때 프로그램이 동작하는 곳
ex) JavaScript의 런타임은 크롬, 사파리, Node.js 등
Node.js
웹 브라우저가 아닌 곳에서도 JavaScript 실행 가능
→ 웹 페이지 구성은 물론 서버 구축까지 가능
node 파일명.js
: Node.js 환경에서 JavaScript 파일 실행하기
nvm(Node Version Manager)
패키지 매니저처럼 node.js의 다양한 버전을 설치 및 관리할 수 있음
nvm ls
: 현재 nvm을 통해 설치한 Node.js의 버전 확인
nvm install 버전 넘버
: 특정 버전의 Node.js 설치하기
- 이미 설치된 버전을 삭제하지 않고 원하는 버전 설치
nvm use 버전 넘버
: 다른 버전의 Node.js 사용하기
npm(Node Package Manager)
필요한 모듈을 다운로드할 수 있는 모듈 스토어
npm 모듈(Module)
다른 사람들이 이미 만들어놓은, 검증된 코드
package.json
npm 모듈에 대한 정보를 담아놓은 곳 → 모듈 설명서
- 실제 모듈은 node_modules라는 폴더에 저장
- 프로젝트 코드 전달 시, 포함하고 있는 모듈을 모두 전달하지 않아도 됨
npm install
: package.json에서 필요하다고 하는 모듈 다운로드하기
- 완료되면 node_modules 디렉토리가 생김