리눅스나 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 |