Self-Improvement
Linux 특성2(변수, 메타데이터, history, alias, 환경파일) 본문
*Variable(변수)
1.지역변수 : #VAR=5
2.환경변수(=전역) : #export VAR=5
-확인할때는 #echo $VAR(=변수명), 삭제할때는 #unset VAR(=변수)
//지역변수 vs 환경변수(=전역)
지역변수 - #var=5 -> #echo $var -> #bash -> #echo $var (값이 안나오게됨)
환경변수 - #export var=4 -> #bash -> #echo $var (값이 나옴)
-환경 변수는 자신이 선언한 쉘의 서브쉘에서 적용, 상위 쉘에는 적용되지 않음
//set(모든변수 출력) vs env(환경변수만 출력)
#set | wc -l ; env | wc -l (각 몇개인지 알아낸다음)
#var1=centos, #export var2=linux -> #set | wc -l ; env | wc -l (set개수는 2개 증가 env는 1개증가로 볼 수 있다.)
//환경변수 종류
#echo $PS1 (프롬프트)
#echo $PS2 (명령어가 끝나지 않을시 계속 이어지게끔 해주는것)
#echo $HOME (사용자의 홈디렉터리)
#echo $PWD (현재 작업중인 경로)
#echo $LOGNAME (현재 사용자 로그인할시 이름)
#echo $TERM (터미널 정의 변수, ex) #export TERM=vt100)
#echo $LANG (언어 변수)
#echo $USER (현재 사용자이름 변수)
#echo $UID (현재 사용자 UID)
#echo $PATH (명령어들 경로를 모아놓은, ex) #export PATH=$PATH:/bin -> 명령어 경로를 계속 적용시키고 싶으면 #vi ~/.bash_Profile에 적는다.)
3.특수변수 : $$, $?, $!, $0, $1..
#echo $$ (현재쉘의 PID, =#ps로 보는것과 같음)
ex) #touch tmp.$$ (자주 사용하는 형식)
#echo $? (이전에 수행된 명령어의 수행여부에 관한 리턴값, 0이면 정상 아니면 비정상)
#echo $! (이전에 백그라운드로 실행된 프로세스의 PID번호)
4.인자변수
-$로 표시하여 인자변수의 값이 몇 번째 인지 나타낼 수 있다.
*Metacharacter(메타캐릭터)
''(작은 따옴표) : 쉘이 해석 할 수 없도록 막아준다
""(큰 따옴표) : 쉘이 해석 할 수 없도록 막아준다. 단 인식되는 문자($, '', \)들도 있다
``(역 따옴표) : 쉘이 해석할 때 명령어로 인식한다.
=ex) #touch server_`date +%m%d`.log
\(역 슬래쉬) : 바로 이후에 있는 문자를 쉘이 해석 할 수 없도록 막는다
=ex) #\CMD (CMD의 alias을 뺀 상태로 명령)
=ex) #CMD\ (CMD가 끝이 안났다고 생각하여 그 아랫줄에 계속 됨)
;(세미콜론) : 한개의 라인에 여러개 명령어 수행할 때 사용
*history (사용자의 명령어를 저장하며 Stack 공간에 할당)
#history
HISTSIZE=1000
HISTFILE=~/.bash_history (#history했을시 나오는 명령어 목록)
HISTFILESIZE=1000
//HISTTIMEFORMAT 변수 (history했을시 해당 명령어 사용시간이 나오게해주는 것)
#man bash -> /HISTTIMEFORMAT 검색해서 %F, %T에 관한 정보 얻기 (언어가 영어야 검색가능 #export LANG=en_US.UTF-8)
#vi /etc/profile -> export HISTTIMEFORMAT="%F %T " -> #. /etc/profile
*alias(별칭)
#alias cp='cp -i' (alias 등록, ~/.bashrc에 등록시 계속 적용)
#alias cp (alias 확인)
#unalias cp (alias 삭제)
//alias 이름과 명령어 이름이 중복되는 경우
-alias을 우선시함
*환경파일 (사용자와 root 로그인시 좀 다름)
//사용자가 로그인시 읽혀지는 파일순서
1./etc/profile(관리자 설정)
2./etc/profile.d/*.sh
3.~/.bash_profile(사용자 설정, 파일이 없으면 ~/.bash_login -> 없으면 -> ~/.profile)
4.쉘 실행 (~/.bashrc read -> /etc/bashrc)
//쉘 or 서브쉘이 실행 될때 읽혀지는 파일순서
1.~/.bashrc(사용자)
2./etc/bashrc(관리자)
3./etc/profile.d/*
//사용자가 로그아웃시 읽혀지는 파일
1.~/.bash_logout
//예제
-/etc/profile, /etc/profile.d/test.sh(test.sh을 만듬), ~/.bash_profile, ~/.bashrc, ~/etc/bashrc 파일에 vi로 열어서 첫번째 줄에 echo "|-----> 파일이름 read" 해놓으며 telnet으로 로그인하거나 #bash 쉘 생성하면 뜨게됨 , ~/.bash_logout에는 clear은 주석처리하고 echo "|------>파일이름" 하기
'리눅스 > 명령어' 카테고리의 다른 글
Linux 프로세스2(lsof, pmap, pstree, nice/renice) (0) | 2018.10.21 |
---|---|
12) Linux 프로세스1(ps, jobs, Background, Foreground, Signal, top) (0) | 2018.10.21 |
Linux 특성1 (Redirection, pipe, bash쉘의 기능 set) (0) | 2018.10.21 |
Linux 편집기 (vi, vim) (0) | 2018.10.21 |
Linux 명령어 (gzip/gunzip, bzip2/bunzip2, tar, jar, zip) (0) | 2018.10.21 |