일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vim
- 유니티
- 깃
- 포인터
- 구조체
- 도커
- Flutter
- Unity
- jupyter
- Houdini
- jupyter lab
- git
- C# delegate
- c언어
- c# 추상 클래스
- HTML
- Python
- c# 윈폼
- 다트 언어
- gitlab
- dart 언어
- C언어 포인터
- github
- c#
- C++
- docker
- Data Structure
- c# winform
- Algorithm
- 플러터
- Today
- Total
목록분류 전체보기 (507)
nomad-programmer
마지막 커밋 메시지를 수정하는 명령은 간단하다. // 마지막 커밋 메시지 수정 git commit --amend 위 명령을 실행하면 마지막 커밋과 커밋하지 않은 상태에 있는 변경 내역이 서로 합쳐진 새 커밋을 만들게 된다. 만약 아무런 변경 내역을 만들지 않고 명령어를 실행하면 커밋 메시지만 변경하게 되는 것과 같은 효과를 낼 수 있다. 변경 내역을 만들었다면 변경 내역을 추가하기 위해 git add 명령을 실행한 후 git commit --amend 명령을 실행한다. 엄밀히 말하자면, git commit --amend는 최종 커밋을 수정하는 것이 아니라 최종 커밋을 대체하는 새로운 커밋을 만드는 것이다. 명령을 실행하기 전과 후의 커밋 SHA-1 체크섬 값을 비교해보면 확실하게 알 수 있다.
git tag 명령은 저장소의 커밋에 태그를 붙이는 명령어이다. 간단하게 그냥 버전 이름 같이 이름만을 붙이는 'light weight' 태그와 태그 작성자와 간단한 메모를 함께 태그에 남기는 'annotated' 태그가 있다. 만약 가장 최근 커밋에 태그를 붙이고 싶다면 간단하게 다음 명령을 실행하면 된다. // 가장 최근 커밋에 태그 붙이기 git tag 여기에서는 1.0이라는 버전 이름으로 태그를 붙였다. 그리고 태그가 붙여졌는지 확인하기 위해 다음 명령을 실행한다. 로그와 함께 태그를 볼 수 있다. // 태그 확인 git log --decorate -1 // 현재 저장소에 있는 태그 리스트 확인 git log -l // 태그와 커밋 SHA-1 체크섬 값을 함께 확인 git show-ref --ta..
// 관리자 모드로 작업 // 디렉토리 이동 후 파일 생성 cd /etc/systemd/system vim jupyter.service 아래의 내용을 jupyter.service 파일에 작성한다. 부분은 사용자 이름이다. 작성하고 저장한다. 그 후 서비스를 등록한다. // 데몬 시스템 리로드 systemctl daemon-reload // jupyter 서비스 등록 systemctl enable jupyter.service // jupyter 서비스 시작 systemctl start jupyter.service // jupyter 서비스 상태 systemctl status jupyter.service // 참고로 서비스 정지는... systemctl stop jupyter.service 이렇게 등록까지 ..
// usb를 삽입한 후 df -h 명령으로 어디에 마운트가 되었는지 확인한다. df -h // usb를 언마운트한다. umount /dev/sdf1 // mkfs.ntfs 명령으로 usb를 ntfs형식으로 포맷한다. mkfs.ntfs /dev/sdf1
디렉토리 설명 / 최상위에 있는 디렉토리로 root 디렉토리라고 한다. /bin 기본 실행 파일들. 즉, 사용자 명령어들이 들어있다. /boot 시스템 부팅시 필요한 파일들이 들어있다. /dev 플로피, 하드디스크, CD-ROM 드라이브 등의 각종 장치 파일들을 모아 놓는 곳이다. /etc 시스템 관리시 필요한 스크립트 파일들과 설정 파일들이 들어있다. /home 일반적으로 사용자들이 사용할 수 있는 계정의 홈 디렉토리가 위치한다. 예를 들어 linuxer라는 계정으로 로그인할 경우 이 계정의 홈 디렉토리로는 /home/linuxer이다. /lib 각종 라이브러리가 저장된 디렉토리로 커널 모듈도 이곳에 있다. /lost+found ext2 및 ext3 파일 시스템에서 파일 시스템 복구를 위한 디렉토리이다..
su -c "echo 3 > '/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'" root
환경변수에 추가하고 싶은 경로가 있다면 추가해야 한다. 허나 리눅스에서 환경변수를 추가할 수 있는 부분이 상당히 많다. 이를테면, $HOME/.bashrc, $HOME/.bash_profile, /etc/profile 등등... 그래서 만약 환경변수에 추가하고자하는 경로가 이미 존재한다면 추가하지 않도록 하는 방법을 소개한다. // path에 ffmpeg_bin_dir 경로가 없다면 추가 [[ ":$PATH:" != *":${FFMPEG_BIN_DIR}:"* ]] && PATH="${FFMPEG_BIN_DIR}:${PATH}" // ld_library_path에 ffmpeg_lib_dir 경로가 없다면 추가 [[ ":$LD_LIBRARY_PATH:" != *":${FFMPEG_LIB_DIR}:"* ]] ..
flameshot - 스크린샷 편집도구 https://github.com/lupoDharkael/flameshot lupoDharkael/flameshot Powerful yet simple to use screenshot software. Contribute to lupoDharkael/flameshot development by creating an account on GitHub. github.com // Compile-time dnf install gcc-c++ qt5-devel qt5-qtbase-devel qt5-linguist // Run-time dnf install qt5-qtbase qt5-qtsvg-devel // Optional dnf install git openssl ca-cer..
// jupyterLAB 설치 conda install -c conda-forge jupyterlab // jupyter config file 생성 jupyter lab --generate-config
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/RyZqh/btqz4VYCzaR/AK17oodQmgEKh6kUTxCKNK/img.png)
// font jupyter labextension install @deathbeds/jupyterlab-fonts --no-build jupyter labextension install @deathbeds/jupyterlab-font-anonymous-pro --no-build jupyter labextension install @deathbeds/jupyterlab-font-dejavu-sans-mono --no-build jupyter labextension install @deathbeds/jupyterlab-font-fira-code --no-build // cell tags jupyter labextension install @jupyterlab/celltags --no-build // git..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0w1NY/btqz13cdjI0/AbWToNZdx9j9kLsGnqI7Y0/img.png)
대상의 명령어 집합들이 실행되어 주피터 노트북이 실행되는 것이다. 하지만 노트북이 아니라 jupyter LAB을 실행할 것이니 때문에 명령어를 바꿔준다. // 변경 전 명령어 C:\Anaconda3\python.exe C:\Anaconda3\cwp.py C:\Anaconda3 C:\Anaconda3\python.exe C:\Anaconda3\Scripts\jupyter-notebook-script.py "%USERPROFILE%/" // 변경 후 명령어 C:\Anaconda3\python.exe C:\Anaconda3\cwp.py C:\Anaconda3 C:\Anaconda3\python.exe C:\Anaconda3\Scripts\jupyter-lab-script.py "%USERPROFILE%/" /..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d0BOyC/btqz3BMBmYy/ynLP8E40UU5ls5Gd5LoiX0/img.png)
// [선택] conda create --name python= [anaconda] 입맛에 맞게 가상 환경을 만든다. 그 후 jupyterlab에서 그 가상환경을 쓸 수 있도록 추가해주면 된다. // 커널을 생성하고자하는 가상환경으로 접속 후 작업한다. // 커널 설치 conda install ipykernel // 주피터 커널 생성 python -m ipykernel install --user --name [--display-name=""] 이렇게 하면 jupyterlab에서 본인이 생성한 가상환경을 커널로 쓸 수 있다. 주피터 커널 삭제 // 콘다로 가상환경을 삭제하여도 커널은 남아있는다. 그래서 커널도 지워야 완전하게 지워진것이다. // 주피터 커널스펙 리스트로 삭제할 커널 이름 확인 jupyter..
원격 저장소를 이용하다 보면 다른 누군가가 커밋할 경우가 있다. 예를 들면, 로컬 저장소에서 작업하는 도중에 다른 협업자가 원격 저장소를 먼저 변경할 수 있는 것 등이다. 이런 경우 git은 푸시를 허용하지 않는다. 로컬 저장소의 커밋들을 원격 저장소와 맞춰야 한다. 이럴 때 하는 것이 페치(fetch) 이다. fetch 는 원격 저장소와 커밋들을 로컬 저장소로 가져온다. 사용자는 로컬로 가져온 커밋들을 자신이 여태까지 한 로컬 저장소의 작업과 적절히 병합해서 원격 저장소에 제출해야 한다. 원격 저장소의 커밋들을 로컬 저장소로 가져와 합하는 방법은 git fetch 와 git pull 크게 두 가지가 있다. git pull 명령은 원격 저장소의 정보를 가져오면 자동으로 로컬 브랜치에 병합까지 수행하는 것..
git push 명령은 기본적으로 커밋들을 원격 저장소의 master 브랜치에 업로드하며, 다양한 옵션을 통해 특정 브랜치의 내용을 업데이트하거나 태그(tag)를 푸시하는 등의 작업을 한다. git push origin --all 위의 명령은 일반화하자면 git push 원격저장소별칭 로컬브랜치이름 --all 옵션은 origin 저장소에 로컬의 모든 브랜치를 푸시하는 것이다. git은 원격 저장소에 로컬 저장소의 브랜치와 같은 이름의 브랜치가 있다면 해당 브랜치를 변경하고 없다면 새 브랜치를 원격 저장소에 만든다. 단, 주의할 점은 같은 이름의 브랜치가 있는데 서로의 내역이 다르다면 푸시를 거부한다. 즉, 백지상태인 원격 저장소에 로컬 저장소에서 작업한 것을 푸시해야 한다.
기본적으로 여러 사람과 협업할 때는 빈 원격 저장소를 만들고 협업을 책임지는 사람이 기본 프로젝트 구조를 만든 후, 이를 관리하고 협업하는 사람 모두가 빈 원격 저장소를 클론해서 본인이 해야 하는 작업을 진행하면 된다. 그러면 협업을 책임지는 사람이 기존에 이미 작업해놓은 로컬 저장소가 있고 이를 원격 저장소와 연결한다고 생각해보자. 빈 원격 저장소를 클론하고 기존에 작업하던 파일들을 옳기는 것도 가능하겠지만 번거롭기도 하고 뭔가 이치에도 맞지 않는다. 그래서 git에서는 로컬 저장소를 빈 원격 저장소와 연결하는 명령이 있다. git remote 이다. 이 명령은 원격 저장소와 연결하는 것은 물론 원격 저장소와의 연결 상태를 확인하거나 원격 저장소의 긴 주소를 병칭으로 지어 줄여주기까지 한다. * git..
분산 버전 관리 시스템은 다른 사람과의 협업을 염두에 둔 것이다. 결국 원격 저장소와 로컬 저장소 사이를 얼마나 효율적으로 관리하느냐가 관건이다. 관리는 위해 git에서는 원격 저장소와 소통하기 위한 기능을 제공한다. 원격 저장소의 내용을 로컬 저장소로 가져오거나, 로컬 저장소를 원격 저장소와 연결하고 보내거나, 수정된 내역을 확인하고 병합하는 등의 과정을 제공한다. 명령어 기능 git clone 원격 저장소의 모든 내용을 로컬 저장소로 복사 git remote 로컬 저장소를 특정 원격 저장소와 연결 git push 로컬 저장소의 내용을 보내거나 로컬 저장소의 변경 사항을 원격 저장소로 보낸다 git fetch 로컬 저장소와 원격 저장소의 변경 사항이 다를 때 이를 비교 대조하고 git merge 명령어..
github는 기본적으로 각 사용자가 원격 저장소를 만들고 해당 원격 저장소를 다른 사용자와 공유하는 개념이다. 따라서 원격 저장소의 관리는 사용자 관리와 밀접한 관련이 있다. 이러한 관리를 세분화하기 위해 github는 공개(public) 원격 저장소와 비공개(private) 원격 저장소로 나뉜다. 비공개 원격 저장소와 공개 원격 저장소 특징 원격 저장소 특징 공개 원격 저장소 저장소 관리자, 협업자(collaborators) 이외에는 쓰기 권한이 없다. github 사용자라면 누구나 읽기 권한과 포크 권한이 있다. github 사용자 누구에게든 소유권을 이전할 수 있다. 비공개 원격 저장소 관리자가 지정한 협업자만 접근해서 다룰 수 있다. 지정한 협업자에게만 포크 기능이 열려있다. 유료 사용자에게만 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nqO9s/btqz0BNpbLA/oX615tbHaz3AIt44PXjMZ0/img.png)
https://github.com Build software better, together GitHub is where people build software. More than 40 million people use GitHub to discover, fork, and contribute to over 100 million projects. github.com 위의 링크를 타고 들어가 가입한다. 지불하는 비용에 따라서 비공개 저장소를 얼마나 사용할 수 있는지가 정해진다. 무료로 이용한다면 github에서 생성하는 모든 저장소는 공개 저장소가 된다. * Help me set up an organization next 체크 박스는 많은 사람이 협업 할 때 팀을 만들어서 활동하도록 설정하겠다는 의미이다. 원..
git은 혼자만 사용하려고 배우는 것이 아니다. 물론 개인 프로젝트에도 git과 같은 버전 관리 시스템을 활용하는 의미가 있지만, git은 무엇보다도 다른 사람들과 협업을 하기 위한 도구로서의 의미가 더 크다. 협업 도구로서 git의 가장 큰 유용함은 원격 저장소(remote repository)이다. 원격저장소와 GitHub 무엇보다도 협업할 때 중요한 개념이 git의 원격 저장소 부분이다. 물론 로컬 환경에서만 git을 사용해 개인 프로젝트를 관리하는 것도 git의 훌륭한 사용 방법 중 한 가지다. 하지만 git이 무엇보다 좋은 이유는 원격 저장소 때문이다. git의 핵심이라고 이야기할 정도다. 이러한 git 원격 저장소를 제공하는 대표적인 서비스가 github이다. github는 단순히 원격 저장소..
프로젝트 작업을 계속하다 보면 언제 어떤 작업 후에 커밋을 했는지 헷갈리기 시작한다. 혹은 여러 사람이 저장소에 접근해서 커밋한다면 더 그럴 수 있다. 따라서 커밋 내역을 확인 할 수 있는 기능이 필요한데 그것이 바로 git log 명령이다. 기본적으로 40글자의 SHA-1 체크섬 값, 커밋한 사용자, 커밋 시각, 커밋 메시지 등의 커밋 내역을 확인할 수 있다. --graph 옵션의 경우, 맨 왼쪽을 살펴보면 녹색과 빨간색 세로 점선이 나누어진 것을 볼 수 있다. 이는 브랜치의 분기 내역을 보여주는 것이다. git log 명령의 옵션 옵션 설명 git log -p 각 커밋에 적용된 실제 변경 내용을 보여준다. git log --word-diff diff 명령의 실행 결과를 단어 단위로 보여준다. git ..