티스토리 뷰

1. 미니포지란?

- conda : 패키지/가상환경 관리도구(명령어) 

- anaconda: conda + python + 데이터 과학관련 수백개 패키지 포함 배포판 

- miniconda: conda + python만 있는 최소한의 anaconda => 기본 채널은 defaults, 상업적으로 사용시 유료

- miniforge: miniconda와 같은데, 기본 채널이 conda-forge, 상업 제한 없음

- defaults: Anaconda,Inc의 상업 채널, conda install 로 패키지 설치시 해당 채널에서 가져옴

- conda-forege : conda 패키지를 위한 커뮤니티 채널(공개적으로 빌드, 배포, 유지보수)

* 파이썬 내장 가상환경 도구 venv는 DS/AI 패키지 설치시 문제가 많아 conda로 설치하면 빠르고 안정적으로 설치 가능, python 버전도 conda는 한줄로 쉽게 설치 가능한데, venv는시스템에 직접 설치해야함

 

2. 사용자의 홈 디렉토리(~)로 이동

- 홈 디렉토리는 루트 권한 없이도 모든 작업(설치, 삭제, 수정 등)이 가능

- /usr, /opt, /etc 같은 시스템 디렉토리는 sudo 권한이 필요하고, 실수하면 시스템이 망가질 수 있음

- miniforge는 시스템 전체가 아니라 현재 로그인한 사용자만 쓸 수 있도록 만드는 가상환경 도구로 홈에 설치하면 내 환경에만 설정되고, 다른 사용자나 시스템에 영향 없다.

cd ~

 

3. 최신 버전 설치

curl -LO https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh

# 엔터 계속 -> yes -> 엔터 -> yes

 

4. bash 초기 설정 파일 재실행(또는 터미널창 껏다가 재실행) 

source ~/.bashrc

 

5. 왜 윈도우 vscode에서 굳이 wsl와 ubuntu를 설치해 연결해서 개발할까?

1) 실제 서비스가 배포되는 서버 환경은 Linux다

- 개발 단계부터 리눅스 환경에서 작업하면 개발 환경과 배포 환경간의 차이로 인해 발생하는 예기치 못한 문제를 줄일 수 있다.

2) 도구 호환성 : 특정 개발 도구나 라이브러리(예: Docker)는 리눅스 환경에서 더 안정적이거나 설치/사용이 간편한 경우가 많다.

3) 강력하고 효율적인 명령어로 개발 생산성이 올라감 : grep, awk, sed, ssh, 파이프 등

- grep: 파일이나 출력 내용에서 특정 문자열을 빠르게 찾는 도구 => 정규식 표현을 지원해 복잡한 패턴도 찾을 수 있고, 파이프 연결로 실시간 분석이 가능하다

grep "error" server.log

# server.log에서 "error"가 포함된 줄만 출력

- awk : 컬럼 기반 데이터 추출 및 처리(열 단위로 데이터 처리)

awk '{ print $2 }' access.log

# 각 줄의 2번째 열만 출력

- sed: 파일을 직접 열지 않아도 대량으로 텍스트 수정이 가능하다, 스크립트에서 자동화 편집에 최적

sed 's/apple/orange/g' file.txt

# file.txt에서 apple을 orange로 전부 바꿔줌

- ssh: 다른 서버에 안전하게 접속해서 명령을 실행하는 도구, 원격 서버 작업 자동화에 핵심, scp, rsync등과 함께 파일 전송도 가능

ssh user@192.168.0.1

# 192.168.0.1 서버에 접속

- 파이프 (|): 복잡한 작업을 한 줄로 조합해서 사용 가능

 

* 윈도우와 비교

예시1. 404에러 낸 IP 목록을 많이 발생한 순서로 정리

1) 리눅스

cat access.log | grep "404" | awk '{print $1}' | sort | uniq -c | sort -nr

2) 윈도우

- 로그 파일 열기 > 필터 누르기 > 복사해서 엑셀 붙여넣기 > 정렬 > 자동화가 어려움 (클릭이나 마우스 조작 등 수동 작업)

 

** 윈도우와 리눅스 강점 비교

윈도우 리눅스
그래픽 기반, 직관적, 수작업이 많음 CLI 기반, 조합 가능, 자동화 최적
반복 작업이 불편함 한 줄로 반복 처리 가능
GUI 도구 위주(vscode, notepad++ 등) 텍스트 기반 처리 최강!

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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 29 30
글 보관함