이 중급 과정에서는 익숙한 셸 명령을 재사용 가능한 Bash 프로그램으로 구성합니다. 6개의 단계별 실습에서 실행 가능한 스크립트를 만들고, 대화형 입력과 인자를 받고, 조건 분기와 반복을 사용하고, 명령 상태에 대응하고, 타임스탬프가 있는 실행 기록을 남깁니다.
마지막 챌린지에서는 하나의 사용자 이름을 검증하고 중복 계정을 피하고 Bash 사용자와 올바른 소유권의 작업 디렉터리를 만들고 성공을 감사 로그에 기록하는 onboard.sh를 구축합니다.
학습 내용
- Shebang이 있는 Bash 스크립트를 작성하고 실행 권한을 부여해
./로 실행하기 - 변수에 값을 저장하고
read또는 위치 인자$1로 입력 받기 if와else로 파일 존재 여부와 숫자 사용자 ID 확인하기for루프로 숫자 범위와 파일명 와일드카드 반복하기- 숫자 조건이 참인 동안
while루프로 작업 반복하기 - 명령 직후
$?를 확인하고 실패 시 분기하기 - 기존 기록을 덮어쓰지 않고 절대 경로 로그에 메시지와 시간 추가하기
- 인자 검증, 소유권, 감사 로그가 있는 계정 프로비저닝 스크립트 구축하기
추천 대상
이 과정은 터미널 명령, 파일, 권한, 변수, 리디렉션을 이해하고 이를 작은 Bash 관리 스크립트로 결합하려는 Linux 사용자에게 적합합니다.
선수 지식: 터미널 탐색, 파일 작업, Nano 같은 편집기, 셸 변수, 와일드카드, 명령 치환, 리디렉션, 권한, sudo 사용에 익숙해야 합니다.
학습 환경: Ubuntu 기반의 LabEx 터미널에서 Bash, 편집 가능한 프로젝트 스크립트, 준비된 테스트 파일, 챌린지용 로컬 계정 생성을 위한 격리된 관리 권한을 사용합니다.
자주 묻는 질문
과정은 어떻게 구성되어 있나요?
처음 6개는 단계별 스크립팅 실습입니다. 일곱 번째는 더 적은 안내로 실행 가능한 onboard.sh를 단계별로 만들고 테스트하는 챌린지입니다.
Scheduling 실습에서 Cron을 구성하나요?
아니요. 절대 경로 로그에 메시지와 date 출력을 추가해 무인 실행에 대비하고 반복 실행은 수동으로 모의합니다. Cron 구성은 다른 과정에서 다룹니다.
마지막 스크립트는 시스템을 어떻게 변경하나요?
격리 실습에서 sudo useradd -m -s /bin/bash로 실제 로컬 테스트 계정을 만들고 /home/<username>/work를 생성해 소유권을 지정하며 ~/project/onboard.log에 추가합니다.
오류 처리는 어느 수준까지 다루나요?
$?, 0이 아닌 exit, 인자 수 검사, 명령 실패나 기존 사용자의 조건 처리를 소개합니다. Trap, set -euo pipefail, 정리 처리, 트랜잭션 롤백은 다루지 않습니다.





