[Note] Tips of Linux, Git and Blog

Author

SEOYEON CHOI

Published

December 31, 2023

Non Category

- ls vs mc

“ls”는 현재 디렉터리의 파일 및 폴더 목록을 표시하는 명령어이고, “mc”는 Midnight Commander라는 파일 관리자 프로그램

macOS (Homebrew를 통한 설치):

brew install mc

- 파일 출력

cat 파일이름
cat example.txt

Jupyter

- 설치

conda install -c conda-forge jupyterlab 
conda install -c conda-forge notebook

- 비밂번호

jupyter notebook password

- 실행

jupyter lab --ip="0.0.0.0" --port={MY-PORT} --no-browser --allow-root

0.0.0.0은 아이피 번호, {MY-PORT}에 사용할 포트 번호 적기

- 비번 없이 주피터 랩/노트 열어놓기

jupyter lab --LabApp.token='' --LabApp.password=''
jupyter notebook --NotebookApp.token='' --NotebookApp.password='' 

Pytorch

홈페이지에서 코드 받아 직접 설치

- 예시

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

버전 등 신경써서. 오류날 수 있으니

Git

- 사용자 아이디랑 비번 안 치게

git config credential.helper store

large file 관리

- Large file git push 가능하도록 하는 방법(100mb인가 넘으면 git push 오류남)

git lfs install
  • Git Large File Storage (LFS)를 사용하도록 Git을 구성하는 명령어입니다.
  • Git LFS는 대용량 파일을 효과적으로 관리할 수 있도록 도와주는 확장 기능

- 사용법

git lfs track “*.npy" 
  • npy로 끝나는 파일 찾아서 large file 업로드 가능하도록 만들어서 push
  • 즉, 원하는 파일 확장자 다 large file git push 가능하도록 설정할 수 있다.
  • 원하는 파일만 큰 따옴표 안에 지정해서 large file git push 가능하도록 성정할 수 있다.

git switch main/gh-pages(branch name)

quarto page 오류뜰때 사용할 수 있는 방법, 파일 지우는 과정 있어서 조심해서 코드 작성해야 함

- main 브랜치

git switch main

- gh-pages 브랜치

git switch gh-pages 

- step

  1. git switch main으로 main으로 가서
    • git add .
    • git commit -m .
    • git push
  2. git switch gh-pages 으로 gh-pages로 가서
    • 모든 파일 삭제.
    • 여기는 페이지의 파일이라 삭제해도 무방
    • main이 기본, gh-pages는 페이지를 만들기 위한 임시 공간으로서 여기 있는 파일 다 지워도 main에는 남아 있음
    • git add .
    • git commit -m .
    • git push 하고
  3. git switch mainmain 다시 가서
    • git add .
    • git commit -m .
    • git push

파일 삭제할때 사용!

rm -rf * 
rm -rf 파일명

Quarto

Update

1 다운로드 주소를 복사한다.

2 코드를 입력한다.(wget 주소를 직접 얻어서 sudo 관리자권한으로 실행 순서), 아래는 예시임!

wget https://github.com/quarto-dev/quarto-cli/releases/download/v1.4.315/quarto-1.4.315-linux-amd64.deb
sudo dpkg -i quarto-1.4.315-linux-amd64.deb 
  • sudo: 명령어를 관리자 권한으로 실행하기 위한 명령어입니다.
  • dpkg: Debian 패키지 관리자입니다.
  • -i: 패키지를 설치하기 위한 옵션입니다.

Presentation

- 렌더링, latex의 build랑 같은 개념(문서화한다는 뜻으로 보면 될 듯)

quarto render 파일이름.파일형식
  • qmd, ipynb,…

- 미리보기

quarto preview 파일이름.파일형식 --no-browser --host 0.0.0.0
  • --no-browser 안 쓰면 자동으로 브라우저 오픈된다.

Editor

nano

- 설치

sudo apt-get install nano   # Debian/Ubuntu
sudo yum install nano       # Red Hat/Fedora

- 여는 법

nano 파일이름.파일형식(nano ref.bib)

