| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- cups
- sysadmin
- linuxcommand
- terminal
- js
- bash
- shell
- JavaScript
- 쉘스크립트
- 터미널
- Solaris
- 파일시스템
- php
- 자바스크립트
- UNIX
- 명령어
- UnixCommand
- 리눅스
- 정규표현식
- linux
- tcsh
- 유닉스명령어
- PackageManagement
- environment
- 시스템관리
- 사용자관리
- Unix명령어
- 리눅스명령어
- coreutils
- 유닉스
Archives
- Today
- Total
ioerror
source 사용법 및 옵션 - 현재 셸 환경에서 스크립트 파일을 직접 읽어 실행하는 명령 본문
반응형
source - Execute commands from a file in the current shell
지정한 파일에 기록된 셸 명령어를 현재 활성화되어 있는 셸 프로세스 환경에서 직접 읽어 들여 실행하는 셸 내장(Built-in) 명령어이다. 별도의 서브 셸(Child Shell)을 생성하지 않고 현재 셸의 변수, 함수, 환경 설정(PATH, Alias 등)을 즉시 적용하거나 변경할 때 주로 사용된다. Shell 스크립트 모듈화 및 사용자 환경 설정 파일(.bashrc, .bash_profile 등) 갱신 시 필수적으로 활용된다.
1. source 용도
- .bashrc나 .zshrc 등 환경 설정 파일을 수정한 후 로그인/로그아웃 없이 변경 사항을 즉시 반영하는 상황에서 사용된다.
- 파이썬 가상 환경(venv, conda)에 진입하여 해당 환경의 변수와 경로를 현재 셸에 활성화할 때 사용된다.
2. source 서식
source FILENAME [ARGUMENTS]
3. source 옵션
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| FILENAME | 현재 셸 환경에서 실행할 스크립트 파일의 경로를 지정한다. | 모든 유닉스/리눅스 |
| ARGUMENTS | 스크립트 파일 내부로 전달할 위치 매개변수($1, $2 등)를 지정한다. | Bash Zsh Ksh |
| . (마침표) | source 명령의 POSIX 표준 동의어로 동일한 기능을 수행한다. | 모든 POSIX 셸 |
# 환경 설정 파일을 읽어 현재 셸에 즉시 적용
source ~/.bashrc
# 파이썬 가상 환경 활성화
source venv/bin/activate
# (venv) user@server:~$
# 스크립트에 인자를 전달하며 실행
source ./set_env.sh production
echo $APP_ENV
# production
- (venv) user@server:~$: activate 스크립트가 현재 셸 환경의 PATH와 프롬프트를 성공적으로 변경하였음을 나타낸다.
- production: set_env.sh 스크립트 내부에서 설정한 APP_ENV 환경 변수가 현재 셸에 정상적으로 로드되어 출력된 결과이다.
4. source 특이사항(유의사항)
- 일반적인 스크립트 실행 방식(./script.sh 또는 bash script.sh)은 서브 셸을 생성하여 실행하므로, 스크립트 내부에서 선언한 변수나 cd 명령에 의한 디렉터리 이동이 스크립트 종료 후 현재 셸에 남아있지 않는다. 반면 source 명령은 현재 셸에서 직접 실행되므로 모든 상태 변경이 유효하게 유지된다.
- POSIX 표준 셸(sh, dash)에서는 source라는 키워드 대신 마침표(.) 명령어가 기본 표준이다. Bash, Zsh 등의 현대적인 셸에서는 두 키워드를 모두 지원한다. Bash Zsh POSIX
- 지정한 파일에 exit 명령어가 포함되어 있을 경우, 서브 셸이 아닌 현재 셸이 종료되어 접속 중인 터미널 세션이 닫힐 수 있으므로 주의해야 한다.
관련 명령어들
- . (dot): POSIX 표준에 정의된 source 명령의 동의어이다.
- export: 환경 변수를 설정하여 하위 프로세스로 전달 가능하게 만든다.
- alias: 자주 사용하는 명령어 조합에 별칭을 지정한다.
- env: 현재 설정된 환경 변수 목록을 확인하거나 특정 환경 변수를 적용하여 명령을 실행한다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com

반응형
'OS' 카테고리의 다른 글
| ssh 사용법 및 옵션 - 원격 호스트에 암호화된 터미널 세션으로 안전하게 접속하는 명령 (0) | 2026.07.30 |
|---|---|
| split 사용법 및 옵션 - 대용량 파일을 지정한 크기나 라인 수 단위로 분할하는 명령 (0) | 2026.07.30 |
| sort 사용법 및 옵션 - 텍스트 파일의 행 단위 데이터를 정렬하고 중복을 제거하는 명령 (1) | 2026.07.29 |
| sleep 사용법 및 옵션 - 지정한 시간 동안 프로세스 실행을 대기(지연)시키는 명령 (0) | 2026.07.29 |
| shutdown 사용법 및 옵션 - 시스템 전원을 안전하게 종료하거나 재부팅하는 명령 (0) | 2026.07.29 |
Comments