Unit8 - [Linux/Git] 기초 _Ubuntu

예진·2022년 9월 1일
0

🔥 Command-Line Interface

CLI(Command-Line Interface) : 글자의 입출력을 통해 사용자와 컴퓨터 간 소통하는 방식
GUI(Graphical User Interface) : 그래픽을 이용해 사용자와 소통하는 방식

1. CLI 명령어

프롬프트 (Prompt) : CLI의 명령줄 대기모드
터미널 화면에서 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간
명령어 실행 = Enter

터미널(Terminal) 실행하기
터미널 = CLI, 입력하는 글자와 출력되는 글자로 컴퓨터와 소통한다.
Linux 터미널을 실행하려면, 단축키 ctrl + Alt + t 사용해 실행 가능하다.

명령어를 이용해 GUI 탐색기로 폴더 실행하기
터미널을 열고 nautilus .를 입력하면 터미널의 현재 위치를 GUI 탐색기로 열 수 있다.

  • pwd (print working directory) : 현재 위치 확인하기
    - GUI : 현재 폴더가 위치한 경로를 확인하기 위해 탐색기의 상단을 클릭해서 확인한다.
    - CLI : 터미널에서 pwd를 프롬프트에 입력하고 Enter키를 눌러 현재 경로 확인한다.

  • mkdir (make directories) : 새로운 폴더 생성하기, mkdir 폴더명
    폴더 또는 파일의 이름에 공백(띄어쓰기)이나 특수문자가 있을 경우 백슬래시(/)를 적용한다.

  • ls (list) : 특정 폴더에 포함된 파일이나 폴더 확인하기 ( 옵션 : -l , -a )
    ls -al 또는 ls -la : -뒤에 오는 옵션의 순서는 기능에 영향을 주지 않는다.

- ls -a : 모든 항목을 터미널에 출력한다. ( a = all )

- ls -l : 폴더나 파일의 포맷을 전부 표현한다.
출력 첫번째 글자에 따라 의미가 다르다.
ex) drwxr-xr-x : 폴더 , -rw-r--r-- : 파일
=> d : 폴더 (명령어 cd를 통해 진입) , - : 파일 (명령어 cd를 통해 진입x)

  • cd (change directory) : 폴더에 진입하기
    프롬프트로 상호작용하는 폴더를 다른 폴더로 변경한다.

  • touch : 파일 생성하기 , touch 파일명

  • cat : 파일의 내용을 터미널에 출력하기 , cat 파일명

  • rm (remove) : 폴더나 파일 삭제하기
    명령어 rm으로 삭제한 폴더나 파일은 휴지통을 거치지 않고 삭제된다.

    rm은 폴더를 삭제하려면 옵션 r, f 사용해야 한다.( 단일 파일 삭제 불가능 )
    - r : 폴더를 지울 때 사용 (recursive)
    - f : 질문을 받지 않고 지울 때 사용 (force)
    => 폴더나 파일을 삭제할 때 두 옵션 같이 사용 ( rm -rf 파일명 )

  • mv (move) : 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기
    - mv [파일명] [파일명] : 파일명 변경
    - mv [폴더명] [폴더명] : 폴더명 변경
    - mv [파일명] [폴더명] : 파일의 위치 이동

  • cp (copy) : 폴더나 파일 복사하기 ( rm 명령어와 동일한 옵션 r, f 사용한다. )
    cp [원본파일명] [복사할파일명] : 파일 복사


2. 관리자 권한과 경로

- 절대 경로 : 기준점으로부터 절대적인 위치 나타낸다. 기준점 = 루트 폴더(/)
즉, 특정 폴더나 파일이 루트 폴더로부터 어떤 폴더로 진입하는 경우 만날 수 있는지 나타낸다.

- 상대 경로 : 특정 폴더 또는 파일의 위치를 현재 위치를 기준점으로 나타낸다.
현재 위치한 폴더 점(.) 표현, 상위 폴더 점 두개(..) 표현
슬래시(/) 폴더 내부를 나타낸다. => ./ : 현재 폴더 아래
( + 사용자 폴더의 경로 ~/ 표시, ~는 루트 폴더(/)로부터 사용자 폴더까지의 경로를 축약한 형태 )

- 관리자(root) 권한
절대 경로의 기준점인 루트 폴더(/)는 Linux의 관리자 영역이다.
일반 사용자의 권한으로 폴더 또는 파일을 생성, 변경, 삭제할 수 없다.

  • 현재 로그인된 사용자를 확인하는 명령어 whoami

sudo : 사용자 환경에서 관리자 권한을 획득하는 명령어 ( 기본적인 CLI 명령어 앞에 작성 )
sudo를 사용한 경우 처음 리눅스 계정을 생성할 때 입력한 비밀번호를 계속 입력해야 한다.
sudo를 이용해 생성한 폴더와 그냥 생성한 폴더는 ls -l을 통해 차이 확인 가능하다.

