Você classificou com erro PATH e os dois EDITOR e VISUAL pertencem a ele.
A ideia de que essas variáveis pertencem a aplicativos específicos está errada. Eles são padronizados e podem ser usados por qualquer qualquer aplicativo que precise deles.
- Se qualquer aplicativo quiser pesquisar um caminho para programas executáveis, ele poderá usar
PATH. (E, de fato, esse é o caso de qualquer aplicativo que chameexecvp().) - Se qualquer aplicativo quiser invocar um shell, ele poderá usar
SHELLpara localizar o arquivo de imagem do programa. - Se qualquer aplicativo quiser invocar um editor de linha, ele poderá usar
EDITOR.
- Se qualquer aplicativo quiser invocar um editor visual, ele poderá usar
VISUAL. - Se qualquer aplicativo quiser invocar um pager, ele poderá usar
PAGER. - Se qualquer aplicativo quiser saber onde o diretório base está, ele poderá usar
HOME.
E assim por diante.
Por outro lado, HISTIGNORE e PS1 nem precisam ser realmente variáveis de ambiente; e somente este último é mencionado (embora sem explicação) no padrão. Um pode defini-los como variáveis de ambiente, em um processo de líder de sessão ou em algum outro pai de nível superior, e confiar na herança de ambiente para importá-los por shells.
Mas é possível definir como variáveis shell , em um script executado automaticamente por cada shell (os específicos que dependem do shell) e não exportá-los para o ambiente. Por exemplo: eu tenho minhas variáveis ~/.zshrc set PS1 e RPROMPT as shell , e elas não são exportadas para ambiente variáveis em tudo.
Leitura adicional
- "Outras variáveis de ambiente" . Definições Base . Única especificação do UNIX. IEEE 1003.1. 2018. O Grupo Aberto.
-
execvp(). Interfaces do sistema . Única especificação do UNIX. IEEE 1003.1. 2018. O Grupo Aberto. - VISUAL vs EDITOR, qual é a diferença?
- Qual é o comando 'editor' no bash?
- Comando para o editor de texto padrão no terminal
- Quais sistemas têm atalho / apelido 'pager'?
- Como se livrar dos avisos de "nano não encontrado", sem instalar o nano?