Command-Line Interface
nano : 텍스트 에디터
npm : 패키지 매니저
nvm : Node.js의 버전관리 매니저
Node.js : Javascript의 또다른 실행환경
Git : 분산 버전 제어 시스템
Linux : 오픈 소스 유닉스 계열 운영체제
※GUI : Graphical User Interface
터미널이란
- 터미널은 CLI 으로, 입력하는 글자와 출력되는 글자로 컴퓨터와 소통한다.
- 터미널에서 키보드의 입력을 확인, 편집할 수 있는 한줄의 공간 → 프롬프트(Prompt)
- CLI로 생성한 폴더/파일 → GUl에서 확인 && GUI로 작업한 내용 → CLI 확인 가능
CLI 명령어
※ 폴더/파일 명에 공백(띄여쓰기) or 특수문자가 있을 경우 → 백슬러시() 적용 ex.Hello\ World
터미널 실행하기
- 스포트라이트(단축키: (커맨드 키, ⌘) + (스페이스 키))에 Terminal 입력
Pwd(Print Working Ditectory) : 현재위치 확인하기
- Dirctory : 폴더
mkdir(Make Directory) : 새로운 폴더 생성하기
- mkdir + 생성할 폴더이름
ls(list) : 특정 폴더에 포함된 파일이나 하위 폴더 확인하기
Is
: 기본형ls -l
: 폴더나 파일의 포맷을 전부 표현ls -a
: (all) 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력ls -al
또는ls -la
d~
: ls를 통해 출력되는 결과로, 폴더를 말함(cd로 진입 가능)- ~
:ls를 통해 출력되는 결과로, 파일를 말함(cd로 진입 불가능)
open : 탐색기로 열기
cd(Change Directory) : 폴더에 진입하기
- 프롬프트로 상호작용하는 폴더를 다른 폴더로 변경한다는 의미
- cd + 열고싶은 폴더명
touch : 파일 생성하기
- touch + 생성할 파일 (ex. touch hi.txt)
- 주의! 폴더가 아님
cat : 파일의 내용을 터미널에 출력하기
- cat + 확인할 파일(ex. cat hi.txt)
- 텍스트파일 맨끝에 이상한 기호가 들어가 있다면 한 줄 끝에 엔터를 누르지 않아서임
- 이어지는 파일을 순서대로 읽고 터미널에 출력한다.
→ cat t1.txt t2.txt t3.txt ⇒
Hellorm(remove) : 폴더/파일 삭제하기
- 파일 삭제 : rm 파일명 → ex. rm bye.text
- 폴더 삭제 : rm -rf 폴더명 → ex. -rf bye
- 옵션
-
: 파일을 뜻함- 옵션
r
: recursive, 폴더를 지울 때 사용- 옵션
f
: force, 질문을 받지 않고 지울 떄 사용
mv(move) : 폴더/파일의 이름 or 위치 변경
- 위치 변경 :
mv
파일의 이름
도착 폴더의 이름
→ bye.txt bye/
이름 변경 : mv
폴더/파일의 이름
변경할 폴더/파일의 이름
→ bye.txt helloworld.txt
cp(Copy) : 폴더나 파일을 복사하기
파일 복사 : cp
원본파일 이름
복사할 파일 이름
폴더 복사 : mv
-rf 원본폴더이름
복사할폴더 이름
❗️ ./
: 현재폴더의 경로(=현재 폴더 아래의)
`../` : 상위 폴더로 이동하기 위한 상대경로 → ex.hello../
`~/ /` : 루트폴더, 상위 폴더의 절대경로 → ex.~/hello/
❗️점(.) : 현재폴더를 슬래시(/)는 폴더 내부를 나타낸다
➕ -h, —help 옵션 찾아보기!
관리자 권한과 경로
프론프트에 명령어
whoami
: 현재 로그인된 사용자 확인
**sudo**
: 관리자 권한을 획득하는 프론프트 명령어
- CLI 명령어 앞에 작성 → 관리자 권한을 일시적으로 획득하는 명령어
- 한시적으로 권한 획득 → 항상 비밀번호와 함께 사용
- 관리자권한을 통해 : 사용자가 프로그램을 설치/변경/삭제하는 권한을 차단 → 시스템을 안전하게 보호
⇒ sudo 명령어로 폴더 생성 시, 관리자의 영역인 root 폴더로 생성된다.
텍스트에디터 : nano
파일 열기 :
nano 파일이름
패키지와 패키지 매니저
- 패키지
- 일종의 압축파일
- 구성
- 프로그램 파일
- 프로그램 설치파일
- 프로그램 설치 설명서
- 프로그램에 대한 정보를 담은 파일
brew 명령어
- brew 자체 업데이트:
brew update
- 업데이트 필요한 파일 조회:
brew outdated
- 프로그램 업그레이드(업데이트):
brew upgrade 프로그램 이름
- 프로그램 검색:
brew search 검색어
- 프로그램 정보 확인:
brew info 프로그램 이름
- 프로그램 설치:
brew install 프로그램 이름
- 프로그램 삭제:
brew uninstall 프로그램 이름
- 설치된 프로그램 보기:
brew list
런타임 : 프로그래밍 언어가 실행되는 환경
- Javacript의 대표적 런타임
- 웹 브라우저 : 크롬, 사파리 → 주된 용도 : 윂페이지 구성
- 새로운 런타임 : Node.js → 웹페이지 구성을 넘어 서버를 구축하는 등 JS의 활용폭이 크게 확장되었다.
Node.js와 nvm 그리고 npm
package.json
장점 :
- 프로젝트 코드 전달 시, 포함하고 있는 모든 모듈을 전달하지 않아도 됨
- 따라서 협업에 유리하다.
특징 : 의존성(depenency) : 실행 시, 해당 모듈을 의존한다.
→ 프로그램 실행과 관계없이 오로지 개발을 위해 필요하다.
- devDependencies : 실제 프로젝트 동작에 직접적인 영향주지 않는 모듈
- dependencies : 프로젝트가 돌아가기 위해 반드시 필요한 모듈이 적힘.
- script :
npm run <script name>
과제 : 짝수생성기
cd ~/Downloads/fe-sprint-cli-practice-main
node indext.js
node index.js
로 수정함수
range( )
- range(x, y) : x부터 y이전까지 나열
- range(x, y, z): x부터 y이전까지 나열 + 증가값 Z
- 따라서 1~100까지의 짝수를 생성하려면
⇒ range(2, upTo+1, 2)
= 2부터 **101까지** **2씩 증가**
**rpm run test**
로 결과 확인**rpm run submit**
으로 제출git과 github
git : 가장 강력하고 대중적인 분산형 버전 관리 시스템
= 소스 코드 기록을 관리하고 추절할 수 있다.
- commit : 스냅샵(백업 복사본)을 만들어주는 작업
github : Git Repository를 관리할 수 있는 클라우드 기반 서비스
= Git으로 버전을 관리하는 폴더에 대해 Github를 통해 여러사람들이 공유&접근 가능
= 일종의 개발자들의 SNS
- 구성
- Remote Repository : 원격 온라인 서버상의 저장소. 여러 사람이 함께 공유 가능
- Local Repository : 내 컴퓨터의 저장소, 즉 내 개인 전용 저장소
- Fork : Remote Repository → Local Repository로 소스코드를 가져오는 작업