CentOS 환경변수(생성, 수정, 사용자 설정 파일, su) / 쉘 프로그래밍(쉘 스크립트)에 대해서 정리한다.
※ 환경 변수
#>env ( 해당 사용자 환경 변수 확인 )
( 위에서 PATH는 명령어가 실행 될 경로를 지정하고 있는 환경변수이다 )
1. 환경 변수 생성 / 수정
- 환경 변수 생성 / 수정: export
( export 명령어를 이용해서 num1이라는 환경 변수에 100이라는 값을 넣어서 추가 할 수 있다 )
( export 명령어를 이용해서 num1 환경 변수를 200으로 수정 했는데
덮어쓰기라고 보면 된다 )
( $num1=$num1:/korea/bin처럼 환경변수에 해당 내용을 추가 할때는 이런 방식으로 해줘야 된다 )
2. 사용자 설정 파일
/etc/profile
/etc/bashrc
~/.bash_profile ( 로그인시 환경 설정 파일 )
~/.bashrc
~/.bash_logout ( 로그아웃시 환경 설정 파일 )
* /etc/profile, /etc/bashrc는 전체 사용자
~./bash_profile, ~/.bashrc, ~/.bash_logout은 해당 사용자에게만 적용된다.
* ~./bash_history 파일은 해당 사용자가 사용한 명령어 기록을 가지고 있다.
- 환경 설정파일 인식 순서
/etc/profile -> ~./bash_profile -> ~/.bashrc -> /etc/bashrc
3. 기타 명령어
- alias : 별칭 설정
#>alias <alias_name>='<command>'
ex) ls -l은 ll이라는 별칭으로 등록 되어있다.
( alias 명령어를 이용해서 ls -al 명령을 la라는 별칭으로 만들었다 )
( ~./bashrc에 기본적으로 등록되 있는 명령어 별칭들이다 )
* 환경 설정파일인 ~/.bashrc에 별칭을 등록 해두면 로그아웃 후에
다시 로그인을 해도 초기화 되지 않는다.
( ~/.bashrc는 해당 사용자에게만 적용 된다 )
- 사용자 확인
#>whoami
#>id -un ( 환경 설정파일에서 해당 사용자를 뽑아올때 많이 쓰인다 )
4. su ( switch user )
- 사용자 변경
( 다른 사용자로 이동할 때 패스워드가 필요하지만 root는 역시나 예외 )
- 현재 로그인 된 사용자를 로그아웃 하지 않고 현재 터미널에서 변경 가능하다.
( 현재 사용자 위에 다른 사용자를 한번 더 로그인 한다고 생각하면 된다 )
#>su <user_name> - 이전 사용자의 환경 변수 그대로 사용
#> su - <user_name> - 바뀐 사용자의 환경 변수 사용
( su 명령어를 이용하면 이전 사용자의 환경 변수를 그대로 사용하기 때문에
홈 디렉터리가 그대로 root인걸 볼 수 있다 )
( su - 명령어를 사용해서 사용자를 변경 했을때 해당 사용자인 linux01의 환경 변수를 가지고
오는걸 확인 할 수 있다 )
※ 쉘 프로그래밍 ( 쉘 스크립트 )
- 리눅스를 좀더 효율적으로 사용하기 위해 자동화 작업을 할때 사용한다.
- 쉘 스크립트 안에 명령어들을 넣어주고 실행하면 안에 있는 명령어가 한줄씩 실행된다.
1. 작성 방법
#>vi <script_name>.sh
* 리눅스에는 확장자가 없기 때문에 .sh를 꼭 붙이지 않아도 되지만
쉘 스크립트 파일인지를 알기위해 보통 .sh를 붙여서 사용해준다.
2. 실행
#>sh <path>
3. 변수
- 생성 : 변수이름=value
- 사용 : $변수이름
( -n 옵션을 이용해서 echo 명령어 실행 이후에 자동으로 줄바꿈 되는걸 막을수 있고
read를 이용해서 입력을 받아 str1에 입력값을 넣을수 있다 )
( 쉘 스크립트를 이용해서 입력된 이름인 abc라는 이름으로 빈파일을 만들었다 )
'프로그래밍 > LINUX' 카테고리의 다른 글
[LINUX 20일차] CentOS 종료, 재부팅 명령어 / 예약 작업(단일예약<at>, 반복예약<cron>) (2) | 2017.04.05 |
---|---|
[LINUX 19일차] CentOS 쉘 스크립트(자료계산<expr>, argument, 조건문<if>, 반복문<for, while>) (0) | 2017.04.04 |
[LINUX 17일차] CentOS 특수권한(SETUID, SETGID, Sticky Bit) / 프로세스 관리(포그라운드, 백그라운드) (0) | 2017.04.03 |
[LINUX 16일차] CentOS 정규표현식 / 링크파일(i-node,하드링크파일, 소프트링크파일) (0) | 2017.04.03 |
[LINUX 15일차] CentOS find & grep 명령어 (2) | 2017.04.03 |
댓글