3. 텍스트 에디터 nano

CLI 환경에서 유명한 에디터는 vim(vi), emacs 등이 있다. ( nano 에디터는 사용하기 쉬움 )

nano 실행

nano  # nano 실행
nano 파일명  # 파일 열기

nano를 사용하는데 필요한 단축키를 하단에 표시해준다.


🔥 패키지와 패키지 매니저

패키지 : 여러 파일이 담겨있는 하나의 상자
패키지 매니저 : 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구

1. 패키지와 패키지 매니저 설치

apt 명령어 이용하기
(우분투에 기본적으로 apt 패키지 매니저가 내장되어 있다.)

  • 주요 명령어
    apt update : 패키지 목록 갱신 (관리자 권한 필요)
    apt upgrade : 전체 패키지 업그레이드 (관리자 권한 필요)
    apt --only-upgrade install 패키지명 : 특정 패키지 업그레이드 (관리자 권한 필요)
    apt install 패키지명 : 패키지 설치 (관리자 권한 필요)
    apt remove 패키지명 : 패키지 삭제 (관리자 권한 필요)
    apt list -—upgradable : 업그레이드 가능한 패키지 목록 출력
    apt list --installed : 설치된 패키지 보기
    apt search 검색어 : 패키지 검색
    apt show 패키지명 : 패키지 정보 확인

🔥 Node.js

1. nvm & node.js

nvm(Node Version Manager)

: Node.js의 다양한 버전을 관리하는 프로그램 ( Windows 환경에서 사용x )

Node.js

: JavaScript 런타임( runtime : 프로그래밍 언어가 실행되는 환경 ) 중 하나
node 파일명 : Javascript 파일을 node 환경에서 실행함

2. npm & package.json

npm init : package.json 파일 생성 명령어
package.json 파일에 들어갈 정보를 입력하지 않으면 기본값으로 생성된다.
npm init -y : 과정 모두 생략하고 package.json 파일을 생성한다.

npm(Node Package Manager)

: Node.js의 생태계 패키지 매니저

package.json

: npm 모듈을 활용하기 위해 해당 모듈에 대한 정보를 담은 파일
( 프로그램을 실행시키기 위해 필요한 실제 모듈은 node_modules 폴더에 저장된다. )
=> package.json에는 어떤 모듈이 있는지 적혀있다.

npm install 명령어를 입력하면 package.json에 적힌 필요한 모듈을 다운로드 받고 node_modules 폴더에 저장된다.

  • devDependencies
    : 프로그램 실행과 관계없는 개발을 위해 필요한 dependency (의존성 모듈)
    => 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지 적혀있다.
    --save-dev 옵션과 함께 install 실행시 자동으로 devDependencies에 추가된다.

  • dependencies
    : 직접 실행과 관련있는 dependency
    => 프로젝트가 돌아가기 위해 반드시 필요한 모듈들이 무엇인지 적혀있다.
    --save 옵션과 함께(생략 가능) install 실행시 자동으로 dependencies에 추가됨

  • scripts
    : CLI에서 사용 가능한 명령을 기술한다.
    npm run 스크립트명 : CLI에서 실행


과제 - 짝수생성기

github repository


🔥 Git

소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템(Version Control System)

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

  • Git Repository : 저장소, 파일이나 폴더를 저장해두는 곳
    Remote Repository & Local Repository

Fork : 오픈 소스 코드가 업로드 되어 있는 원격 저장소(Remote Repository)에서 내 원격 저장소로 가져오는 작업

Clone : 오픈 소스 코드를 원격 저장소에서 내 컴퓨터(Local Repository)로 가져오는 작업

Push : 내 컴퓨터에서 변경된 내용을 원격 저장소(Remote Repository)에 올려주는 작업
- 변경된 내용을 commit을 통해 저장한 후, push를 통해 반영한다.
( + Github에는 Pull request 기능이 있어 내 코드 변경사항에 대해 반영 여부를 요청할 수 있다. )

Pull : 원격 저장소(Remote Repository)에서 변경 사항이 생겼을 때, 변경된 사항을 내 컴퓨터(Local Repository)로 가져오는 작업

sudo apt install git : git 설치
git --version : 정상적으로 설치되었는지 & 프로그램 버전 확인

1. Git 환경설정

사용자 정보

Git을 설치하고 가장 먼저 사용자 이름과 이메일 주소 설정한다.
앞으로 진행할 Git commit 내역에 사용자 이름과 이메일 주소가 기록된다.

git config --global user.name "나의 사용자 이름"
git config --global user.email "내 이메일 주소"

--global 옵션으로 설정하면 사용자 홈에 저장되므로 처음 한번만 입력하면 된다.

profile
😊

0개의 댓글