정지용
기술스택 목록
언어

Shell

프로젝트 2에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

운영체제 명령을 텍스트로 실행하고 자동화하는 명령줄 인터페이스이자 스크립트 언어

Shell은 사용자가 입력한 명령을 운영체제 커널에 전달하고 그 결과를 돌려주는 프로그램으로, 파일 조작·프로세스 실행·시스템 관리를 텍스트 명령으로 수행할 수 있게 해준다. 반복적인 명령어 조합을 파일로 저장해 실행하는 셸 스크립트를 통해 수작업으로 하던 설정, 빌드, 배포 작업을 자동화하려는 목적으로 널리 쓰인다. GUI 없이도 원격 서버나 컨테이너 환경을 제어할 수 있어 서버 운영과 개발 도구 체인의 기본 인터페이스 역할을 한다.

이럴 때 사용합니다

  • 반복되는 설치·초기화·배포 작업을 스크립트로 만들어 자동화하고 싶을 때
  • 여러 개의 CLI 도구를 파이프로 연결해 작업을 조합해야 할 때
  • 서버나 컨테이너처럼 GUI가 없는 환경을 제어해야 할 때
  • CI/CD 파이프라인이나 빌드 과정에서 일련의 명령을 순서대로 실행해야 할 때

핵심 개념

shell script
명령어들을 순서대로 나열한 텍스트 파일로, 실행 권한을 부여하면 프로그램처럼 동작한다.
pipe
한 명령의 출력을 다음 명령의 입력으로 연결해 여러 도구를 조합하는 방식이다.
environment variable
셸과 그 안에서 실행되는 프로세스가 공유하는 이름-값 설정 정보로, 실행 환경을 제어하는 데 쓰인다.
exit code
명령이 끝난 후 반환하는 상태값으로, 0은 성공을 나타내고 그 외 값은 실패 원인을 구분하는 데 쓰인다.
shebang
스크립트 첫 줄에 어떤 인터프리터로 실행할지 지정하는 표기(#!)로, 실행 파일처럼 동작하게 만든다.

디렉터리를 순회하며 초기화하는 셸 스크립트

packages 디렉터리 하위의 각 서브 프로젝트 폴더를 순회하며 초기화 명령을 실행하는 예시이다.

Shell
#!/bin/bash
set -e

for dir in ./packages/*/; do
  name=$(basename "$dir")
  echo "Initializing $name"
  (cd "$dir" && npm init -y)
done

처음 쓸 때 흔한 함정

  • 공백이나 특수문자가 든 파일명을 다룰 때 따옴표를 빠뜨리면 명령이 예상과 다르게 쪼개진다
  • 실행 중 오류가 나도 다음 줄로 계속 진행되어, set -e 같은 안전장치를 잊으면 부분 실패를 놓친다
  • 셸마다(bash, zsh, sh 등) 문법 차이가 있어 한 셸에서 동작하던 스크립트가 다른 셸에서 깨질 수 있다

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.