📝Linx Cheet Sheet
linux
docker
cheetsheet
2025
자주 사용하는 Commands
library 경로 설정
conda env lib 연결시
GPU Memory 해제
프로세스가 죽지 않을때 강제 종료
Docker
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
- nvidia-container-toolkit 설치
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker
- GPU 설정
docker run -it --gpus '"device=0,1,2,3"'
- container를 image로 저장
docker commit [CONTAINER_ID] [IMAGE_NAME]
terminal zsh/bash
용량 확인
df -h
- 해당 경로에 있는 모든 파일과 폴더들을 용량 단위로 표기
- 폴더가 1 순위, 파일이 2 순위로 나열
- 경로에 있는 모든 폴더들과 각 폴더내에 있는 파일들을 모두 표기
du -ch [path] | sort -h
- 해당 경로의 폴더 기준 트리 구조의 깊이 1만큼의 수준까지 탐색
- 용량이 큰 폴더가 아래로, 가장 용량이 큰 10개만 보임
du -ch [path] --max-depth=1 | sort -h | tail -10
- 현재 경로의 파일 용량
ls -lh
파일 찾기
find [옵션] [경로] [표현식]
# 현재 위치에서 log가 들어가는 파일 모두 찾기
find . -name "*log*"
# 현재 디렉토리에서 .txt 확장자 파일 검색 후 모두 삭제
find . -name "*.txt" -delete
- options
P
: 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용.L
: 심볼릭 링크에 연결된 파일 정보 사용.H
: 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외.D
: 디버그 메시지 출력.
폴더나 파일 갯수 찾기
- 현재 위치에서의 폴더 개수
ls -l | grep ^d | wc -l
- 현재 위치에서의 파일 개수
ls -l | grep ^- | wc -l
- 현재 폴더의 하위 파일 개수
find . -type f | wc -l
mount 다중 경로 설정
- 원래 마운트 지점에서 VFS(가상 파일 시스템) 노드를 생성
mount --bind original-dir original-dir
- 원래 마운트 지점을 공유로 표시
mount --make-shared original-dir
- 선택한 마운트 지점과 그 아래의 모든 마운트 지점에 대한 마운트 유형을
변경
하려면--make-shared
대신--make-r shared
옵션 사용
- 중복 생성
mount --bind original-dir dupulicate-dir
- 지우기
sudo umount duplicate-dir
원격과 로컬 사이 파일 복사
scp
사용.scp [options] [source] [target]
- 로컬에서 원격으로
scp [source_path] [User]@[IP]:[target_path]
scp /media/avery/source/test.txt avery@xxx.xx.x.xxx:mnt/
- 원격에서 로컬로
scp [User]@[IP]:[source_path] [target_path]
scp avery@xxx.xx.x.xxx:mnt/test.txt /home/avery/Documents
- 원격(A User)에서 원격(B User)으로
scp [User]@[IP]:[source_path] [User]@[IP]:[target_path]
scp ai@xxx.xx.x.xxx:mnt/test.txt avery@xxx.xx.x.xxx:/home/avery/Documents
- 복수의 파일 전송
- 여러 경로를
" "
을 이용하여 묶어줌 scp [options] [User]@[IP]:"[file_1] [file_2]" [target_path]
- 여러 경로를
- Options
-r
: 폴더를 복사할 때 사용(전송 대상을 폴더로 지정). 모든 폴더들을 재귀적으로 복사-P
: ssh 포트 지정-i
: identity file을 지정해서 사용-v
: 상세 내용을 보면서 디버깅할 때 사용-p
: 전송 시 파일의 수정 시간과 권한을 유지
.cache
용량 해결
- pip와 conda의 .cache 삭제
#pip
pip cache purge
#conda
conda clean -a
.cache
위치 변경
# .bashrc를 vim으로 열어서 아래 변수를 추가하기
export XDG_CACHE_HOME="/{disk_location}/{user_name}/.cache"
# 해당 경로 생성하기
mkdir -p /{disk_location}/{user_name}/.cache
vim 편집
:%d
: 전체 내용 삭제 (press Esc to ensure you’re in Normal mode first)i
입력 후,Ctrl + Shift + v
: 새로운 내용 붙여넣기:wq
: 저장- Normal mode shortcuts:
gg
(go to the first line of the file)dG
(delete from current line to the end of the file)
python module 경로 파악
import module
print(module.__file__)