리다이렉션(Redirection)
fd
-------------------------
0 stdin(keyboard)
1 stdout(Screen)
2 stderr(Screen)
-------------------------
입력 리다이렉션(stdin) # wall < /etc/MESS/work.txt
출력 리다이렉션(stdout) # ls -l > lsfile.txt
에러 리다이렉션(stderr) # ls -l /test /nodir > list.txt 2>&1 //에러2번도 1번으로 보내라
[ 실무예 ] 스크립트 로그 파일 생성
# ./script.sh > script.log 2>&1
[ 실무예 ] 출력 내용이 긴 명령 수행시 출력 화면 분석
# ./configure > config.log 2>&1
[ 실무예 ] 일반사용자가 명령 수행시 에러메시지를 지우는 경우
$ find / -name core -type f 2>/dev/null
파이프(Pipe)
# CMD | more
# CMD | grep inetd
# CMD | CMD | ...
[ 실무예 ] 모니터링 구문 + 데이터 수집(CMD | tee -a httpd.cnt)
while true
do
ps -ef | grep httpd | wc -l | tee -a httpd.cnt
sleep 2
done
[ 실무예 ] 여러 터미널 화면을 공유하는 경우
# script -a /dev/null | tee /dev/pts/1 | tee /dev/pts/2
배시쉘 기능(Shell Function)
# set -o //전체 리스트 확인
# set -o vi // 기능 ON
# set +o vi // 기능 OFF
# set -o ignoreeof <CTRL + D > 방지 기능 ON
# set +o ignoreeof <CTRL + D > 방지 기능 OFF
<TAB>
* 파일이름 자동 완성 기능
* 디렉토리 안에 파일 목록 보기
<↑>
* 이전에 수행된 명령어를 편집해서 사용하기
* 이전에 수행된 명령어를 확장해서 사용하기
* 확인 + 명령수행 + 확인
< Copy & Paste >
변수(Variable)
변수의 종류
- 지역변수(Local Variable) # VAR=5
- 환경변수(Environment Variable) # export VAR=5
- 특수변수(Special Variable) $$(PID), $?(바로이전 명령어 return), $!(바로이전 background PID)
$0 , $1, $2, $#, $*
변수 선언 방법
# export VAR=5
# echo $VAR
# unset VAR
export 의미
시스템/쉘 환경변수(set/env)
PS1 변수: export PS1='[\u@\h \w]\$ ' ($HOME/.bashrc)
PS2 변수
PATH 변수 : 명령어를 검색할 디렉토리를 선언할 때 사용
export PATH=$PATH:/root/scripts ($HOME/.bash_profile)
HISTTIMEFORMAT 변수 : export HISTTIMEFORMAT="%F %T " (/etc/profile)
HOME 변수
PWD 변수
LOGNAME 변수
USER 변수
UID 변수
TERM 변수 : export TERM=vt100
LANG 변수 : export LANG=ko_KR.UTF-8|en_US.UTF-8
쉘 메타캐릭터(shell Metacharacter)
'' "" `` \ ;
명령어 히스토리(Command History)
HISTSIZE=512
HISTFILE=$HOME/.bash_history
HISTFILESIZE=512
엘리어스(Alias)
# alias cp='cp -i'
# alias
# unalias cp
환경파일(Environment Files)
/etc/profile
#모든 사용자에게 적용됨
~/.bash_profile ($HOME/.bash_profile)
~/.bashrc ($HOME/.bashrc)