- 사용법

  • 저장: Ctrl + O
  • 종료: Ctrl + X
  • 특수 문자: ^는 Ctrl을 나타냅니다. 예를 들어, ^G는 Ctrl + G를 의미합니다

nano로 매크로같은 명령어 파일 만들기

1 sh확장자 가진 push 파일을 만들기

nano push.sh

터미널에서 보면 파일명이 흰색임

2 실행하고 싶은 명령어 입력

  • git add . / git commit -m . / git push 등 하고 싶은 명령어 넣고

3 실행 권한 추가하기

chmod +x push.sh

터미널에서 보면 파일명이 녹색으로 바뀜

  • change mode, 실행권한을 추가하라(+x) push라는 sh 확장자를 가진 파일에

4 시행

  • 이제 ~/push.sh 를 해당 quarto 블로그 들어가서 입력하여 시행만 하면 된다.

Vim

- 설치

sudo apt-get install vim   # Debian/Ubuntu
sudo yum install vim       # Red Hat/Fedora

- 여는 법

vim 파일이름.파일형식

- 사용법

  • 편집 모드로 전환: i 키를 누르기
  • 편집 완료 후 저장 및 종료: Esc 키를 누르고 :wq 입력 후 엔터
    • 수정하고 q만 누르면 에러 뜬다. 저장 할 게 있기 때문이다.

Anaconda

가상환경 관련

- 가상환경 생성

conda create -n my_python_env python==3.8
  • conda create: Conda를 사용하여 가상 환경을 생성하는 명령어입니다.
  • -n my_python_env: 가상 환경의 이름을 설정하는 옵션으로, 여기서는 “my_python_env”로 지정되었습니다.
  • python==3.8: 생성할 가상 환경에 설치할 Python 버전을 지정하는 옵션으로, 여기서는 Python 3.8로 지정되었습니다.
    • 버전 지정 안 하면 최신 버전으로 지정된다.

- 버전 확인

conda –version
  • conda --version: 현재 설치된 Conda의 버전을 확인하는 명령어입니다.

- 가상환경 업데이트

conda update
  • Conda 자체를 업데이트하는 명령어입니다. Conda를 최신 버전으로 업데이트합니다.

- 가상환경 활성화

conda activate YOUR_ENV_NAME
  • 생성한 가상 환경을 활성화하는 명령어입니다. YOUR_ENV_NAME 부분에는 실제 가상 환경의 이름이 들어갑니다.

- 가상환경 비활성화

conda deactivate
  • 현재 활성화된 가상 환경을 비활성화하는 명령어입니다.

- 가상환경 목록 확인

conda env list
conda info --envs
  • 현재 시스템에 설치된 가상 환경 목록을 확인하는 명령어입니다.

- 가상환경 삭제

conda env remove --name YOUR_ENV_NAME --all
  • 지정된 가상 환경을 삭제하는 명령어입니다.
  • --name YOUR_ENV_NAME: 삭제할 가상 환경의 이름을 지정하는 옵션입니다.
  • --all: 가상 환경에 포함된 모든 패키지를 함께 제거하는 옵션입니다.

R 관련

- r 실행

conda install -c conda-forge r-essentials 
  • conda install: Conda를 사용하여 패키지를 설치하는 명령어입니다.
  • -c conda-forge: 패키지를 검색하고 가져올 채널을 지정하는 옵션입니다. 여기서는 conda-forge 채널에서 패키지를 찾아 가져오라는 의미입니다. conda-forge는 커뮤니티가 관리하는 Conda 패키지 저장소입니다.
  • r-essentials: R 언어와 관련된 필수 패키지들을 묶어놓은 메타 패키지입니다. R 언어의 중요한 패키지들을 포함하고 있어, R을 사용하는데 필수적인 패키지들을 편리하게 설치할 수 있게 도와줍니다.

경로

- local로 가기

cd /

- home dr로 가기

cd~

ps

