Unix / Linux-환경
이 장에서는 Unix 환경에 대해 자세히 설명합니다. 중요한 Unix 개념은environment, 환경 변수에 의해 정의됩니다. 일부는 시스템에서 설정하고 다른 일부는 사용자가 설정하고 다른 일부는 쉘 또는 다른 프로그램을로드하는 프로그램에 의해 설정됩니다.
변수는 값을 할당하는 문자열입니다. 할당 된 값은 숫자, 텍스트, 파일 이름, 장치 또는 기타 데이터 유형일 수 있습니다.
예를 들어 먼저 변수 TEST를 설정 한 다음 echo 명령-
$TEST="Unix Programming"
$echo $TEST
다음 결과가 생성됩니다.
Unix Programming
환경 변수는 $서명하지만 액세스하는 동안 $ 기호를 접두사로 사용합니다. 이러한 변수는 쉘에서 나올 때까지 값을 유지합니다.
시스템에 로그인하면 쉘은 다음과 같은 단계를 거칩니다. initialization환경을 설정합니다. 이것은 일반적으로 다음 파일을 읽는 쉘을 포함하는 2 단계 프로세스입니다.
- /etc/profile
- profile
과정은 다음과 같습니다-
쉘은 파일이 /etc/profile 존재합니다.
존재하는 경우 쉘은이를 읽습니다. 그렇지 않으면이 파일을 건너 뜁니다. 오류 메시지가 표시되지 않습니다.
쉘은 파일이 .profile홈 디렉토리에 있습니다. 홈 디렉토리는 로그인 후 시작하는 디렉토리입니다.
존재한다면, 쉘은 그것을 읽습니다. 그렇지 않으면 쉘이이를 건너 뜁니다. 오류 메시지가 표시되지 않습니다.
이 두 파일을 모두 읽 자마자 쉘은 프롬프트를 표시합니다.
$
명령을 실행하기 위해 명령을 입력 할 수있는 프롬프트입니다.
Note − 여기에 설명 된 셸 초기화 프로세스는 모든 사용자에게 적용됩니다. Bourne 유형 쉘이지만 일부 추가 파일은 bash 과 ksh.
.profile 파일
파일 /etc/profile Unix 컴퓨터의 시스템 관리자가 유지 관리하며 시스템의 모든 사용자에게 필요한 셸 초기화 정보를 포함합니다.
파일 .profile당신의 통제하에 있습니다. 이 파일에 원하는만큼의 쉘 사용자 화 정보를 추가 할 수 있습니다. 구성해야하는 최소한의 정보는 다음과 같습니다.
- 사용중인 터미널 유형입니다.
- 명령을 찾을 디렉토리 목록입니다.
- 터미널의 모양과 느낌에 영향을 미치는 변수 목록입니다.
당신은 당신의 .profile홈 디렉토리에서 사용할 수 있습니다. vi 편집기를 사용하여 열고 환경에 설정된 모든 변수를 확인하십시오.
터미널 유형 설정
일반적으로 사용중인 터미널 유형은 다음 중 하나에 의해 자동으로 구성됩니다. login 또는 getty프로그램들. 때로는 자동 구성 프로세스가 터미널을 잘못 추측합니다.
터미널이 잘못 설정되면 명령 출력이 이상하게 보이거나 셸과 제대로 상호 작용하지 못할 수 있습니다.
이것이 사실이 아닌지 확인하기 위해 대부분의 사용자는 다음과 같은 방법으로 터미널을 가장 낮은 공통 분모로 설정합니다.
$TERM=vt100
$
PATH 설정
명령 프롬프트에 명령을 입력 할 때 쉘은 명령을 실행하기 전에 해당 명령을 찾아야합니다.
PATH 변수는 쉘이 명령을 찾아야하는 위치를 지정합니다. 일반적으로 Path 변수는 다음과 같이 설정됩니다.
$PATH=/bin:/usr/bin
$
여기에서 콜론 문자로 구분 된 각 개별 항목은 (:)디렉토리입니다. 쉘에 명령을 실행하도록 요청했는데 PATH 변수에 지정된 디렉토리에서 찾을 수없는 경우 다음과 유사한 메시지가 나타납니다.
$hello
hello: not found
$
다음 섹션에서 설명하는 PS1 및 PS2와 같은 변수가 있습니다.
PS1 및 PS2 변수
쉘이 명령 프롬프트로 표시하는 문자는 변수 PS1에 저장됩니다. 이 변수를 원하는대로 변경할 수 있습니다. 변경하자마자 그 시점부터 셸에서 사용됩니다.
예를 들어, 명령을 내렸다면-
$PS1='=>'
=>
=>
=>
프롬프트는 =>가됩니다. 값을 설정하려면PS1 작업 디렉토리가 표시되도록 다음 명령을 실행하십시오.
=>PS1="[\u@\h \w]\$"
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$
이 명령의 결과는 프롬프트에 사용자의 사용자 이름, 시스템 이름 (호스트 이름) 및 작업 디렉토리가 표시됩니다.
꽤 있습니다 escape sequencesPS1의 값 인수로 사용할 수 있습니다. 프롬프트가 정보를 압도하지 않도록 자신을 가장 중요한 것으로 제한하십시오.
Sr. 아니. | 탈출 시퀀스 및 설명 |
---|---|
1 | \t HH : MM : SS로 표현되는 현재 시간 |
2 | \d Weekday Month Date로 표시되는 현재 날짜 |
삼 | \n 개행 |
4 | \s 현재 셸 환경 |
5 | \W 작업 디렉토리 |
6 | \w 작업 디렉토리의 전체 경로 |
7 | \u 현재 사용자의 사용자 이름 |
8 | \h 현재 컴퓨터의 호스트 이름 |
9 | \# 현재 명령의 명령 번호입니다. 새 명령이 입력되면 증가합니다. |
10 | \$ 유효 UID가 0이면 (즉, 루트로 로그인 한 경우) # 문자로 프롬프트를 종료하십시오. 그렇지 않으면 $ 기호를 사용하십시오. |
로그인 할 때마다 직접 변경하거나 PS1에 추가하여 자동으로 변경할 수 있습니다. .profile 파일.
불완전한 명령을 실행하면 쉘은 보조 프롬프트를 표시하고 명령을 완료하고 Enter 다시.
기본 보조 프롬프트는 > (보다 큼 기호)를 다시 정의하여 변경할 수 있습니다. PS2 쉘 변수-
다음은 기본 보조 프롬프트를 사용하는 예입니다.
$ echo "this is a
> test"
this is a
test
$
아래의 예제는 사용자 지정 프롬프트로 PS2를 다시 정의합니다.
$ PS2="secondary prompt->"
$ echo "this is a
secondary prompt->test"
this is a
test
$
환경 변수
다음은 중요한 환경 변수의 일부 목록입니다. 이러한 변수는 아래에 언급 된대로 설정 및 액세스됩니다.
Sr. 아니. | 변수 및 설명 |
---|---|
1 | DISPLAY 디스플레이에 대한 식별자를 포함합니다. X11 프로그램은 기본적으로 사용해야합니다. |
2 | HOME 현재 사용자의 홈 디렉토리 (cd의 기본 인수)를 나타냅니다. built-in 명령. |
삼 | IFS 나타냅니다 Internal Field Separator 확장 후 단어 분할을 위해 파서에서 사용됩니다. |
4 | LANG LANG은 기본 시스템 로케일로 확장됩니다. LC_ALL을 사용하여이를 대체 할 수 있습니다. 예를 들어 값이pt_BR이면 언어가 (브라질) 포르투갈어로 설정되고 로케일은 브라질로 설정됩니다. |
5 | LD_LIBRARY_PATH 동적 링커가있는 Unix 시스템에는 다른 디렉토리에서 검색하기 전에 exec 후 프로세스 이미지를 빌드 할 때 동적 링커가 공유 객체를 검색해야하는 콜론으로 구분 된 디렉토리 목록이 포함되어 있습니다. |
6 | PATH 명령의 검색 경로를 나타냅니다. 쉘이 명령을 찾는 콜론으로 구분 된 디렉토리 목록입니다. |
7 | PWD cd 명령으로 설정된 현재 작업 디렉토리를 나타냅니다. |
8 | RANDOM 참조 될 때마다 0에서 32,767 사이의 임의의 정수를 생성합니다. |
9 | SHLVL bash 인스턴스가 시작될 때마다 하나씩 증가합니다. 이 변수는 내장 종료 명령이 현재 세션을 종료하는지 여부를 판별하는 데 유용합니다. |
10 | TERM 디스플레이 유형을 나타냅니다. |
11 | TZ 시간대를 나타냅니다. GMT, AST 등과 같은 값을 사용할 수 있습니다. |
12 | UID 쉘 시작시 초기화 된 현재 사용자의 숫자 사용자 ID로 확장됩니다. |
다음은 몇 가지 환경 변수를 보여주는 샘플 예입니다.
$ echo $HOME
/root
]$ echo $DISPLAY
$ echo $TERM
xterm
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin
$