Shell이란
운영체제의 커널과 사용자를 이어주는 소프트웨어
Shell Command
- ls (list segments) : 현재 디렉토리의 파일 및 디렉토리 목록 표시
- ls -l: 파일 및 디렉토리에 대한 자세한 정보를 표시
- ls -a: 숨겨진 파일 및 디렉토리까지 표시
- cd (change directory) : 디렉토리 이동
- cd .. : 상위 디렉토리로 이동
- cd / : 루트 디렉토리로 이동
- cd ~ : 홈 디렉토리로 이동
- cd - : 이전 디렉토리로 이동
- cd Documents : Documents 폴더로 이동
- mkdir (make directory) : 디렉토리 생성
- mkdir [옵션] [디렉토리명]
- mkdir -p : 중간에 없는 디렉토리까지 한 번에 생성
- mkdir dev : dev 디렉토리 생성
- pwd (print working directory) : 현재 작업중인 디렉토리 절대경로 표시
- touch : 빈 파일 생성 또는 파일 타임스탬프 업데이트
- touch newfile.md : newfile.md 파일 생성
- mv (move) : 파일 또는 디렉토리 이동/이름 변경
- mv [옵션] [원본 파일/디렉토리] [대상 파일/디렉토리]
- mv newfile.md temp/ : newfile.md 파일을 temp 디렉토리로 이동
- cp (copy) : 파일 또는 디렉토리 복사
- cp [옵션] [원본 파일/디렉토리] [대상 파일/디렉토리]
- cp -r : 디렉토리 및 하위 내용까지 재귀적으로 복사
- rm (remove) : 파일 또는 디렉토리 삭제
- rm [옵션] [파일 또는 디렉토리]
- rm -f : 강제 삭제 (삭제 확인 메시지 없음)
- rm -r : 디렉토리 및 하위 내용까지 재귀적으로 삭제
- cat : 파일의 내용을 표준 출력(일반적으로 터미널 화면)으로 출력하는 데 사용
- cat [파일명]
- cat myfile.txt
Vim Command
normal mode
- i: insert mode 로 진입
- ESC: back to normal mode
insert mode
- :q - quit
- :q! - quit not write(save)
- :w - write (save)
- :wq - write and quit
- :{num} - go to {num}th line
Markdown Quick Start
주석
<!-- 주석 -->
# heading text
h1 #
h2 ##
h3 ###
h4 ####
h5 #####
h6 ######
<p> 문단 </p>
안녕하세요
문장 끝에 스페이스 두번은 줄바꿈<br>
순서가 없는 아이템
- item 1
- item 2
- item 2-1
- item 2-2
- item 2-2-1
- item 2-3
- item 3
순서가 있는 아이템
- order 1
- order 2
- order 2-1
- order 2-2
- order 3
- item 3-1
- item 3-2
하이퍼텍스트
[google](https://www.google.com/)
이미지

강조표기
_italic_, **bold**, ~~취소선~~, `mono`
코드블록
```[python] code```
python
print('hello')
cpp
#include <iostream>
int main()
{
std::cout << "Hello" << std::endl
return 0;
}
설정
git config --global user.name "{username}"
git config --global user.email "{email}"
git config --global core.editor "vim"
git config --global core.pager "cat"
git config --list
수정이 필요할 경우, vim ~/.gitconfig 에서 값 수정
빠른시작
- git clone {username/repo-addr}
- 원격 저장소(repository)를 로컬 컴퓨터에 복사
- git clone https://github.com/shayoyou/TIL.git
- cd {repo-addr}
- 방금 복제한 저장소 디렉토리로 이동
- cd TIL/
- vim README.md
- vim 편집기로 README.md 파일 오픈
- README.md 파일은 저장소에 대한 설명을 담고 있는 파일로, 일반적으로 저장소의 목적, 사용 방법 등을 작성한다
- git status
- 현재 저장소의 상태 확인
- 수정된 파일, 새로 추가된 파일, 삭제된 파일 등의 정보를 보여준다
- README.md 파일을 수정했으면 git status 명령어 실행시 파일이 수정된 것으로 표시된다
- git add README.md
- 스테이징 영역에 있는 변경 사항을 커밋
- 스테이징 영역은 다음 커밋에 포함될 변경 사항을 준비하는 공간
- git commit
- 스테이징 영역에 있는 변경 사항을 커밋
- 커밋은 변경 사항을 저장소에 기록하는 작업이다
- git commit 명령어 실행시 커밋 메시지를 입력하라는 창이 나온다. 변경 사항에 대한 설명을 작성한다
- -m 옵션을 사용하여 커밋 메시지를 바로 입력할 수 있지만..
- git push origin main
- 로컬 저장소의 변경 사항을 원격 저장소(origin)의 main 브랜치에 업로드
- origin은 원격 저장소의 기본 이름이며, main은 기본 브랜치 이름 (경우에 따라 다를 수 있음)
Conventional Commits
https://www.conventionalcommits.org/ko/v1.0.0/
Conventional Commits는 커밋 메시지를 작성하기 위한 규칙입니다. 일관된 커밋 히스토리를 만들어 프로젝트 협업 및 관리를 용이하게 하는 것이 목표입니다.
주요 특징
- 구조화된 메시지: 커밋 메시지는 유형, 범위, 제목, 본문, 꼬리말로 구성됩니다.
- 명확한 유형: 변경 사항의 유형을 명확히 나타내는 키워드를 사용합니다 (예: feat, fix).
- 간결한 제목: 커밋의 주요 내용을 50자 이내로 요약합니다.
구조
<type>(<scope>): <subject>
<body>
<footer>
- type: 커밋 유형 (필수)
- feat: 새로운 기능 추가
- fix: 버그 수정
- docs: 문서 수정
- build: 빌드 작업 관련
- ci: Continuous Integration 관련
- style: 코드 스타일 수정 (코드 동작에 영향을 주지 않음)
- refactor: 코드 리팩토링
- test: 테스트 추가 또는 수정
- chore: 빌드 작업, 패키지 매니저 설정 등 (코드 생산과 직접 관련 없음)
- conf: 환경설정 관련
- scope: 변경 사항이 적용되는 범위 (선택 사항)
- subject: 커밋 제목 (필수) - 50자 이내, 명령형으로 작성
- body: 커밋에 대한 자세한 설명 (선택 사항) - 72자마다 줄 바꿈
- footer: 관련 이슈 번호, breaking change 등 추가 정보 (선택 사항)
장점
- 가독성 향상: 일관된 형식으로 커밋 히스토리를 쉽게 파악할 수 있습니다.
- 자동화: 커밋 메시지를 분석하여 자동으로 버전 번호를 생성하거나 릴리스 노트를 작성할 수 있습니다.
- 협업 개선: 명확한 커밋 메시지는 팀원 간의 코드 이해도를 높여 협업을 원활하게 합니다.
git을 쓰면서 습관들이면 안되는 것들
- $ git add . : 현재 디렉토리 하위의 모든 파일을 staging할 때 사용. but, 현재 commit단위에 들어가면 안되는 파일까지 휩쓸릴 수 있으므로 습관적으로 사용하면 안됩니다.
- $ git commit -m "Message" : 쉘에서 바로 메시지를 쓰면서 커밋할 때 사용. but, revert commit, merge commit 등의 상황에서 메시지를 덮어쓸 우려가 있으므로 습관적으로 사용하면 안됩니다.
- 저장소 안에 저장소 clone 하기 : 프로젝트 단위는 항상 독립적으로 존재해야 합니다. clone 전 항상 현재 작업위치가 dev 디렉토리인지 확인 후 사용!!
- 의미없는 commit message 남기기(ex. a, 1, ..) : commit message는 제목만으로 해당 작업단위에 대한 설명이 가능해야 나중에 고생하지 않습니다. Conventional commit 잘 지키기!!
브랜치 확인
- git branch
- 현재 작업중인 브랜치 앞에 *표시되어 보인다
- -a 옵션: 로컬 및 원격 브랜치 모두 확인 (git branch -a)
- -r 옵션: 원격 브랜치만 확인
브랜치 생성
- git branch <브랜치 이름>
- ex) git branch origin/sample
브랜치 변경
- git switch <브랜치 이름>
로컬 브랜치 삭제
git branch -d <브랜치 이름>: 병합된 브랜치 삭제
- 해당 브랜치가 현재 브랜치에 병합된 경우에만 삭제된다
- 병합되지 않은경우, 에러메시지와 함께 삭제가 거부된다
git branch -D <브랜치 이름>: 병합 여부와 관계없이 강제 삭제
- 주의: 복구 불가능
반응형
'공부' 카테고리의 다른 글
딥러닝 Deep Learning (0) | 2025.02.11 |
---|---|
버전관리 - Git, Github 이론 (0) | 2024.12.12 |
복습 목차 (0) | 2024.12.12 |
HTTP의 특성 (0) | 2024.12.12 |
웹 서버와 웹 어플리케이션 서버 (0) | 2024.12.12 |