하드웨어와 응용프로그램을 이어주는 운영체제의 핵심 시스템소프트웨어
운영체제의 커널과 사용자를 이어주는 소프트웨어
cd (change directory)
특정 디렉토리로 이동하고 싶을 때 사용
cd <가고자하는 디렉토리 경로> cd /* 사용자 디렉토리로 이동 */ cd / /* root 디렉토리로 이동 */ cd .. /* 상위 디렉토리로 이동 */ cd Desktop/wecode /* Desktop 하위 wecode 디렉토리로 이동 */
ls (list)
현재 디렉토리에 속한 파일 및 디렉토리를 나열
ls /* 현재 디렉토리에 있는 내용들을 출력 */ ls -a /* 숨겨진 파일이나 디렉토리도 함께 보여줌 */ ls -l /* 자세한 내용 ( 권한, 소유자, 파일 크기 등 ) */ ls -al /* ls -a + ls -al 기능 */
mv (move)
디렉토리를 원하는 곳으로 옮기거나, 이름을 변경할 때 사용할 수 있는 명령어
mv <원본 디렉토리명> <옮기고 싶은 디렉토리명> /* 해당 디렉토리로 파일 이동 */ mv <원본 파일명> <바꾸고 싶은 파일명> /* 원본 파일 이름 변경 */
cp (copy)
파일이나 디렉토리를 원하는 곳에 원하는 이름으로 복사
cp <원본 파일명> <옮기고 싶은 디렉토리명> /* 해당 디렉토리로 원본 파일 복사 */ cp <원본 파일명> <복사해서 만들고 싶은 파일명> /* 해당 파일명으로 사본 파일 생성 */ cp <원본 파일명1> <원본 파일명2> <옮기고 싶은 디렉토리명> /* 여러 파일을 한 번에 해당 디렉토리로 복사 */ cp <원본 디렉토리> -r <옮기고 싶은 디렉토리명> /* 원본 디렉토리의 하위 파일까지 모두 해당 디렉토리로 복사 */
cat (concatenate)
두 개 이상의 파일을 연결해서 출력할 때 사용 (하나만 출력도 가능)
cat <파일명1> <파일명2> ... /* 기본적인 사용방법. 두 개 이상의 파일을 연달아 출력함 */ cat -n <파일명1> <파일명2> ... /* 출력결과 앞에 행을 붙여서 출력 */ cat <파일명1> <파일명2> ... > <새로운 파일명> /* ">" 앞에 있는 파일 내용을 합쳐 새로운 파일로 만들어줌 */ cat <파일명1> <파일명2> ... > <기존 파일명> /* ">" 앞에 있는 파일 내용을 합쳐 기존 파일에 덮어씌움 */ cat <파일명1> <파일명2> ... >> <기존 파일명> /* ">>" 앞에 있는 파일 내용을 합쳐 기존 파일 뒤에 덧붙여줌 */
rm (remove)
파일과 디렉토리 삭제할 때 사용
rm <파일명> /* 해당 파일을 삭제 */ rm *.txt /* .txt로 끝나는 모든 파일을 삭제 */ rm * /* 전체 파일 삭제 */ rm -r <파일명/디렉토리명> /* 해당 파일/디렉토리 삭제 */ rm -rf <파일명/디렉토리명> /* 해당 파일/디렉토리 강제 삭제(경고문구 없이 삭제) */
mkdir (make directory)
새로운 디렉토리를 만들 수 있는 명령어 + touch (유사한 touch는 파일을 생성할 때 사용)
mkdir은 "make directory"의 약자로 새로운 디렉토리를 만들 수 있는 명령어 입니다. 참고로 touch <파일명>으로는 새로운 파일을 만들 수 있습니다.
mkdir <새로운 디렉토리명> /* 해당 경로에 새로운 디렉토리를 만들어줌 */touch <새로운 파일명> / 해당 경로에 새로운 파일을 만들어줌 /
clear (ios cmd+k)
clear는 말 그대로 쉘 창에 있는 기록을 모두 지움
pwd (print working directory)
현재 작업 중인 디렉토리의 절대 경로를 반환
insert mode: press i on normal mode
visual mode: press v on normal mode
command mode: press shift + ; on normal mode
#How to go back to normal mode
just press escape key
Git은 버전 관리 '프로그램'이고 Github는 버전 관리, 소스 코드 공유, 분산 버전 제어 등등이 가능한 원격 '저장소' 이다.
git --version : Git 버전 확인
git 환경설정 :
$ git config --global user.name /* 당신의유저네임 */ $ git config --global user.email /* 당신의메일주소 */ $ git config --global core.editor "vim" $ git config --global core.pager "cat"
$ git config --list : 정상 설정 확인
( 수정이 필요할 경우, $ vi ~/.gitconfig 에서 수정 가능 )
GitHub에서 Repo를 설정에 맞게 생성해 준다. (ex.TIL)
$ git clone <복사한 repo link> 'TIL'에 복제합니다... remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 오브젝트를 받는 중: 100% (3/3), 완료.
! git init 할 때 다른 디렉토리와 헷갈리지 않도록 꼭 주의
$ mkdir first-repo && cd first-repo $ git init $ git remote add origin https://github.com/{username}/{reponame}.git $ touch README.md $ git add README.md $ git commit -m "docs: Create README.md" /* -m 옵션은 사용 자제!*/ $ git push -u origin master /* -u : origin 이라는 원격저장소의 master 브랜치로 연결하여 origin이라는 원격저장소의 master 브랜치를 로컬 저장소의 master 브랜치로 merge 할수 있게 해주겠다는 의미 */
$ git add README.md $ git commit $ git push origin master
feat (features) : 새로운 기능 추가
docs (documentations) : 문서 수정
conf (configurations) : 환경설정 관련
test : 테스트 코드, 리펙토링 테스트 코드 추가
fix: 버그 수정
refactor : 코드 리펙토링
ci (continous integration) : 기업 관련 사항 설정 수정
build : 빌드와 관련
perf (performance) : 성능 개선
style : 코드 변경이 없는 경우, 세미콜론 추가
chore : (코드의 수정 없이) 설정을 변경 또는 자잘한 수정
# Project Name Abstract your project in few lines. see [project sample page](project link) ## Documentation ### Installation To install, `$ pip install sesame` and run `$ python open_sesame.py` ### Supported Python versions `>=3.6` ### More Information - [API docs]() - [Official website]() ### Contributing Please see [CONTRIBUTING.md]() ### License Sesame is Free software, and may be redistributed under the terms of specified in the [LICENSE]() file.
# 주석을 달기 위한 Hashtag # MacOS Setup .DS_Store # Python cache files .py[cdo] # Important files /Important # AWS key key.pem *.java *.py[cod]
오픈소스 사용 및 배포 시, 지켜야할 규칙
github 저장소를 활용해 정적인 사이트 호스팅이 가능
username .github.io
$ git branch /* 현재 있는 브렌치와 브렌치 목록 */ $ git branch <생성할 브렌치명> /* 로컬에 새로운 브렌치를 생성 */ $ git switch <브렌치명> /* 브렌치명으로 브렌치를 변경 */ $ git merge <브렌치명> /* 브렌치명을 머지(병합) */ $ git branch -D <브렌치명> /* 브렌치명을 브렌치에서 삭제 */
(hotfix)- main -(release)- develop - feature
master - feature
production - pre-production - master - feature
Fork: 어떤 Rpeo를 내 Repo로 복사
Pull Request: 내 Repo에서 수정한 내용을 원래의 Repo에 반영해 달라고 요청
Merge: 요청 받은 내용을 원래 Repo에 반영
GitHub Fork Button -> $ git clone <포크한 나의 주소> $ git flow init $ git flow feature start <작업 이름> 작업 ing $ git flow feature finish <작업 이름> $ push -u origin develop <-u 는 최초시 추가>
GitHub Issues ( 풀리퀘스트 버튼을 눌러도 되지만 되도록 이슈로 작성 기능 내용도 같이 적어 준다. ) ->
[내가 Pull Request를 받은 사람이다!] $ git pull origin develop [merge 된 코드를 받아야 되는 다른 사람이다!] $ git remote add upstream (머지 된 주소) $ git remote -v (버전 확인) ////////// 여기서 부터 2가지 방법 ////////// <1번째> $ gitt fetch upstream develop -> 골라서 merge 가능 $ git merge fetch_head -> 골라서 merge 가능 <2번째> Git pull upstream develop
! add, commit, push 할 때는 항상 신중하게 할 것
로컬에서 작업한 내용을 되돌릴 때
$ git restore <파일명> add 취소 $ git reset HEAD <파일명> commit 취소 $ git reset --soft HEAD^ <파일명> commit 간단한 수정 $ git commit —amend