일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- User Flow
- slice/splice/split
- for~in/for~of
- variable#function
- https://www.daleseo.com/js-array-slice-splice/
- 자바스크립트#조건문#문자열
- 자바스크립트#JS#slice#splice
- removeCookie
- https://lo-victoria.com/introduction-to-redux-toolkit-for-beginners
- react
- CSS
- 헷갈린다~
- 노드교과서
- https://dasima.xyz/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A0%9C%EA%B3%B1-math-pow-%EA%B3%84%EC%82%B0/
- JS#3일차달리자#초반인데#시간금방~
- 자바스크립트#JS#var#let#const#undefined#null
- js
- UI
- redux상태유지
- https://developer-talk.tistory.com/299
- children vs childrenNodes
- UX
- Beesbeesbees
- toString#String
- dom
- cmarket
- ㄷㅌ
- 내장고차함수
- @redux-toolkit
- 자바스크립트
- Today
- Total
Daily Front_Minhhk
[LINUX] 기본적인 명령어 외 nvm,npm / RWE(읽기 쓰기 실행) 본문
LINUX 기본적인 명령어
프롬포트(prompt) : 터미널에서 글자가 입력되는 공간 (CLI의 명령줄 대기모드 라고도 한다.)
CLI에서 .은 현재 폴더를 나타냅니다. ..은 현재 폴더(.)을 기준으로, 앞에 .이 하나 더 붙습니다. 이렇게만들어진 ..은 현재 폴더보다 앞에 있는 폴더를 가리킵니다.
- pwd: 현재 위치를 확인하는 명령어
- mkdir: 새로운 폴더를 생성하는 명령어 ⇒ 폴더를 생성할 때 띄어쓰기를 하려면 \ (백슬래시)를 써야함.
- ls: 폴더나 파일의 목록을 출력하는 명령어-rw-r--r--이 출력되었다면 파일이라는 것을 의미하므로, cd 명령어로 진입할 수 없다.ls- al , ls -la : 파일의 포맷, 숨겨진 파일 모두 출력
- ls -a : a가 all이라는뜻으로 숨겨진 파일도 보여줌
- ls -l : 파일, 폴더의 포맷 출력 ⇒ d로 출력된경우는 폴더 , -로 출력된 경우는 파일이다.
- nautilus (Ubuntu), open (macOS): 현재 폴더를 파일 탐색기로 여는 명령어
- cd: 폴더에 진입하는 명령어
- touch: 새로운 파일을 생성하는 명령어 (touch index.html하면 생성됨)
- cat: 파일의 내용을 터미널에 출력하는 명령어 ⇒ 이외에도 head, tail, more, less 등이 있음.
- rm: 폴더나 파일을 삭제하는 명령어 ⇒ 이걸 쓰면 휴지통안가고 바로삭제 ⇒ rm만 쓰면 단일파일만 삭제, 폴더 삭제시 -rf 폴더이름 붙임. ⇒ 이때 r은 recursive f는 forece로
- r은 폴더지울때, f는 질문받지않을때 사용
- mv: 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어 ⇒ mv [폴더,파일이름] [도착폴더] 순서로 적음 ⇒ 파일의 이름도 변경가능!
- cp: 폴더나 파일을 복사하는 명령어 ,, cp [원본 파일 이름] [복사할 파일 이름] ⇒ 파일기준이라서 폴더 복사시 cp -rf 써야함.
- sudo: 관리자 권한을 이해할 수 있다.
- /: 루트 디렉토리 ⇒ cd ./hello 는 현재폴더 아래의 hello로 가라는 뜻 ⇒ cd /를 쓰면 루트폴더로 간다.
- 경로 /etc/는 루트폴더 아래의 폴더 etc입니다. 사용자 권한을 벗어난 위치에서 새로운 파일을 생성하므로, 반드시 관리자 권한이 필요합니다.
- whoami ⇒ 현재 로그인된 사용자 확인하는 명령어 ⇒ 사용자 폴더의 경로는 ~/로 표시됨.
- ~: 홈 디렉토리
- 절대 경로의 시작이 루트 디렉토리(/) ⇒ 하나하나 써야함 cd /home/chajinseong/ 이렇게!
- 상대 경로의 시작이 현재 디렉토리(.) ⇒ cd ../../ 이렇게 치면 2번 상위폴더로 올라가는거다!
- code. 치면 vscode 띄우고 ⇒ 꼭! 해당하는 폴더에 들어가서 해야함.
code . 파일명 했는데,, 에러 발생시~?
- git —help 치면 여러가지 도움되는 명령어 나옴.
- 파일이 너무많을 떄는 cd D 누르고 Tab 누르면 D로 시작하는 단어 다나와서 거기서 선택해서 들어가면 된다!
텍스트 에디터 nano
nano 파일이름 으로 실행가능
파일 열기
파일을 열기 위해서는 단축키 화면에 표시된 것처럼 ^R, Ctrl + R 키 조합
기본적으로 파일 이름을 입력하도록 화면이 안내되어 있지만, 즉시 ^T , Ctrl + T를 누른 후 화살표 키를 이용해 파일 및 디렉토리를 탐색한 후 불러올 수도 있습니다.
파일 저장
nano를 종료하지 않고, 파일을 저장할 수도 있습니다. 단축키 모음에 Save가 안 보이지만, ^O WriteOut을 이용하면 됩니다. 해당 내용이 파일을 저장하는 단축키입니다.
^W 는 안끄고 저장하기!
패키지 매니저
혹시 무언가 잘못되고 있다고 느껴지시는 경우
너무 시간이 오래 걸리거나, 뭔가 과정 중에 예상치 못하게 멈춰있는 경우에는 어떻게 하면 될까요?
Unix 기반 운영체제에서는 Ctrl + C 키는 작업을 취소하고, 터미널의 사용자 입력을 다시 되찾아오는 역할을 합니다.
기본적으로 강제 종료의 방법이지만, 해당 키를 공식적인 종료 방법으로 안내하고 있는 경우도 많이 있으므로, 두려워하지 말고 뭔가 잘못된 것 같으면 Ctrl + C 키를 눌러 종료해 주세요.
wget은 url을 통한 파일 다운 프로그램.
우분투에서 복사는 ctrl+shift+c , 붙여넣기는 ctrl+shift+v
brew 명령어 이용하기
앞서 brew 명령어의 도움말에서도 확인할 수 있듯, 주요 사용법은 다음과 같습니다.
- brew 자체 업데이트: brew update
- 업데이트 필요한 파일 조회: brew outdated
- 프로그램 업그레이드(업데이트): brew upgrade 프로그램 이름
- 프로그램 검색: brew search 검색어
- 프로그램 정보 확인: brew info 프로그램 이름
- 프로그램 설치: brew install 프로그램 이름
- 프로그램 삭제: brew uninstall 프로그램 이름
- 설치된 프로그램 보기: brew list
wget 설치하기
brew install wget → web get
- wget을 설치해 보세요. wget은 URL을 통해 파일을 다운로드하는 프로그램입니다.
- 설치 후, 다음 명령을 복사/붙여넣기 해서 실행해 보세요. 해당 디렉토리에 goodjob.txt라는 파일이 만들어졌습니다. 다운로드 받은 파일을 확인해 보세요.
- wget -O goodjob.txt <https://bit.ly/37sJqCo>
- neofetch를 설치해 보세요. 설치 후, 직접 neofetch를 실행시켜보세요 → brew install neofetch
neofetch 탁 하면/??
apple~~ yeah ah~
리눅스 10가지 wget 명령어 사용법
https://sisiblog.tistory.com/225
Node.js → 자바스크립트를 브라우저외에 다른곳에서도 실행 가능!
nvm : Node Version Manager → Node.js의 다양한 버전을 쉽게 설치, 사용 가능
- 최신버전에서의 코드가 작동이 안되고 구버전에서만 작동이 잘되면 버전을 옮기면 된다.
- nvm ls 치면 버전들 쭉 나옴 → nvm install 버전 쓰던가 nvm use 버전넘버 쓰던가 하면된다!
nvm설치 명령어 ..
wget -qO- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh> | bash
Node.js 설치 명령어 .. (LTS(Long-Term Support))
nvm install --lts
nvm 간단 사용법
nvm을 설치하고 아래 명령어를 입력해 보세요.
nvm ls
그럼 현재 nvm을 통해 설치한 Node.js version들이 나옵니다. 특정 버전의 Node.js를 설치하고 싶으면 다음과 같이 입력합니다.
nvm install 12.18.3
이렇게 하면 이미 설치된 버전을 삭제하지 않고, 우리가 원하는 Node.js version을 설치할 수 있습니다. 사용 중인 Node.js version을 다른 버전으로 변경하고 싶을 때에는 아래의 명령어만 입력하면 됩니다.
nvm use 버전 넘버 # 예를 들어, nvm use 12.18.3, nvm use 14.15.5
nvm으로 Node.js의 버전을 관리하면, Node.js를 설치하고 version을 바꾸는 일이 편리합니다.
정리하면 nvm은 다양한 Node.js version를 설치하고 관리할 수 있는 프로그램입니다.
npm(Node Package Manager) : 타인이 만든 모듈
- 우리보다 잘하는 사람들이 만들어 놓은 검증된 코드(모듈)을 가져다가 사용
- npm은 Node.js 생태계의 패키지 매니저 중 하나입니다.
- 프로그램을 실행시키기 위해 필요한 실제 모듈은 package.json이 아닌 node_modules라는 폴더에 저장됩니다.
- 프로젝트 코드를 서로 주고 받을 때 모든 모듈을 전달하는 것이 아니라 package.json에 있는 정보를 전달합니다. 코드를 전달받은 사람은 package.json에 있는 정보에 따라 npm에서 직접 모듈을 다운받아 사용합니다.
새로운 package.json 파일을 생성하기 위해서는 npm init 명령어를 입력하면 됩니다.
npm init
위 과정을 모두 생략하면서 package.json을 생성하고 싶다면 npm init -y를 입력하면 됩니다.
하나의 프로그램은 다양한 모듈이 합쳐져서 만들어집니다. 프로그래밍 세계에서의 격언 중 "바퀴를 재발명하지 마라"는 말이 있습니다. 즉, 우리가 개발을 할 때 모든 것을 다 만들어서 쓰지는 않습니다. 우리가 다 만들지 않는 이유는 여러 가지가 있습니다.
가장 먼저 시간이 많이 걸리고요, 우리가 만든 것을 100% 신뢰하기가 힘듭니다.
그래서 우리는 우리보다 잘하는 사람들이 만들어놓은 검증된 코드(모듈)를 가져다가 사용합니다.
package.json : npm을 담아둔 곳
- 깃헙에서 해당레포지토리에 package.json에서 필요하다고 하는 모듈을 npm을 이용해서 다운한다!
- script : CLI에서 사용 가능한 명령어들을 실행시키기!
- devDependency ⇒ 오로지 개발을 위해서 필요한 의존성 모듈 (모듈이라고 생각하자) ⇒ npm사용시 —save-dev 옵션과 함께 설치하면 devDependencies에 자동추가
- ⇒ 실습에서 mocha나 eslint 같은것들을 말함.
- dependencies ⇒ 이 프로젝트에서 반드시 필요한 모듈들 ⇒ npm install —save ~~~ 처럼 —save 사용하면 dependencies에 자동추가(—save는 생략가능)
- scripts 항목 ⇒ npm run <스크립트이름> 으로 실행
- npm run start ⇒ node.js 앱 실행
- npm run test ⇒ 테스트실행
- npm run lint ⇒ 코드 검사
- codestates에선 npm run submit으로 과제제출!
< 짝수생성기 >
package.json 확인 및 패키지 설치
주목해야 할 부분은 dependencies와 devDependencies
짝수 생성기에 필요한 모듈이 무엇인지를 나타내는데, package.json을 잘 살펴보면 개발 도중 테스트를 위한 프로그램(chai, mocha)과, 과제 제출용 프로그램(codestates-assignment-manager,mocha-multi-reporters, @mochajs/json-file-reporter)이 포함되어 있다.
따라서, 여기 있는 dependency는 전부 필요하니까 패키지 설치!!
npm install
스프린트가 위치한 디렉토리에 node_modules라는 디렉토리가 생성 →
npm install을 이용해 다운로드한 패키지가 node_modules 디렉토리에 저장
node index.js 실행시 range가 없어 설치!
range 모듈
- 일단 npm install range 다운~> 에러 해결,,
- https://npm.runkit.com/range?t=1652067135454 (range 에 대해 궁금하다? 링크)
- range(시작점 , 끝점 , 간격)
- range(시작점, 끝점)
- getListMultiplesOfTwo.js 파일 수정,,,
const { range } = require('range'); // range 모듈을 불러옵니다
function getListMultiplesOfTwo(upTo) {
return range(2,upTo+2,2)
}
module.exports = getListMultiplesOfTwo;
- package.json에 가서 scripts 부분에 start 를 node index.js로 변경
- npm run submit → 과제 제출,,
- 제출된 거 확인 할려면 → npx codestates-assignment-manager login 하면?
종합문제 중
A. fork는 오픈 소스 코드가 업로드 되어 있는 원격 저장소에서 나의 원격 저장소로 가지고 오는 과정을 의미합니다.
B. clone은 오픈 소스 코드를 원격 저장소에서 내 컴퓨터(Local Repository)로 가지고 오는 과정을 의미합니다.
C. 내 컴퓨터에서 변경한 사항을 원격 저장소에 반영하는 작업을 push라고 합니다. 변경 내용을 commit을 통해 저장한 후, push를 통해 반영합니다.
D. pull은 원격 저장소에서 변경 사항이 생겼을 때, 변경된 사항을 내 컴퓨터에 반영하는 작업입니다.
따라서 틀린 보기는 D입니다. contributors가 되었다고 해서 오픈 소스 코드를 즉시 반영하는 것이 아니라, 변경 사항을 제안하고, 반영을 요청할 수 있습니다. 이를 pull request라고 합니다.
📌 CLI명령어중에 ls -l 을 하면 drwxr-x-wx 라고 나와있는걸 해석하면
d : 폴더를 의미
rwx : 사용자가 읽기 쓰기 실행 가능
r-x : 그룹은 쓰기권한은 없고 읽기 실행 가능
-wx : 다른유저는 읽기권한은 없고 쓰기 실행 가능.
# linux 의 퍼미션 정보# 퍼미션 종류- 읽기 (r) : 파일의 읽기권한- 쓰기 (w) : 파일의 쓰기권한- 실행 (x) : 파일의 실행권한
# 퍼미션의 사용자지정- 소유자 : 소유자에 대한 퍼미션지정- 그룹 : 소유 그룹에 대한 퍼미션 지정 - 공개 : 모든 사용자들에 대한 퍼미션 지정
rwxr-xr-x기호 종류는 3개 인데 퍼미션 정보에는 9개가 보입니다.우선 3개씩 끊어서 다시 보겠습니다.
rwx r-x r-x
소유자 : rwx그룹 : r-x공개 : r-x
해석 : " 이 파일에 대해서는 소유자는 읽기(r),쓰기(w),실행(x) 을 허용하고파일의 소유그룹에 속하고 있는 사용자들은 읽기(r), 실행(x) 만 허용그 외의 나머지 모든 사용자들도 읽기(r), 실행(x) 만 허용된다 "
# 퍼미션 기호를 숫자로 변환 ## r = 4 , w = 2 , x = 1 #예) rwxr-xr-x 이 경우 4 2 1 4 0 1 4 0 1
# 변환한 숫자를 합산해주면예) rwxr-xr-x 이 경우 4 2 1(7) 4 0 1(5) 4 0 1(5)
퍼미션 644대신 rw--r--r 의 의미는각각의 영어 단어의 약호로 (Read 의 R , Write 의 W, Execute 의 E) 표시해주는 겁니다.
'Code개발일지' 카테고리의 다른 글
[JS] 객체 (0) | 2022.11.04 |
---|---|
[JS] 배열(push,pop / unshift,shift) + (for in/for of, slice/splice/split, concat, join) (0) | 2022.11.03 |
[간단정리] innerText 와 textContent 차이점 / Number와 parseInt 차이점 (0) | 2022.11.01 |
[CSS, JS] 계산기에 기능 추가하기! (2) | 2022.11.01 |
[CSS] 계산기 목업 간단~ (0) | 2022.10.31 |