Development-environment-setting

Linux 설치

Mac에서 ubuntu 부팅 usb 만들기 link
이후 Bios(F2 연타) 진입하여 부팅 순서 변경
+) xmp 지원시 xmp enabled로 변경 link

Linux 세팅

Chrome 설치 link
한글 설치 link
Slack 설치 link
gcc 설치

sudo apt install gcc

CLion 설치 link
VScode 설치 link

설치 되어있는 패키지들의 새로운 버젼이 있는지 확인 (밑의 과정 하기 전에 필수)

sudo apt-get update

GPU 기본적인 설정이 안되어 있는 경우

GPU drive —> CUDA —> cudnn 순서로 설치 진행

  1. NVIDIA GPU driver link
  2. CUDA link --> run_file(local)로 해야함. ".run" 실행후 driver 설치는 체크 해제해야함. 안 그러면 사전에 깔려있는 driver 지워짐 [NVIDIA GPU driver & CUDA compatability]
# set CUDA path 
# (set to the symlink cuda rather than explicit cudaX.X for cases when you use multiple CUDA version)
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
  1. cudNN download link install guide1 install guide2 install guide3 (22.04)
  2. Final check
nvcc --V (check CUDA version)
nvidia-smi (check whether the GPU is correctly detected)

CUDA가 여러개 설치되어있고 필요할 때마다 변경해야하는 경우

  1. /usr/local/cuda symbolic link 제거 후 원하는 버전으로 변경
cd /usr/local
sudo rm cuda
sudo ln -s cuda-XX.XX cuda
ls -la (check symbolic link)
  1. ~/.zshrc에 아래 추가 (없을 때만) (zshell이 아니라 기본 쉘 사용하고 있는 경우 ~/.bashrc에 추가)
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
  1. ~/.profile 수정
export PATH=/usr/local/cuda-XX.XX/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-XX.XX/lib64:$LD_LIBRARY_PATH
  1. 수정 사항 반영
source ~/.bashrc
source ~/.profile
  1. 확인
nvcc -V

z shell 설치

  1. zsh 설치
