14. 쉘특성
▷ 특수변수
- $ : 현재쉘의 PID를 저장하고 있다. 쉘 스크립트내에서 임시 파일의 이름을 지정할 때 보통 사용이 된다.
# echo $$ /* 현재쉘의 PID가 출력된다. */
- ? : 바로 이전 명령어의 정상 실행 여부에 대한 결과값이 들어 있다. 쉘 스크립트내에서 이전 명령어의 정상 수행 여부를 확인할 때 주로 사용된다.
- ! : 바로 이전에 백그라운드로 실행한 프로세스의 PID번호가 저장된다.
# echo $! /* 바로 이전에 백그라운드로 실행한 프로세스의 PID 번호가 출력된다. */
▷ 인자변수
- $로 표시하여 인자변수의 값이 몇 번째인지 나타낼 수 있다.
# vi test.sh
#!/bin/bash
echo $1 /* 첫번째 인자 */
echo $2 /* 두번째 인자 */
echo $3 /* 세번째 인자 */
▷ PATH 변수
- 명령어를 검색할 디렉토리를 선언할 때 사용한다.
↓ vi ~/.bash_profile
5. 메타캐릭터(Metacharcter)
- ' ' (작은 따옴표) : 쉘이 해석 할 수 없도록 막아 준다.
- " " (큰 따옴표) : 쉘이 해석 할 수 없도록 막아 준다. 단 인식되는 문자($, ``, \)들도 있다.
- ` ` (역 따옴표) : 쉘이 해석할 때 명령어로 인식한다. 따라서 역 따옴표 안의 내용을 실행한다.
- \ (역 슬래쉬) : 바로 이후에 있는 문자를 쉘이 해석 할 수 없도록 막아 준다.
- ; (세미콜론) : 한개의 라인에 여러개 명령어를 수행할 때 사용한다.
6. 히스토리(History)
▷history CMD
- 사용자가 로그인 하게 되면 사용자의 명령어를 저장하기 위해서 Stack 공간이 할당된다. 기본값은 1000개의 명령어를 저장할 수 있는 공간이 할당된다.
- 명령어 형식
# history | less /* 현재까지 사용한 스택에 들어간 명령이 처음부터 출력 */
# history -c /* (clear) 현재까지 사용한 명령을 삭제 */
# history /* 현재까지 사용한 스택에 들어간 명령이 출력 */
▷alias
- 별칭지정 명령어라고 하며, 복잡한 명령어와 옵션을 간단히 입력할 수 있는 문자열로 치환 하는 명령어다.
- 명령어 형식
# alias cp='cp -i' /* cp명령어를 사용하면 cp -i 로 명령이 실행된다. */
# unalias cp /* 치환된 명령어를 해제한다. */
7. 환경 파일(Environment File)
▷ 사용자 환경파일
- 리눅스에서 로그인 할 때, 쉘이 실행 될 때, 로그아웃 할 때 실행되는 파일이다.
- 환경 파일이 읽혀지는 순서
로그인 할 때 마다 읽혀지는 환경 파일 → 쉘이 실행 될 때 마다 읽혀지는 환경 파일 → 로그아웃 할 때 마다 읽혀지는 환경 파일
① 로그인 할 때 마다 읽혀지는 환경 파일
■ /etc/profile
■ /etc/profile.d/*.sh
■ ~/.bash_profile
■ ~/.bashrc
■ /etc/bashrc
② 쉘이 실행 될 때 마다 읽혀지는 환경 파일
■ ~/.bashrc
■ /etc/bashrc
■ /etc/profile.d/*sh
③ 로그아웃 할 때 마다 읽혀지는 파일
■ ~/.bash_logout
- 사용자 환경 초기값 설정
① 관리자가 일반 사용자의 환경을 설정 시켜 주는 경우
■ /etc/profile /* 로그인 할 때만 읽혀진 */
■ /etc/bashrc /* 쉘이 실행 될 때 마다 읽혀짐 */
■ /etc/profile.d/*.sh /* 쉘이 실행 될 때 마다 읽혀짐 */
② 일반 사용자가 자신의 환경을 설정하는 경우
■ ~/.bash_profile /* 로그인 할 때만 읽혀짐 */
■ ~/.bashrc /* 쉘이 실행 될 때 마다 읽혀짐 */
- 환경파일 분석
① /etc/profile
② /etc/profile.d
③ $HOME/.bash_profile
④ $HOME/bashrc
⑤ /etc/bashrc
⑥ $HOME/.bash_logout