Linux
Shell
bash shell 개념, 쉘 내장 명령, 특수 문자, 표준 입출력, 변수 정리
개요
- 사용자가 입력한 명령을 해석하여 커널에 전달, 처리 결과를 사용자에게 전달하는 역할을 수행
기능
- 명령어 해석기
- 프로그래밍
- 사용자 환경 서정
- 초기화 파일을 제공
- 초기화 파일에 명령을 찾아오는 경로 또는 파일과 디렉토리 생성 시 기본 권한 설정 등을 작성
- 사용자가 로그인 할 대 설정 파일을 읽어 사용자 별 특성에 맞게 초기 환경 설정됨
종류
- 본쉘
- C쉘
- 콘쉘
- Bash 쉘
- z쉘
1 ) Bash Shell
- 우분투에서 기본 제공하는 쉘
지원 쉘 확인
cat /ect/shells
사용자 쉘 확인
grep {user} /etc/passwd쉘 변경(절대경로 사용)
chsh -s {shellName} {userName}
2 ) Shell 내장 명령
- 쉘은 자체 내장 명령을 가지고 있음
- 디렉토리 샐행 파일 없이 쉘 안에 명령이 포함됨
echo [-n] [str|arg]→ 화면에 한 줄의 문자열을 출력echo [-n] [str|arg]- n은 줄바꿈
- 공백 또는
---가 있을 경우 ` “ “ `필요
printf [형식] [인수]→ C에서의 함수와 사용법 동일특수 문자→ 사용자가 편리하게 명령 입력 • 실행할 수 있도록 다양한 특수 문자 제공 → 명령 입력 시 특수 문자 존재 확인 후 해독하여 변경한 후 명령 실행백틱→ 명령을 수행한 후 명령의 결과를 대체
2 ) 표준 입출력
종류
| 파일 디스크립터 | 대신 사용하는 이름 | 정의 |
|---|---|---|
| 0 | stdin | 표준 입력 |
| 1 | stdout | 표준 출력 |
| 2 | stderr | 표준 오류 |
출력 Redirection
- 출력의 방향을 바꿈
- 기본적으로 출력은 모니터
- Format → 명령 1 > 경로 → 명령 > 경로
# date 명령의 결과를 파일로 저장
date 1>print.txt
ls
exec.txt print.txt test.txt test1.txt
cat print.txt
2026. 07. 21. (화) 10:33:48 KST
→ 명령의 수행 결과를 print.txt로 저장
# 파일에 내용 추가는 ` > ` 대신 ` >> `사용
date 1>>print.txt
cat print.txt
2026. 07. 21. (화) 10:33:48 KST
2027. 07. 21. (화) 10:34:37 KST
오류 Redirection
- 오류 메시지를 모니터가 아닌 다른 곳에 출력
- Format
→
명령 2>경로→ 1로 하면 성공했을 때 기록, 실패는 기록하지 않음
#
ls a 2>err.txt
cat err.txt
ls: cannot access 'a': No such file or directory
-
오류 메시지 버리기 →
2>/dev/null - 성공과 실패 모두 기록
{cmd} >{savePath} 2>&1입력 Redirection
- 표준 입력을 변경하는 것
- 표준 입력은 키보드
-
표준 입력을 파일로 변경하는 것
3 ) 변수
종류
- 쉘 변수 → 현재 쉘에서 사용 가능한 변수
- 환경 변수
→ 시스템 전체에 적용되는 변수
변수 확인
- echo $변수명
- env: 환경 변수 전부 출력
- set: 모든 변수와 함수를 출력
변수 생성 및 수정
- 변수이름 = 값
-없으면 생성되고 있으면 수정
댓글