티스토리 뷰
terminal 터미널 ctrl alt t
prompt 프롬프트 터미널의 입력줄(한줄)
ctrl c 터미널 강제 종료
CLI 명령어
pwd
: print working directory 현재 위치
mkdir
: make directories 새로운 폴더 생성
ls
: list 현 위치의 폴더/파일 리스트 출력
-a all 숨긴 폴더/파일까지 모두 출력
-l 폴더나 파일의 형식(포맷)을 모두 표현
-al, -la 순서 상관 없음
* 참고 파일 타입 10자
1 d, -, l (directory, file, symbolic link)
2-4 소유자 권한 r, w, x(-) (read읽기, write쓰기, excute실행, 권한 없음)
5-7 그룹 사용자 r, w, x(-)
8-10 그 외 사용자 r, w, x(-)
drwxr-xr-x d 폴더, 소유자 권한 rwx, 그룹 사용자 권한 rx, 그 외 사용자 권한 rx
-rw-r--r--- 파일, 소유자 권한 rw, 그룹 사용자 권한 r, 그 외 사용자 권한 없음
cd
: change directory 상호작용하고 있는 폴더를 다른 폴더로 변경
touch
: 파일 생성
cat
: 파일 내용 출력
(원격 서버 접속은 네트워크를 통해 이뤄지기 때문에,
원격 접속 상태에서 큰 파일을 출력하는 것은 비효율적임)
rm
: remove 폴더/파일 삭제하기. 휴지통을 거치지 않고 완전 삭제됨
-rf 폴더 삭제 시 옵션 필요(recursive, force)
mv
: move 폴더/파일 이름 변경, 위치 변경
이름 변경 mv [폴더/파일 이름] [바꿀 이름]
위치 변경 mv [폴더/파일 이름] [바꿀 위치]
cp
: copy 폴더/파일 복사
-rf 폴더 복사 시 옵션 필요
cp (-rf) [원본 파일 이름] [사본 파일 이름]
clear
: 화면창 초기화
nautilus . 현재 위치를 GUI로 실행하는 명령어(탐색기 실행됨)
(macOS에서 open .)
whoami
: 현재 로그인된 사용자 확인
명령어 옵션
: 명령어 입력만 입력하거나 --help(-h) 옵션을 통해 확인할 수 있음
- 로 표시, 옵션 순서 상관 없음
경로
절대 경로
: 루트 폴더(/)가 기준점, pwd로 확인 가능
/home/[username]/helloWorld
~는 /home/[username]을 뜻함
상대 경로
: 현재 위치가 기준점
. 현재 위치
.. 상위 폴더
Linux 관리자 특징
- 일반 사용자에게 관리자 권한(루트 권한) 완전히 넘기지 않음
- 프로그램 설치/변경/삭제할 수 있는 관리자 권한만 전달
- 사용자와 관리자를 명확히 구분하여 사용자의 실수로 발생할 수 있는 시스템 에러로부터 운영체제 보호
sudo
: 일시적으로 관리자 권한 획득
Ubuntu 기본 내장 패키지 매니저
apt
관리자 권한 필요
sudo apt update
: 패키지를 다운로드할 수 있는 최신 정보 갱신(설치된 프로그램이 버전 업되지 않음)
sudo apt upgrade
: 전체 패키지 버전 업
sudo apt --only-upgrade install 패키지 이름
: 특정 패키지만 버전 업
sudo apt install 패키지 이름
: 패키지 설치
sudo apt remove 패키지 이름
: 패키지 삭제
관리자 권한 불필요
apt list --upgradable
: 버전 업 가능한 패키지 목록 출력
apt list --installed
: 설치된 패키지 보기
apt search 패키지 이름
: 패키지 검색
apt show 패키지 이름
: 패키지 정보 확인
Node.js
wget 패키지 설치(url을 통해 파일을 다운로드하는 프로그램)
sudo apt install wget
nvm 설치(최신 버전 확인)
https://github.com/nvm-sh/nvm#install--update-script
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
# 설치 후 터미널 재시작 필요!
nvm --version
# 버전 확인
Node.js 설치
nvm install --lts
node -v
npm -v
# 버전 확인
Node.js로 JavaScipt파일 실행
node 파일이름.js
nvm 노드 버전 매니저
: 다양한 Node.js 버전을 설치하고 관리하는 프로그램
nvm ls
: 설치된 Node.js 버전들 출력
nvm install 버전넘버
: 특정 버전 Node.js 설치
nvm install --lts
: lts 버전 설치(Long Term Support)
nvm use 버전넘버
: 특정 버전으로 전환(삭제/설치를 하지 않고 전환하여 사용할 수 있음)
package.json
프로그램을 실행시키기 위해 필요한 모듈(npm 모듈 정보)
프로그램 실행 방법, 프로그램 테스트 방법 등 포함
→ 협업에 중요한 역할을 함
repository에 node_modules 폴더는 없고 package.json만 있음
node_modules 내부에 파일이 너무 많아 비효율적이기 때문(용량과다)
package.json에 기재된 모듈 다운로드하여 node-modules 폴더에 저장
npm install
package.json 파일 생성 방법
npm init
// 파일에 들어갈 정보를 차례대로 입력(입력하지 않으면 기본값)
npm init -y
// 기본값으로 생성
package.json 내부
devDependencies
: 개발하는 환경에 필요한 모듈들,
실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들 명시
npm install 패키지이름 --save-dev
# --save-dev 옵션과 함께 install 실행 시 자동으로 devdependencies에 추가됨
모듈이름(키): 버전(밸류)
dependencies
: 프로젝트가 돌아가기 위해 반드시 필요한 모듈들
npm install --save 패키지이름
# --save를 생략해도 dependencies에 추가됨
scripts
: npm script. CLI에서 사용가능한 명령어를 기술
npm run 스크립트키
{
"scripts": {
"start": "node index.js",
"test": "mocha test/index.test.js",
"lint": "eslint",
"submit": "codestates-submission"
}
}
# start: index.js 실행
# text: 테스트 실행
# lint: 코드 검사
# submit 과제 제출(codestates only)
라이브러리는 모듈 파일에서 exports 후 사용
// range모듈을 range 변수에 저장
const range = require("range")
// range모듈의 range함수를 사용
range.range(시작 숫자, 끝 숫자, 증가 숫자)
비구조화 할당(구조분해할당)
// range모듈을 moduleOne 변수에 저장
// 모듈에 저장된 range함수를 range 변수에 저장
const moduleOne = require("range")
const range = moduleOne.range
// 위와 같은 내용
// range모듈의 range함수를 함수명 그대로 저장
const {range} = require("range")
range(시작 숫자, 끝 숫자, 증가 숫자)
GIT
가장 강력하고 대중적인 버전 관리 시스템
commit: 특정 시점에 생성된 백업 복사본(스냅샷)을 만드는 작업
버전 관리 하는 이유
1. 파일 변경 시 변경 이력을 저장
- 누가, 어떤 파일을, 추가/수정/삭제했는지 확인 가능
- 어떤 변경 사항이 발생했는지 알아보기 쉬움
2. 이전 버전으로 돌아갈 수 있음
3. 협업 용이
4. 백업용
Git으로 관리되는 파일은 Github, GitLab, Bitbucket 등 원격 저장소(Remote Repository)를 이용해서 백업과 협업을 할 수 있음
Remote Repository
: 원격 온라인 서버 상의 저장소, 여러 사람이 공유 가능
Local Repository
: 내 컴퓨터의 저장소, 개인 전용
오픈소스는 누구나 자유롭게 기능을 추가하고 개선할 수 있는데 이 작업을 'contribute기여하다'라고 한다
Github 용어
fork
: contribute하기 위해 오픈소스가 저장된 원본 Remote Repository를 내 Remote Repository로 가져오는 작업
clone
: 내 Remote Repository에서 내 컴퓨터(Local Repository)로 가져오는 작업
git clone "복사한SSH"
push
: 소스 코드를 변경 후 commit 저장하고 원본/내 Remote Repository에 업로드
pull request
: push한 변경 사항에 대해 반영 여부를 요청할 수 있음
pull
: push와 반대. Remote Repository에 변경 사항이 있어 Local Repository로 가져오는 작업
로컬 Github 환경설정
git config --global user.name "나의 사용자 이름"
git config --global user.email "내 이메일 주소"
git config --global core.editor nano
# 원하는 텍스트 에디터로 변경. 기본값 vi
Github SSH 키 생성
secure shell 보안이 강화된 shell 접속
CLI 환경에서 다른 PC에 접속하거나 요청할 때 비대칭키를 이용해 사용자를 인증
여러 비대칭키 중 ssh 공개키 사용
ssh-keygen
# 엔터 3번 눌러 ssh 키 생성
cat ~/.ssh/id_rsa.pub
# 공개 키 복사
id_rsa.pub 공개키 공개 가능
id_rsa 개인키/비밀키 공개되면 안됨
공개 키 복사하여 깃헙에 등록
Github> 프로필 이미지 클릭> Settings> SSH and GPG keys > New SSH key
2022.11.02
코스 S1U8
'코드스테이츠(SEB_FE_42)' 카테고리의 다른 글
[JS] 객체 (0) | 2022.11.04 |
---|---|
[JS] 배열 (0) | 2022.11.03 |
[JS] Element 선택(querySelector/ getElementById) (0) | 2022.11.01 |
[CSS] 속성(z-index, filter 등), Grid (0) | 2022.10.31 |
[CSS] Flexbox (0) | 2022.10.28 |