
Como listar todos os nomes de variáveis e seus valores atuais?
Incluindo não apenas $HOME
, $PWD
etc, mas qualquer outro que você tenha definido.
Responder1
Para festa:(o shell padrão no Ubuntu)
Digite o seguinte comando em um terminal para imprimir todas as variáveis de ambiente:
printenv
Para mais informações sobre este comando, leia oprintenv
página de manual.
Para mostrar uma lista incluindo as "variáveis do shell", você pode inserir o próximo comando:
( set -o posix ; set ) | less
Isso vai te mostrarnão somenteas variáveis de shell, mas também as variáveis de ambiente.
Para mais informações relacionadas com este tópico leia:
- Como listar variáveis declaradas em script no bash?deENTÃOe
- Como imprimir todas as variáveis de ambiente definidas (mas não necessariamente exportadas) no bashde Unix SE
- Variável de ambiente vs variável Shell, qual é a diferença?
Para zsh:(um shell avançado)
Use o seguinte comando:
( setopt posixbuiltin; set; ) | less
Para obter mais informações sobre as opções ZSH, consultezshoptions
página de manual.
Responder2
Você pode ver todas as variáveis com o declare
arquivo embutido.
declare -p
Se você estiver interessado apenas em variáveis de ambiente, use
declare -xp
Corre help declare
para ver quais são as outras opções.
Responder3
Sei que esta pergunta é bastante antiga e respondida, mas acho que posso acrescentar algumas informações úteis.
Em todos os métodos descritos acima, o procedimento sugerido é:
- lançar um terminal
- mostre as variáveis de ambiente usando
env
, ouprintenv
ou qualquer outra coisa
O problema dessas soluções é que você está vendo as variáveis de ambientedo shell que está sendo executado no terminal. Você não está vendo as variáveis de ambiente disponíveis para uma aplicação ser executada, por exemplo, diretamente pela interface gráfica.
Isso é perceptível se, por exemplo, você usar ~/.profile
, ou .bashrc
, ou .zshenv
(dependendo do seu shell) para modificar as variáveis de ambiente --- como a adição clássica de diretórios ao caminho.
Para ver as variáveis de ambiente disponíveis para a aplicação iniciada diretamente no ambiente gráfico, você pode fazer o seguinte (no Gnome Shell, tenho certeza que existe um método equivalente em todos os outros DE):
- pressione Alt-F2
- execute o comando
xterm -e bash --noprofile --norc
(Ou, se você não tiver xterm
, gnome-terminal -- bash --noprofile --norc
--- obrigado a @Mike Nakis pelo comentário).
Agora você tem um terminal com um shell que não adicionou nenhuma variável de ambiente. Você pode usar env
aqui para listar todas as suas variáveis de ambiente:
Obviamente, o novo shell terá as variáveis de ambiente adicionadas pelos arquivos do sistema, mas essas variáveis deverão estar disponíveis (por herança) para todos os programas no sistema de qualquer maneira.
Estou postando isso porque é a quarta vez que preciso pesquisar esse truque novamente, verificando meu .pam_environment
arquivo. Então agora vou encontrar mais rápido (e no processo, espero ajudar alguém...)
Responder4
Para listar as variáveis de ambiente no terminal com ++ CTRLvocê pode usar o comando.ALTTenv
por exemplo :
[raja@localhost ~]$ env
XDG_VTNR=1
SSH_AGENT_PID=3671
XDG_SESSION_ID=3
HOSTNAME=localhost.localdomain
IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/home/raja/.gnupg/S.gpg-agent:3691:1
GLADE_PIXMAP_PATH=:
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=xfce-
DESKTOP_STARTUP_ID=
HISTSIZE=1000
XDG_SESSION_COOKIE=0250277dd805498381e96c05d88068b0-1364679772.845276-1676152201
WINDOWID=65011716
GNOME_KEYRING_CONTROL=/home/raja/.cache/keyring-N3QoQ2
IMSETTINGS_MODULE=none
QT_GRAPHICSSYSTEM_CHECKED=1
USER=raja
etc.
espero que ajude.