@ilkkachu 덕분에 해결책을 찾았습니다. 여기에 올렸고 댓글에서도 확인하실 수 있습니다.
환경 변수를 설정 해제하고 싶고 다음 위치를 모두 검색했습니다.
~/.bashrc
~/.profile
/etc/profile
/etc/environment
~/.bash_profile
/etc/bash.bashrc
/etc/profile.d/
보시다시피 숙제를 다 했지만 이 특정 환경 변수를 찾을 수 없을 뿐만 아니라 env 명령이 표시하는 환경 변수도 대부분 찾을 수 없습니다.
그런데 저는 데비안 10을 사용하고 있습니다.
추신: 이 질문은 여러 포럼에서 여러 번 질문을 받았기 때문에 이 문제가 있는 사람은 답변 중 하나에서 @terdon이 제공하는 기능을 사용하도록 지시합니다. 불행히도 이것은 내 문제를 해결하지 못합니다. 그러나 일반적인 상황에서는 확실히 작동합니다.
답변1
이런 종류의 작업에 대한 작은 bash 기능이 있습니다.
grep_bash ()
{
grep --color -H "$@" ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login ~/.bash_aliases /etc/bash.bashrc /etc/profile /etc/profile.d/* /etc/environment 2> /dev/null
}
이것은 내가 익숙한 Linux의 다양한 버전에서 일반적으로 사용되는 대부분의 (모든?) 파일을 다룰 것입니다. ~/.bash_aliases
내가 아는 한, 여기에는 우분투 관련 내용이 포함되어 있습니다. 또한 검색하지 않은 일부 표준 파일도 포함되어 있습니다. 가장 중요한 것은 /etc/profile.d
.
변수를 찾을 수 없으면 위에 나열된 파일 중 하나에서 다른 파일을 가져올 가능성이 높습니다. 모든 소스 파일 줄을 grep한 다음 해당 줄도 찾아볼 수 있습니다.
grep_bash -E '(\.|source) '
위에 나열된 파일 중 하나가 다른 파일을 소스로 하는 모든 행이 나열되므로 변수는 소스 파일 중 하나에 정의되어 있을 것입니다. 물론 이러한 소스 파일은 다른 파일의 소스가 될 수도 있으므로 더 깊이 들어가야 할 수도 있지만 이것이 시작점이 되어야 합니다.
답변2
@ilkkachu 덕분에 찾았어요이에 대한 해결책.
답변의 마지막 부분에는 시작 중에 발생할 수 있다고 나와 있으며(덜 일반적임) 답변에서 이 명령을 사용하여 변수를 검색했을 때 find /etc -type f -exec grep -F THE_VAR {} +
찾았습니다.