[리눅스 기초] Docker 개념 및 전반적인 사용법
·
BI&Programming-Tools/Linux & Bash Script
Docker는 애플리케이션을 컨테이너(container)라는 독립된 환경에 패키징해서 실행하는 플랫폼입니다.환경 설정 문제 없이 어디서든 동일한 환경을 재현할 수 있어, 분석 파이프라인의 재현성을 확보하거나 복잡한 의존성을 가진 도구를 쉽게 배포할 때 유용합니다.핵심 개념컨테이너 vs 가상머신Docker를 처음 접할 때 가상머신(VM)과 혼동하는 경우가 많습니다.둘 다 독립된 실행 환경을 제공하지만 동작 방식이 다릅니다.가상머신은 하이퍼바이저 위에 완전한 운영체제를 올려서 실행합니다.운영체제 전체를 포함하기 때문에 이미지 크기가 크고 시작 시간이 느립니다.컨테이너는 호스트 운영체제의 커널을 공유하면서 프로세스 수준에서 격리된 환경을 제공합니다.운영체제를 포함하지 않기 때문에 이미지 크기가 작고 시작 속도..
[리눅스 기초] 다중 터미널 관리 (screen, tmux)
·
BI&Programming-Tools/Linux & Bash Script
SSH로 원격 서버에 접속해서 작업하다 보면 터미널 연결이 끊겼을 때 실행 중이던 작업도 함께 종료되는 문제가 생깁니다.screen과 tmux는 이 문제를 해결해주는 터미널 멀티플렉서(terminal multiplexer)입니다.터미널 세션을 서버에 유지시켜 두고, 접속이 끊겨도 작업이 계속 실행되도록 합니다.터미널 멀티플렉서가 필요한 이유SSH 접속 상태에서 오래 걸리는 분석 작업을 실행하는 경우, 네트워크가 끊기거나 터미널을 실수로 닫으면 실행 중이던 프로세스가 SIGHUP 시그널을 받아 종료됩니다.nohup으로 단일 프로세스를 보호할 수는 있지만, 여러 작업을 동시에 관리하거나 작업 중간에 다시 접속해서 출력을 확인하는 것은 불가능합니다.screen과 tmux는 서버 위에 세션을 유지하면서 언제든 ..
[리눅스 기초] Git과 GitHub 사용법 및 연동
·
BI&Programming-Tools/Linux & Bash Script
Git은 코드와 파일의 변경 이력을 관리하는 버전 관리 시스템입니다.GitHub는 Git 저장소를 온라인에서 호스팅하고 협업할 수 있는 플랫폼입니다.분석 스크립트나 파이프라인을 관리할 때 Git을 사용하면 변경 이력을 추적하고, 이전 버전으로 되돌리거나 여러 서버 간에 코드를 동기화할 수 있습니다.Git 설치 확인 및 초기 설정git --version# git version 2.x.x Git을 처음 사용할 때는 사용자 정보를 설정합니다. 이 정보는 커밋 기록에 남습니다.git config --global user.name "이름"git config --global user.email "이메일@example.com" --global 옵션은 해당 설정을 모든 저장소에 적용합니다. 특정 저장소에만 다른 설정을..
[리눅스 기초] conda 가상 환경 생성 및 사용
·
BI&Programming-Tools/Linux & Bash Script
conda는 파이썬 패키지와 가상 환경을 관리하는 도구입니다.가상 환경을 사용하면 프로젝트마다 독립된 패키지 환경을 구성할 수 있어, 서로 다른 프로젝트 간 패키지 버전 충돌을 방지할 수 있습니다. 생물정보학에서는 분석 도구마다 요구하는 파이썬 버전이나 패키지 버전이 다른 경우가 많아 가상 환경 관리가 특히 중요합니다.conda 설치 확인conda가 설치되어 있는지 다음 명령으로 확인합니다.conda --version# conda 23.x.x 설치되어 있지 않다면 Miniconda나 Anaconda를 설치해야 합니다. 서버 환경에서는 필요한 기능만 포함된 Miniconda가 더 일반적으로 사용됩니다.가상 환경 생성conda create -n myenv python=3.10 -n 옵션으로 환경 이름을 지정..
[리눅스 기초] 서버 간 파일 전송 및 파일 압축 명령어
·
BI&Programming-Tools/Linux & Bash Script
서버에서 데이터를 주고받거나, 용량이 큰 파일을 효율적으로 관리할 때 파일 전송과 압축 명령어를 자주 사용합니다.생물정보학에서는 시퀀싱 데이터처럼 크기가 큰 파일을 다루는 경우가 많기 때문에 이 명령어들을 익혀두면 실무에 도움이 됩니다.파일 전송scpSSH 프로토콜을 기반으로 파일을 전송하는 명령어입니다.SSH 접속이 가능한 서버라면 별도의 설정 없이 바로 사용할 수 있습니다.SSH 글에서도 간략하게 다뤘지만, 여기서는 더 다양한 사용 패턴을 정리합니다.# 로컬 -> 서버scp file.txt user@192.168.0.10:/home/user/data/# 서버 -> 로컬scp user@192.168.0.10:/home/user/data/file.txt ./# 디렉토리 전체 전송 (-r 옵션)scp -r..
[리눅스 기초] 크론 작업 (crontab)
·
BI&Programming-Tools/Linux & Bash Script
크론(cron)은 리눅스에서 특정 명령어나 스크립트를 지정한 시간에 자동으로 실행해주는 스케줄러입니다.정해진 시간마다 데이터를 수집하거나, 주기적으로 로그를 정리하거나, 분석 파이프라인을 자동 실행할 때 사용합니다.크론 작업의 설정은 크론탭(crontab) 파일에 작성합니다.크론탭 명령어크론탭 파일을 관리하는 기본 명령어는 다음과 같습니다.crontab -e # 크론탭 편집 (vi 또는 설정된 편집기로 열림)crontab -l # 현재 등록된 크론 작업 목록 확인crontab -r # 현재 사용자의 크론탭 전체 삭제 crontab -r은 확인 없이 전체 크론탭을 삭제하므로 주의가 필요합니다. 삭제 전에 crontab -l로 내용을 확인하거나 별도 파일로 백업해두는 것이 좋습니다. 크론탭 ..
[리눅스 기초] 프로세스 관련 명령어 (ps, kill, pkill, pgrep)
·
BI&Programming-Tools/Linux & Bash Script
리눅스에서 실행 중인 프로그램은 모두 프로세스(process)로 관리됩니다.서버에서 분석 작업을 실행하다 보면 프로세스가 멈추거나 너무 많은 리소스를 차지하는 경우가 생깁니다.이때 현재 실행 중인 프로세스를 확인하고 종료하는 명령어를 알아두면 유용합니다.ps: 프로세스 목록 확인ps는 현재 실행 중인 프로세스 목록을 출력합니다. 옵션 조합에 따라 출력 범위가 달라집니다.ps 옵션 없이 실행하면 현재 터미널에서 실행 중인 프로세스만 출력합니다.실질적으로는 다음 옵션 조합을 더 많이 사용합니다.ps aux 열의미USER프로세스를 실행한 사용자PID프로세스 ID%CPUCPU 사용률%MEM메모리 사용률VSZ가상 메모리 크기 (KB)RSS실제 사용 중인 메모리 크기 (KB)STAT프로세스 상태START프로세스 시..
[리눅스 기초] 파일 권한 및 소유권 변경 (chmod, chown)
·
BI&Programming-Tools/Linux & Bash Script
리눅스는 파일과 디렉토리마다 권한(permission)과 소유권(ownership)을 관리합니다.여러 사용자가 같은 서버를 사용하는 환경에서 파일 접근을 제어하는 기본 메커니즘이며, 스크립트 실행이나 서버 설정 파일을 다룰 때 자주 마주치게 됩니다.권한 확인ls -l 명령으로 파일의 권한 정보를 확인합니다.ls -l# -rwxr-xr-- 1 user group 1024 Jun 01 12:00 script.sh 첫 번째 열이 권한 정보입니다. 이를 분해하면 다음과 같습니다.- rwx r-x r--│ │ │ └── 기타 사용자(others): 읽기만 가능│ │ └────── 그룹(group): 읽기 + 실행 가능│ └────────── 소유자(owner): 읽기 + 쓰기 + 실행 가능└──────..
[리눅스 기초] 쉘 스크립트 작성 및 실행 방법
·
BI&Programming-Tools/Linux & Bash Script
쉘 스크립트는 쉘 명령어들을 파일에 모아서 순서대로 실행할 수 있도록 만든 스크립트입니다.반복적인 작업을 자동화하거나, 여러 명령어를 하나의 흐름으로 묶어서 실행할 때 사용합니다.데이터 분석 파이프라인을 구성할 때도 쉘 스크립트가 자주 쓰입니다.스크립트 파일 작성쉘 스크립트 파일의 확장자는 관례적으로 .sh를 사용합니다.파일의 첫 줄에는 셔뱅(shebang)을 작성합니다.#!/bin/bash 셔뱅은 이 스크립트를 어떤 인터프리터로 실행할지 운영체제에 알려주는 역할을 합니다./bin/bash로 지정하면 bash 쉘로 실행합니다.시스템에 bash가 설치된 경로가 다를 수 있는 경우에는 #!/usr/bin/env bash를 사용하는 것이 더 안정적입니다.간단한 예시입니다.#!/bin/bashecho "작업을 ..
[리눅스 기초] 리다이렉션
·
BI&Programming-Tools/Linux & Bash Script
리다이렉션(redirection)은 명령어의 입출력 방향을 기본값(키보드, 터미널 화면)에서 파일이나 다른 스트림으로 바꾸는 기능입니다.파이프라인 글에서 간략하게 다뤘지만, 실무에서 자주 쓰이는 패턴이 많아 별도로 정리해봤습니다.표준 출력 리다이렉션command > output.txt # 결과를 파일로 저장 (파일이 있으면 덮어씀)command >> output.txt # 결과를 파일 끝에 이어서 저장 >는 파일을 새로 만들거나 기존 내용을 덮어씁니다. 실수로 중요한 파일을 덮어쓰는 경우가 있으므로 주의가 필요합니다. >>는 기존 파일 끝에 내용을 추가하므로 로그를 누적해서 저장할 때 주로 사용합니다. 표준 입력 리다이렉션command 파일의 내용을 명령어의 표준 입력으로 전달합니다. so..
[리눅스 기초] 파이프라인
·
BI&Programming-Tools/Linux & Bash Script
파이프라인(pipeline)은 한 명령어의 출력을 다음 명령어의 입력으로 연결하는 방식입니다.| 기호를 사용하며, 이 기호 하나로 여러 명령어를 연결해서 복잡한 데이터 처리를 한 줄로 표현할 수 있습니다.기본 개념리눅스의 모든 프로세스는 기본적으로 세 가지 스트림을 가집니다.표준 입력(stdin): 명령어가 데이터를 읽어오는 통로 (기본값: 키보드)표준 출력(stdout): 명령어가 결과를 내보내는 통로 (기본값: 터미널 화면)표준 에러(stderr): 오류 메시지를 내보내는 통로 (기본값: 터미널 화면)파이프(|)는 앞 명령어의 표준 출력을 뒤 명령어의 표준 입력으로 연결합니다. 파일을 중간 단계에 저장하지 않아도 되기 때문에 처리 속도가 빠르고 명령을 간결하게 작성할 수 있습니다.명령어1 | 명령어2..
[리눅스 기초] 필터 명령어 (grep, sed, awk, sort, uniq, cut, tr)
·
BI&Programming-Tools/Linux & Bash Script
필터 명령어는 파일이나 표준 입력으로 들어온 텍스트를 특정 조건으로 가공하거나 추출하는 명령어입니다.파이프(|)와 조합해서 사용하는 경우가 많으며, 생물정보학 데이터를 다룰 때도 자주 활용하게 됩니다.grep텍스트에서 특정 패턴과 일치하는 줄을 출력합니다.grep "pattern" file.txt 주요 옵션은 다음과 같습니다.옵션동작-i대소문자 구분 없이 검색-v패턴과 일치하지 않는 줄 출력 (역방향 검색)-n줄 번호 함께 출력-c일치하는 줄 수만 출력-r디렉토리 안을 재귀적으로 검색-E확장 정규표현식 사용 (egrep과 동일)--include특정 파일 패턴만 대상으로 검색grep -i "error" logfile.txt # 대소문자 무관하게 error 검색grep -v "^#" c..