ps aux
  • process status all user x 의 약자인듯

  • Unix 및 Linux 시스템에서 실행 중인 프로세스에 대한 상세한 정보를 제공하는 명령어입니다

  • 이 명령어는 시스템의 모든 사용자에 대한 프로세스 목록을 보여줍니다. 각 컬럼은 프로세스의 다양한 정보를 나타냅니다.

  • USER: 프로세스를 실행한 사용자의 이름입니다.

  • PID: 프로세스 ID로, 각 프로세스를 고유하게 식별하는 번호입니다.

  • %CPU: CPU 사용량의 백분율을 나타냅니다.

  • %MEM: 메모리 사용량의 백분율을 나타냅니다.

  • VSZ: 가상 메모리 크기(KB)입니다.

  • RSS: 실제 메모리 크기(KB)입니다.

  • TTY: 터미널 유형입니다.

  • STAT: 프로세스의 상태를 나타냅니다. 예를 들어, R은 실행 중인 프로세스를 나타냅니다.

  • START: 프로세스가 시작된 시간입니다.

  • TIME: 누적 CPU 사용 시간입니다.

  • COMMAND: 프로세스를 시작한 명령어 또는 실행 파일입니다.

- jupyter 들어간 프로세스 이름 검색

ps aux | grep jupyter
  • ps: 현재 실행 중인 프로세스를 보기 위한 명령어.

  • aux: 프로세스의 상세 정보를 출력하는 옵션으로, 사용자(user), CPU 사용량(%CPU), 메모리 사용량(%MEM), 시작 시간 등을 표시합니다.

  • | (파이프): 앞의 명령어의 출력을 뒤의 명령어의 입력으로 보냅니다.

  • grep jupyter: 출력된 결과 중 “jupyter”라는 문자열을 찾아서 보여줍니다.

  • 주피터 프로세스 죽이고 싶을때 여기서 프로세스 찾아서 하면 됨

kill 프로세스 번호

권한

- 루트 (Root) / 슈퍼유저 (Superuser)

  • 역할: 시스템에서 최상위 권한을 가진 사용자로, 모든 권한을 가지고 있습니다.
  • 계정명: 일반적으로 “root” 계정으로 알려져 있습니다.
  • 권한: 시스템의 모든 리소스에 접근하고 수정할 수 있는 권한을 가지며, 시스템 설정과 관련된 모든 작업을 수행할 수 있습니다.
  • 주의사항: 루트 계정은 매우 강력한 권한을 가지기 때문에 조심해서 사용해야 하며, 필요한 경우에만 사용해야 합니다.

- 일반 유저

  • 역할: 시스템에 로그인하여 작업을 수행하는 일반 사용자입니다.
  • 계정명: 개별 사용자가 생성한 계정으로, 각자의 홈 디렉터리에만 접근할 수 있습니다.
  • 권한: 자신의 홈 디렉터리 및 필요한 파일 및 디렉터리에 대해서만 읽기/쓰기/실행 권한을 가지고 있습니다.
  • 주의사항: 시스템 관리 작업을 할 때에는 슈퍼유저로 전환하여 실행해야 하는 작업이 있습니다.

- 슈퍼유저 (Superuser) / 관리자 권한 유저

  • 역할: 특정 작업을 위해 일시적으로 루트 권한을 얻을 수 있는 사용자입니다.
  • 계정명: 다양한 시스템에서는 “sudo” 명령어를 통해 슈퍼유저 권한을 얻기 위해 설정된 사용자입니다.
  • 권한: 슈퍼유저 권한을 사용하여 일부 시스템 관리 작업을 수행할 수 있습니다.
  • 주의사항: 슈퍼유저 권한을 남용하지 않도록 주의해야 하며, 필요한 경우에만 슈퍼유저 권한을 사용해야 합니다.

- sudo

루트권한(관리자권한)획득하는 코드

sudo -i

파일 저장

- jupyter 들어간 프로세스 이름 검색해서 sh.txt 파일로 저장

ps aux | grep jupyter > sh.txt

- 현재 Conda 환경에 설치된 패키지들의 목록을 con.txt 로 저장

conda list > con.txt

- 현재 Python 환경에 설치된 패키지들의 목록을 pip.txt로 저장

