티스토리 뷰

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
댓글
공지사항