나는 당신이 창문 배경에서 오는 것 같아요. 그래서 나는 그것들을 대조 할 것입니다 (저도 리눅스에 익숙하지 않습니다). 내 의견에 대한 사용자의 답변이 문제를 파악하는 데 유용하다는 것을 알았습니다.
Windows에서 변수는 영구적 일 수도 있고 아닐 수도 있습니다. 환경 변수라는 용어에는 SET 명령을 사용하여 cmd 셸에 설정된 변수와 변수가 Windows GUI 내에서 설정되어 레지스트리에 설정되고 새 cmd 창에서 볼 수있는 경우가 포함됩니다. 예 : Windows https://technet.microsoft.com/en-us/library/bb490998.aspx 의 set 명령에 대한 문서 "환경 변수를 표시, 설정 또는 제거합니다. 매개 변수없이 사용하면 set은 현재 환경 설정을 표시합니다." Linux에서 set는 환경 변수를 표시하지 않고 환경 변수로 호출 / 참조하지 않는 쉘 변수를 표시합니다. 또한 Linux는 변수를 설정하기 위해 set을 사용하지 않고 (위치 매개 변수와 쉘 옵션을 제외하고, 마지막에 참고로 설명합니다), 단지 그것들을 표시하고 심지어 쉘 변수를 표시하기 위해서만 사용합니다. Windows는 설정 및 표시를 위해 set을 사용합니다. 예를 들어 set a = 5, Linux는 그렇지 않습니다.
리눅스에서, 나는 당신이 부팅 예에 세트 변수하는 스크립트를 만들 수있는 생각 /etc/profile
이나 /etc/.bashrc
하지만 그렇지 않으면, 그들은 영원한 아니에요을. RAM에 저장됩니다.
Linux에서는 쉘 변수와 환경 변수 사이에 차이가 있습니다. Linux에서 셸 변수는 현재 셸에만 있고 환경 변수는 해당 셸과 모든 하위 셸에 있습니다.
set
명령을 사용하여 셸 변수를 볼 수 있습니다 (Windows와 달리 Linux에서 변수는 set 명령으로 설정되지 않음).
set -o posix; set
(처음에 -o posix를 한 번 설정하면 불필요한 항목이 너무 많이 표시되지 않습니다). 따라서 set
쉘 변수를 표시합니다.
env
명령을 사용하여 환경 변수를 볼 수 있습니다.
쉘 변수는 예를 들어 a = 5
환경 변수는 내보내기로 설정되고 내보내기는 셸 변수도 설정합니다.
여기에서 zzz = 5로 설정된 쉘 변수 zzz를 볼 수 있으며 실행할 때 set
표시되지만 환경 변수로 표시되지 않습니다.
여기서 우리는 내보내기로 설정된 yyy를 볼 수 있으므로 환경 변수입니다. 그리고 쉘 변수와 환경 변수 아래에 표시됩니다.
$ zzz=5
$ set | grep zzz
zzz=5
$ env | grep zzz
$ export yyy=5
$ set | grep yyy
yyy=5
$ env | grep yyy
yyy=5
$
다른 유용한 스레드
/unix/176001/how-can-i-list-all-shell-variables
/ubuntu/26318/environment-variable-vs-shell-variable-whats-the-difference
참고-내가 작성한 내용을 약간 정교하게 수정하고 수정하는 한 가지 요점은 Linux bash에서 'set'을 사용하여 "위치 매개 변수"및 "셸 옵션 / 속성"을 설정하는 데 사용할 수 있으며 기술적으로는 둘 다 매뉴얼 페이지에서 설명하지 않을 수도 있지만 변수입니다. 그러나 언급했듯이 set는 쉘 변수 또는 환경 변수를 설정하지 않습니다.) 그렇게하면 set asdf
$ 1을 asdf로 설정하고, 그렇게 echo $1
하면 asdf가 표시됩니다. 만약 당신이set a=5
변수 a를 5로 설정하지 않습니다. 위치 매개 변수 $ 1을 "a = 5"문자열과 동일하게 설정합니다. 따라서 리눅스에서 a = 5 세트를 본 적이 있다면 누군가가 실제로 $ 1의 a = 5 문자열을 원하지 않는 한 실수 일 것입니다. 리눅스가 설정할 수있는 또 다른 것은 쉘 옵션 / 속성입니다. -o를 설정하면 목록이 표시됩니다. 그리고 예를 들어 set -o verbose
, off, verbose를 켜 려면 할 수 있습니다 (btw 기본값은 꺼져 있지만 이것은 차이가 없습니다). 또는 set +o verbose
verbose를 끌 수 있습니다 . Windows는 set 명령에 대해 그러한 사용법이 없습니다.