sudo apt-get install zsh
zsh --version
chsh -s /usr/bin/zsh (z shell을 기본 쉘로 설정)
이후 꼭 linux에서 로그아웃했다가 다시 로그인하기! 그래야 기본 쉘 바뀜!
echo $SHELL (—>   /usr/bin/zsh 이 나와야함)
  1. oh-my-zsh 설치
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  1. Powerlevel10k 설치 link --> follow "Oh My Zsh" rather than "Manual" (git clone 후 ‘~/zshrc’ 안을 ZSH_THEME="powerlevel10k/powerlevel10k”로 수정)
  2. 터미널 나갔다가 들어오면 하라는대로 잘 따라가면 됨
  3. .p10k.zsh 가서 색변경 (source ~/.p10k.zsh 해야 적용됨) link
typeset -g POWERLEVEL9K_DIR_BACKGROUND=27 # default: 4 (blue, it's OK)
typeset -g POWERLEVEL9K_DIR_FOREGROUND=254
typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=27 # default: 4 (blue, it's OK)

vim 및 vim pluggin 설치 (자동 완성 플러그인은 바로 밑에 부연 설명. 과정이 김)

  1. vim 설치
sudo apt-get install vim
  1. vim-plug 설치 link
  2. ~/.vimrc 에 플러그인 추가 (lightline, nerdtree, coc.nvim) link
  3. 변화 반영
:source ~/.vimrc. (vim 상에서 진행!)
  1. 플러그인 설치
:PlugInstall

자동완성 vim 플러그인 설치

  1. node.js와 yarn 설치 link yarn 설치시 error 나면 sudo 붙여서 해보기 이후에 link 나와있는대로 node.js 버전 업그레이드 해야함 (>12.2)
  2. coc.nvim 이라는 vim 플러그인 설치 link
  3. :CocInstall coc-pyright, coc-clangd link
  4. .vimrc에 다음 추가 (lightline 시작할 때부터 돌아가게 함)
set laststatus=2
  1. 변화 반영 (vim 상에서 진행!)
:source ~/.vimrc.

miniconda 설치

  1. .sh 설치 파일 실행 link (기본 초기화 yes!)
  2. ~/.bashrc에 생성된 conda 경로 잡는 부분을 ~/.zshrc로 이동 (z shell 사용하는 경우)
  3. 부가 설정 + 필요한 환경 생성 후
conda config --set auto_activate_base false (자동 실행 막음)
condo create -n (env 이름) (조건)
condo activate (env 이름)

기타 설치 (tmux, git, htop, gpustat, imagemagick)

sudo apt-get install tmux
sudo apt-get install terminator
sudo apt install git-all
sudo apt-get install htop
sudo apt-get install gpustat
sudo apt-get install imagemagick (==> can use 'display' command in terminal to view image)

Anydesk 설치

  1. Download debian file from the download link and install link
  2. Enable "Unattended access w/ password" link

git ssh key 생성 및 등록

  1. key 생성 및 local ssh-agent에 등록 link
  2. 생성한 key git에 등록 link

CF

  • NVIDIA NVML Driver/library version mismatch 해결방법 link

Ubuntu desktop gui 등에 문제가 생겨서 이상하게 나타나는 경우

sudo apt-get update
sudo apt-get install --reinstall ubuntu-desktop

git branch 생성 후 커밋

git branch XXX  (XXX branch local에 생성)
git checkout XXX  (XXX branch로 현재 상태 변경)
(위 두 줄은 git checkout -b XXX 와 동일)
(파일들 수정 후)
git add .
git commit -m "남기고 싶은 메세지"
git push origin XXX

git branch 이름 변경하기 link

git branch 삭제

git branch -d XXX (로컬에서 branch 삭제)
git push origin --delete XXX (원격에서 삭제)

git add/commit 취소 link

git clone 후 새로운 repository로 push

# 기존 repository의 history를 지우고 싶은 경우
git clone OLD.git
cd OLD
rm -rf *.git
git init
git add .
git commit -m "xxx"
git remote add origin NEW.git
git push -u origin master

# 기존 repository의 history를 지우고 싶은 경우
git clone --mirror OLD.git
cd OLD
git remote set-url --push origin NEW.git
git push --mirror

Ubuntu desktop ssh 접속 link link link

  • 접속하려고 하는 pc가 바로 랜선에 꼽아져있고 고유 외부 ip가 있는 경우
ssh username@ 접속 pc 외부 ip (-p 포트) [기본 포트: 22]
  • 접속하려고 하는 pc가 공유기에 꼽아져있는 경우 -> ifconfig로 나온 주소는 공유기가 접속하려고 하는 pc에 부여한 내부 ip. 공유기 주소로 접속후 포트 포워딩으로 해당 pc에 접속
ssh username@공유기 외부 ip -p 포트 [포트: 포워딩한 포트]

포트 포워딩은 공유기 관리자 사이트에서 진행 link

Ubuntu 방화벽 확인 link

Ubuntu terminator 단축키

* 수평 분할        : Ctrl + Shift + O
* 수직 분할        : Ctrl + Shift + E
* 현재 활성 창 닫기  : Ctrl + Shift + W
* 터미네이터 실행    : Ctrl + Alt + T
* 터미네이터 종료    : Ctrl + Shift + Q
* 창 전환          : Alt + 방향키

MAC iterm2 단축키 link

* 새창 열기        : option + space
* 창 수평 분할      : command + D
* 창 수평 분할      : command + shift + D

Git

git push <remote-name> <local-branch-name>:<remote-branch-name>

Docker

docker ps   # check container history
docker ps -a    # check currently running container
docker start [container_name]   # start container
docker stop [container_name]    # stop container
docker rename [old_container_name] [new_container_name]   # rename container
docker exec -it [container_name] bash   # attach to the container. In this way, the container does not stop even after exit
docker attach [container_name]    # attach to the container. In this way, ctrl+p --> ctrl+q is required to exit container without stopping it. Exit naively will stop the container.
docker container prune    # remove all the stopped container