// 명령행을 분석하여 커널에게 전달한다
ls -l /root
// 특수 문자(메타케릭터)를 분석하여 커널에게 전달한다.
ls -l /etc/*.conf
// 파이프, 리다이렉션, 백그라운드 프로세스를 처리한다
ls -l /etc/*.conf | grep resolv > nameserver.txt
ls -l nameserver.txt
cat nameserver.txt
관리자가 일반 사용자의 홖경을 설정 시켜 주는 경우
/etc/profile - 로그인 할 때만 읽혀진다.
/etc/bashrc - 쉘이 실행 될때 마다 읽혀진다.
/etc/profile.d/*.sh - 쉘이 실행 될때 마다 읽혀진다
일반 사용자가 자신의 환경을 설정 하는 경우
HOME/.bashrc - 쉘이 실행 될때 마다 읽혀진다.
① 시스템에 필요한 환경 변수 내용들이 설정되어 있다. (# cat /etc/profile)
② 로그인한 계정에 필요한 환경 변수 내용들이 설정되어 있다. (# cat /root/.bash_profile)
③ 로그인한 계정에 필요한 명령어를 자동으로 실행하기 위한 내용들이 설정되어 있다. (# cat /root/.bashrc)
④ 모든 계정에게 적용되는 젂역 변수 내용들이 설정되어 있다. (# cat /etc/bashrc)
① 로그아웃할때 파일 앆에 있는 내용들이 실행된다. (# cat /root/.bash_logout)
② 로그인 중에 실행했던 명령어들을 로그아웃할때 저장하는 파일이다. (# cat /root/.bash_history)
'.bash_history' 파일에는 로그인 중에 실행했던 명령어들을 로그아웃할때 저장하는 파일이다.
'history' 명령어는 예전부터 로그인 중까지 실행했던 모든 명령어들을 확인할 수 있다.
사용자가 로그인하면 사용자의 명령어를 저장하기 위해서 'history'를 위한 Stack 공간이 할당된다.
이때, Bash 쉘은 기본 1000 개 명령어까지 저장할 수 있으며, sh 쉘은 history 기능을 지원하지 않는다.
'$HOME/.bashrc' 파일 내용이 수정되고 적용되려면 쉘을 재실행해야한다.
그렇기 때문에 로그아웃 한 이후에 다시 로그인하면 쉘이 실행되기 때문에 새로 변경된 '.bashrc' 내용이 적용된다.
또는 '. .bashrc', 'source .bashrc', 'source ~/.bashrc' 명령어를 이용하여 재실행할 수 있다.
만약, 스크립트 파일을 실행하려면 점(.), source, sh, bash 명령어를 사용하면 된다.
이때, 점(.)은 'source' 명령어와 같은 기능을 수행하지만, 권장하지는 않는다.
변수는 파일로 동작하는 것이 아니라, 메모리에서 처리되며 동작한다.
그렇기 때문에 재부팅되거나 로그아웃 이후 로그인하면 변수 내용을 사라진다.
지역변수(Local Variable) : # VAR=5
홖경변수(Environment Variable) : # export VAR=5
특수변수(Special Variable) : $$, $?, $!, $0, $1, $#, $*.........
사용자가 임의로 만들어서 사용하는 변수이며, 로그아웃 또는 재부팅되면 내용은 사라진다.
만약, 로그인 중에 수동으로 삭제할 경우에는 unset 명령어를 사용한다.
자주 사용하는 사용자 정의 변수를 환경 변수에 저장하면, 로그인 및 재부팅할때도 사용이 가능하다.
그렇기 때문에 환경 변수를 '.bash_profile' 또는 '.bash_rc'에 설정하면 로그인 및 재부팅할때 사용할 수 있다.
변수 이름은 대문자를 사용하는 것을 권장하며, 'env' 명령어를 이용하여 확인할 수 있다.