개인공부
리눅스 - 지역 환경변수 본문
지역 환경 변수
- 현재 사용하는 쉘에서만 적용되는 변수
- 변수 선언 및 초기화
변수명=값 (* 주의 사항 : 변수명 = 값 X - 공백X)
EX) #A=10 O
EX) #A = 10 X
- 변수 해제
#unset 변수명
EX) #unset A
- 변수 확인
#set
전역 환경 변수
- 모든 쉘에 적용되는 변수
- 변수 선언 및 초기화
#export 변수명=값
- 변수 해제
#unset 변수명
- 변수 확인
#env
지역 환경 변수 테스트
#LOCAL=test // 지역변수 LOCAL에 test 대입
#set // 지역변수 확인
#set | grep LOCAL // 직역변수 LOCAL 선언 확인
#/bin/bash // bash 서브 쉘 실행
#exit // 상위 쉘로 이동 (logout)
#echo $LOCAL // 지역 변수 LOCAL 값 확인
#/bin/bash // 서브 쉘 실행
#echo $LOCAL // LOCAL 변수 출력 -> 출력 값 X
#exit
#unset LOCAL // 지역변수 LOCAL 해제
#set | grep LOCAL // 지역변수 LOCAL 해제 확인
전역 환경 변수 테스트
#export GLOBAL=test1 // 전역 변수 GLOBAL 선언
#echo $GLOBAL // test1 값 확인
#set | grep GLOBAL // 출력 확인
#env | grep GLOBAL // 출력 확인
#/bin/bash
#echo $GLOBAL // 출력결과 확인
#GLOBAL=test2 // 지역 환경 변수
#echo $GLOBAL // test2
#exit
#echo $GLOBAL // test1
------------------------------------------------------------------------------
#echo $PS1
[\u@\h \W]\$
export PS1="[\[\e[37m\]\u\[\e[m\]@\[\e[33m\]\h\[\e[m\] \W] \\$ " Server-A
export PS1="[\[\e[37m\]\u\[\e[m\]@\[\e[35m\]\h\[\e[m\] \W] \\$ " Server-B
export PS1="[\[\e[37m\]\u\[\e[m\]@\[\e[36m\]\h\[\e[m\] \W] \\$ " Client-Linux
------------------------------------------------------------------------------
#echo $TMOUT // 세션유지시간
TMOUT 변수에 10 대입
#TMOUT=10 // 10초간 응답이 없다면 자동으로 세션 해제
#TMOUT= // 무제한
------------------------------------------------------------------------------
사용자 환경을 구성하는 초기화 파일
/etc/profile
- 환경변수와 bash가 동작 시 사용되는 프로그램을 제어하는
전역적인 시스템 설정과 관련된 파일
/etc/profile.d/
- /etc/profile 파일에 의해서 /etc/profile.d/ 디렉토리내에 스크립트가
실행이되며 여러가지 변수들이 동작하며 쉘 환경 제공
/etc/bashrc
- 사용자가 로그인하였을때 사용자 계정에 있는 .basrc 파일에 의해서
실행이되며, 전체 사용자에게 적용할 alias 및 쉘 환겨변수값을 설정하는
파일
~/.bash_profile
- 환경변수와 bash가 동작 시 사용되는 프로그램을 제어하는
지역적인 시스템 설정과 관련된 파일
~/.bashrc
- ~/.bash_profile에 의해서 실행되며 .bashrc 파일은 다시 /etc/bashrc을
실행 하여, 사용자에게 기본적으로 적용할 alias 정보가 있다.
Login시 실행되는 파일의 순서
/etc/profile -> /etc/profile.d/*
~/.bash_profile
~/.bashrc
/etc/bashrc
#cd ~
#ls
#ls -a // 숨김파일 확인
#vi ~/.bashrc // 현재로그인한계정의 홈디렉터리
#alias c='clear' // 알리아스 선언
Logout 후에 다시 Login 혹은 다른 세션을 연결하여 알리아스 적용테스트
-> Command Not Found
#vim /etc/bashrc // 파일내에 알리아스 입력
Logout 후에 다시 Login 혹은 다른 세션을 연결하여 알리아스 적용테스트
------------------------------------------------------------------------------
.bash_logout
echo "bye bye"
#exit // 로그아웃
bye bye
VMware에서 실행 시 출력결과가 나오나 빠르게 사라짐...
------------------------------------------------------------------------------
useradd [옵션] [계정명]
1. 사용자 계정추가
#useradd DOBONGSOON
#useradd -d /sub_home/DOBONGSOON-6 DOBONGSOON-6
계정은 생성은 되어 /etc/passwd 파일에 등록이되지만,
홈디렉토리의 상위 디렉토리가 미리 존재하지않으면 홈디렉토리가 생성이
되지 않는다.
#mkdir /sub_home
#useradd -d /sub_home/DOBONGSOON-7 DOBONGSOON-7 // 계정 생성
#cd /sub_home/DOBONGSOON-7
#ls -a
.bashrc .profile
#ls -a /etc/skel
#touch /etc/skel/skel_file // skel디렉토리에 테스트 파일 생성
#useradd DOBONGSOON-8
#cd /home/DOBONGSOON-8
#ls
skel_file
#ls -a
#su - DOBONGSOON-8 // 홈디렉토가 있는 계정
DOBONGSOON-8 ~ ]$ pwd // 초기화 파일이 있는 계정
$exit
#cd /home/DOBONGSOON-8
#ls -a
skel_file .bashrc .bash_profile
#rm .bashrc
#rm .bash_profile
#su - DOBONGSOON-8
#cat /etc/bashrc
bash-1 $
실습
아래 조건을 만족하도록 설정
계정 생성
계정명 : practice-1
UID : 590 (-u)
GID : 500 (-g)
정보 : Practice Account (-c)
쉘 : /bin/bash (-s)
생성 확인 (/etc/passwd )
practice-1:x:590:500
Practice Account:/home/practice-1
:/bin/bash
#useradd -u 590 -g 500 -c "Practice Account" -s /bin/bash practice-1
아래 조건을 만족하도록 설정
계정 정보 변경
계정명 : practice-1
UID : 503
GID : 501
정보 : Practice
쉘 : /bin/sh
변경 확인 /etc/passwd
#usermod -u 503 -g 501 -c "Practice" -s /bin/sh practice-1
#usermod -d /home/[계정명2] -l [계정명1] [계정명2]
#cp /home/[계정명1]/* /home/[계정명2]/
------------------------------------------------------------------------------
su (Substitute User // Switching User) 사용자 전환
su [계정명] - 해당 계정으로 전환하나 환경변수는 바꾸지 않음
su - [계정명] - 해당 계정으로 전환하며 환경변수도 함께 변경
해당 계정의 ~/.bash_profile, ~/.bashrc 파일이 적용
#su - DOBONGSOON-1
$pwd
/home/DOBONGSOON-1
$exit
#cd /bin
#su DOBONGSOON-1 // 현재 경로 ex) /bin
$pwd
/bin
--------------------------------------------------------------------------------
'리눅스' 카테고리의 다른 글
리눅스 정리 - 사용자 계정관리 (0) | 2018.07.16 |
---|---|
리눅스 - 계정삭제 (0) | 2018.07.15 |
리눅스 - 다중명령어 (0) | 2018.07.12 |
리눅스 - lrzsz 패키지 설치 (0) | 2018.07.12 |
리눅스 정리 - 기본명령어 3 (0) | 2018.07.11 |