S1. [Linux/Git] 기초

Haizel·2022년 11월 16일
0

Front-End Developer 되기

목록 보기
10/70
post-thumbnail

노션으로 보기

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 입력
  • CLI 단축어 설명

    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   ⇒
    Hello
    World!
    Good\ Bye!

    rm(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

  • (A) 파일 이름 안내
  • (B) 파일 편집 화면, 여기서 텍스트 파일을 편집
  • (C) 사용에 필요한 각종 단축키 → 기능 실현

파일 열기 : nano 파일이름

패키지와 패키지 매니저

  1. 패키지
    • 일종의 압축파일
    • 구성
      • 프로그램 파일
      • 프로그램 설치파일
      • 프로그램 설치 설명서
      • 프로그램에 대한 정보를 담은 파일
  1. 패키지매니저
    • 일종의 앱스토어
    • 패키지의 설치,변경, 삭제 등을 편리하게 관리하는 도구

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

  • Node.js : JavaScript의 런타임
  • nvm(Node Version Manager) : Node.js의 버전관리 매니저
  • npm(Node package Manager) : Node.js의 패키지매니저

package.json

  • npm모듈을 활용하기 위해 해당 모듈에 대한 정보를 담은 파일 → 프로젝트 전반에 대한 정보가 들어감 = 즉 npm모듈에 대한 정보를 담아둔 곳
  • 일종의 제품 카탈로그
  • 프로그램을 실행시키기 위해 필요한 실제 모듈은 → ‘node_modules’ 폴더에 저장된다.

장점 :

  1. 프로젝트 코드 전달 시, 포함하고 있는 모든 모듈을 전달하지 않아도 됨
  2. 따라서 협업에 유리하다.

특징 : 의존성(depenency) : 실행 시, 해당 모듈을 의존한다.

→ 프로그램 실행과 관계없이 오로지 개발을 위해 필요하다.

  1. devDependencies : 실제 프로젝트 동작에 직접적인 영향주지 않는 모듈
  2. dependencies : 프로젝트가 돌아가기 위해 반드시 필요한 모듈이 적힘.
  3. script : npm run <script name>

과제 : 짝수생성기

  1. 주어진 파일
  • 주어진 스크립트 정보
  1. 다운로드한 파일 열기
cd ~/Downloads/fe-sprint-cli-practice-main
  1. CLI로 과제 디렉토리로 이동해
node indext.js
  1. package.josn 파일에 “script”의 start부분을 수정
  • 빈문자열(””) → node index.js로 수정
  1. getListMultiplesOfTwo.js 파일에서 짝수를 생성하는 함수 구현

함수 range( )

  • range(x, y) : x부터 y이전까지 나열
  • range(x, y, z): x부터 y이전까지 나열 + 증가값 Z
  • 따라서 1~100까지의 짝수를 생성하려면

⇒ range(2, upTo+1, 2)

= 2부터 **101까지** **2씩 증가**
  1. **rpm run test** 로 결과 확인
  1. **rpm run submit**으로 제출

git과 github

  • 버전관리의 장점
  1. 변경이력 저장이 가능
  2. 이전 버전으로 돌아갈 수 있다.
  3. 어떤 변경 사항이 발생했는지 알아보기 쉽다.
  4. 협업하기 좋다.
  5. 백업용

git : 가장 강력하고 대중적인 분산형 버전 관리 시스템

= 소스 코드 기록을 관리하고 추절할 수 있다.

  • commit : 스냅샵(백업 복사본)을 만들어주는 작업

github : Git Repository를 관리할 수 있는 클라우드 기반 서비스

= Git으로 버전을 관리하는 폴더에 대해 Github를 통해 여러사람들이 공유&접근 가능

= 일종의 개발자들의 SNS

  • 구성
  1. Remote Repository : 원격 온라인 서버상의 저장소. 여러 사람이 함께 공유 가능
  2. Local Repository : 내 컴퓨터의 저장소, 즉 내 개인 전용 저장소
  3. Fork : Remote Repository → Local Repository로 소스코드를 가져오는 작업
profile
한입 크기로 베어먹는 개발지식 🍰

0개의 댓글