본문 바로가기

Linux-Unix

[Linux] 환경 설정 (쉘의 환경 설정)

Linux 프로세스(실행중인 프로그램)는 프로그램 자체와는 다른 고유한 환경을 가진다.
쉘 환경이라고 부르는 Linux 환경은 수많은 변수의 값으로 이루어져 있다.

이런 변수와 값을 사용하여, 쉘과 같은 실행 프로그램이 Linux 환경의 모습을 판별할 수 있다.
환경이라고 하는 것은,
사용자가 사용하는 쉘, 홈 디렉토리, 사용 중인 터미널의 유형 같은 것들을 의미한다.
이런 변수들 중 대부분은 로그인 프로세스 중에 정의되며 변경할 수 없거나 변경해서는 안된다.
변수가 읽기전용이 아니라면 사용자가 추가하거나 변경할 수 있다.

변수는 VARIABLE=value 형식으로 설정된다. 
VARIABLE 자리에는 사용자가 원하는 어떤것으로도 설정할 수 있다.
표준 Linux프로그램에 사전 정의된 변수들은 그대로 사용한다.





 공통 환경변수

공통적인 Borne Shell 의 환경변수들 
 변수   설명 
 HOME=/home/login  사용자가 시작하는 위치인 홈 디렉토리를 설정
 왼쪽 login 부분을 login ID로 대체 하면, /HOME/login ID
 LOGNAME=login  자동으로 login ID와 동일하게 설정됨
 PATH=path  쉘이 명령을 실행하기 위해서
 명령에 대해 찾는 디렉토리 목록을 나타냄
 PATH=/usr:/bin:/usr/local/bin 과 같이 설정 가능 
 PS1=prompt  PS1은 프롬프트의 모습을 정의하는 1차 쉘 프롬프트
 설정하지 않으면 프롬프트는 달러기호($)
 원하는 경우 독창적으로 설정 가능
 PS1-"linux #"으로 하면
 명령어 프롬프트로 linux #을 표시 
 PWD=directory  PWD는 자동으로 설정됨
 사용자의 현재위치를 나타내 주는 역할
 PWD를 사용했을 때, /home 이 표시되면,
 사용자는 /home 디렉토리 밑에 있는 것 
 SHELL=shell  사용자 쉘로서 기능하는 프로그램의 위치를 식별
 .profile .login 파일에서
 SHELL 을 SHELL=/bin/csh로 설정하여
 로그인 쉘을 csh 등으로 설정 가능 
 TERM=termtype  터미널 데이터 베이스에 의해 지정되는 대로
 터미널 유형의 이름을 설정
 .profile .login 파일에서 TERM-vt100 과 같이 설정 가능 
 

PATH 변수는 콜론(:)으로 구분하여
사용자가 사용하는 프로그램을 포함하는 모든 디렉토리를 지정하는 문자열이 들어있다.

디렉토리가 나열되는 순서대로(왼쪽에서 오른쪽) 명령어를 탐색한다.
목록 순서는 동일한 명령의 여러가지 다른 양식을 지원하는 시스템에서 중요하다.

사용자가 자신의 명령어가 있는 디렉토리의 경로를 추가하려고 하는 경우,
PATH 변수를 수정하면 된다.

PATH=$PATH:newPath





 특수 환경변수 

특수 환경변수의 예
 변수  설명
 HOME  홈 디렉토리의 완전 경로명
 SHELL  현재 쉘의 이름
 MAIL  우편함의 전체 경로명
 LOGNAME  로그인 이름
 PATH  쉘이 명령을 탐색하는 디렉토리
 TZ  date 명령에 대한 시간대
 SECONDS  쉘을 호출한 이후의 시간(초)
 PS1  시스템 프롬프트
 TERM  사용중인 터미널의 유형

HOME 변수는 항상 홈 디렉토리를 지정한다. 로그인 하면 기본적으로 홈 디렉토리에 위치한다.

PATH 변수는 쉘이 명령을 탐색하는 디렉토리를 나열한다. 쉘은 디렉토리가 나열된 순서대로 명령어를 탐색한다.

MAIL 변수는 사용자의 전주 우편을 보유하고 있는 파일의 이름이 들어있다.
메일이 도착하면 메일은 MAIL 변수에 의해 지정되는 파일에 배치된다.

PS1 변수는 1차 프롬프트로서 표시되는 문자열을 보유한다.
프롬프트는 쉘이 명령을 수신할 준비가 될 때마다 표시하는 문자열이다.

TERM 변수는 터미널의 유형을 식별하는 데 사용된다.
vi 편집기와 같이 전체 화면을 사용하는 프로그램에서는 이 정보가 필요하다.

TZ 변수는 시간대를 식별하는 문자열을 보유한다. date 프로그램과 일부 다른 프로그램에서 이 정보가 필요하다.

LOGNAME 변수는 시스템이 사용자와 연관시키는 이름이나 문자열인 로그인 이름을 보유한다.




 alias 명령 

alias 명령은 명령어가 길거나 옵션을 일일이 지정하기 싫은 경우에
해당 명령어에 대해 사용자가 별명을 설정하여 사용 할 수 있도록 해준다.

alias
: alias 별명=' 명령어 [옵션]'
: 일반적으로 내리는 명령 대신하여 사용자 정의 명령을 만든다고 생각하면 된다.

만약 ls -al 옵션을 자주 사용하는 사용자라면 홈 디렉토리의 .bashrc 파일에 아래의 문장을 추가하여 사용할 수 있다.

alias ll=' ls -al'

이렇게 추가해 놓고, 쉘을 재동작 하고 나면 적용된다.
이후로는  ll 을 사용했을 때, ls -al 을 사용하는 것과 같다.




 Shell 의 히스토리 기능 

history
: 이전에 입력한 명령들을 보여준다.

!
: 뒤에 공백, 개행문자, =, ( 가 나오는 경우를 제외하고 히스토리 치환을 시작하도록 한다.

!!
: 이전 명령을 가리킨다. !-1 과 같다.

!n
: n번째 행의 명령을 가리킨다. !13 은 13행에 실행된 명령을 가리킨다.

!-n
: 현재 명령행에서 n을 뺀 행의 명령을 가리킨다.

!문자열
: 문자열로 시작하는 가장 최근 명령을 가리킨다.

!?문자열[?]
: 문자열을 포함하는 가장 최근 명령을 가리킨다.

^문자열1^문자열2
: 빠른 치환
: 지난 번 명령에 대해 문자열1을 문자열2로 바꾸어 실행한다.
:    !!:s/문자열1/문자열2 와 같다

!#
: 지금까지 입력한 전체 명령행