pip list > pip.txt

- pip로 설치한 목록들

pip freeze 

- pip로 설치한 목록들을 dd.md 파일로 저장

pip freeze > dd.md
  • pip freeze 명령어는 현재 Python 가상 환경에 설치된 패키지들의 상세 정보를 나열, 각 패키지와 버전을 한 줄씩 표시합니다. 일반적으로 개발 프로젝트를 다른 환경에서 재현하거나 배포할 때 사용됩니다.
  • .mdMarkdown 파일

- 이전 입력한 코드 저장(현재 했던 기록 중에서)

history>hist.txt

바로 설치되도록 환경 저장하는법

1

pip freeze > requirements.txt

2

conda list -e > requirements_conda.txt
  • 이 명령어는 현재 Conda 환경에 설치된 패키지들과 그 버전을 나열하여 “requirements_conda.txt” 파일에 저장합니다.
  • -e 옵션은 Conda 환경의 정확한 사양(specification)을 나열하도록 합니다. 이 또한 프로젝트의 의존성을 추적하고, 다른 환경에서 동일한 패키지를 설치하는 데 사용됩니다.
  • 결과 파일은 일반적으로 Conda 환경을 재현하는 데 사용됩니다.

파일 복사해서 이동하기

summary.txt파일을 copy(cp)해서 ~/Dropbox 폴더로 옮기기

cp summery.txt ~/Dropbox
  • cp: “copy”의 약자로, 파일을 복사하는 명령어입니다.
  • summery.txt: 복사할 대상 파일의 이름입니다. 여기서는 “summery.txt” 파일을 대상으로 선택했습니다.
  • ~/Dropbox: ~는 홈 디렉토리를 나타내며, ~/Dropbox는 현재 사용자의 홈 디렉토리 내에 있는 “Dropbox” 디렉토리를 가리킵니다. 따라서 복사된 파일은 사용자의 Dropbox 디렉토리로 이동됩니다.

NVIDIA

물론 NVIDIA 설치해야 가능함

nvidia-smi

일반적인 출력 결과 아래

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.39       Driver Version: 460.39       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla K80           Off  | 00000000:00:1E.0 Off |                    0 |
| N/A   52C    P0    58W / 149W |    299MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
  • Driver Version: 현재 설치된 NVIDIA GPU 드라이버의 버전입니다.
  • CUDA Version: 현재 설치된 CUDA (Compute Unified Device Architecture) 버전입니다.
  • GPU Name: GPU의 모델명입니다.
  • Fan, Temp, Perf, Pwr: GPU의 팬 상태, 온도, 성능, 전력 사용량 등을 보여줍니다.
  • Memory Usage: GPU 메모리 사용량 및 총 메모리 크기를 보여줍니다.
  • GPU-Util: GPU의 사용률을 나타냅니다.
  • Compute M.: 현재 GPU에서 사용 중인 컴퓨트 모드를 나타냅니다.

Install

apt-get

사용되는 곳: 주로 Debian 및 Ubuntu 리눅스 기반 시스템에서 사용

패키지 형식: 시스템 수준의 패키지를 설치하는 데 사용

Ubuntu level의 패키지 설치

예시:

  • sudo apt-get update
  • sudo apt-get install 패키지이름
  • wget
  • curl

pip

사용되는 곳: Python 패키지를 설치 및 관리하는 데 사용

패키지 형식: Python 패키지를 설치하는 데 사용

Python Package만 가능 numpy, pandas 등

예시:

  • pip install 패키지이름

conda

사용되는 곳: 데이터 과학 및 머신러닝 패키지를 관리하는 데 주로 사용

패키지 형식: Python 및 다른 언어의 패키지를 설치할 수 있으며, 가상 환경과 종속성 관리에 강한 포커스가 있음.

패키지를 필요한 다른 패키지와 함께 연동으로 설치해줌

예시:

  • conda install 패키지이름

install.packages(““)

사용되는 곳: R 언어에서 사용

패키지 형식: R 패키지를 설치하는 데 사용

예시:

  • install.packages("패키지이름")