리눅스나 macOS 환경에서 개발 작업을 하다 보면 source 명령어를 자주 접하게 됩니다. 특히 AWS나 기타 서비스의 인증 토큰을 담은 token.sh 같은 스크립트를 불러올 때 자주 활용됩니다. 이번 글에서는 source 명령어가 무엇인지, 왜 필요한지, 그리고 실제 활용 방법을 정리해보겠습니다.
1. source 명령어란?
source는 쉘 내장 명령어로, 스크립트 파일을 새로운 프로세스가 아닌 현재 쉘에서 실행하게 합니다.
즉, 파일 안에 들어 있는 export 같은 환경 변수 설정이 현재 터미널 세션에 그대로 반영됩니다.
- 실행 방식:
source <파일명> - 짧은 축약형:
. <파일명>
2. bash <파일명>과의 차이
많은 분들이 bash token.sh처럼 실행하는데, 이렇게 하면 새로운 하위 셸에서 실행됩니다.
하위 셸이 종료되면 설정한 환경 변수나 경로 변경 내용이 현재 셸에는 남지 않습니다.
반면에 source는 현재 쉘에 바로 적용되므로 환경 변수를 세션에 유지할 때 꼭 사용해야 합니다.
3. 경로 지정 방법
token.sh 파일이 현재 디렉토리에 있다면:
source token.sh
특정 폴더에 있다면:
source aws/token.sh
4. 실행 권한은 필요 없다
source는 단순히 파일 내용을 읽어 현재 쉘에서 실행하기 때문에, 해당 파일에 실행 권한(chmod +x)이 없어도 상관없습니다.
다만 일반적으로 관리 편의를 위해 실행 권한을 주는 경우도 있습니다.
chmod +x aws/token.sh # 실행 권한 부여 (선택 사항)
5. zsh 등 다른 셸에서의 사용
대부분의 셸에서 source와 .(점)은 동일하게 동작합니다.
다만 일부 환경에서는 .만 지원되는 경우도 있습니다.
예시:
. aws/token.sh
만약 기본 셸이 zsh인데 bash 전용 스크립트를 실행해야 한다면:
bash -c "source aws/token.sh; exec bash"
6. 자주 쓰이는 활용 예시
- AWS 토큰 불러오기:
source aws/token.sh - Python 가상환경 실행:
source venv/bin/activate - DB 연결 환경 변수 설정:
source db.env
정리
source는 스크립트를 현재 쉘에서 실행하는 명령어이다.bash file.sh와 달리 환경 변수와 설정이 유지된다.- 실행 권한이 없어도 사용 가능하며,
.(점)으로도 대체할 수 있다. - AWS 인증, 가상환경 실행, 환경 변수 세팅 등에서 자주 활용된다.
반응형
'개발 (Development) > Linux' 카테고리의 다른 글
| [Linux/Ubuntu] Ubuntu 서버 LVM 루트 디스크 용량 부족 문제 해결 (1) | 2025.06.01 |
|---|---|
| [Linux] 서버 Memory Swap 사용량 (1) | 2025.02.17 |
| [Linux] ll 명령어 완벽 가이드 (0) | 2025.02.17 |
| [Linux] 서버 캐시 정리 명령어 (0) | 2024.12.21 |
| [Linux/Ubuntu 20.04 LTS] 부팅할 때 특정 파일을 실행 (0) | 2024.05.07 |