Em muitos sistemas linux echo $TERM
return xterm
veja stazher post acima.
Para obter o terminal real em uso, faça o seguinte:
1: feche todas as instâncias de terminal atualmente em execução.
2: Abra um novo terminal usando seu método usual.
3: digite o comando da seguinte forma:
ps -o 'cmd=' -p $(ps -o 'ppid=' -p $$)
4: O retorno deve ser algo assim:
lxterminal --geometry=135x20
Aqui está o detalhamento:
Então: ps
é "status do processo"
ps option -o
is Exibe informações associadas ao espaço ou
lista separada por vírgulas de palavras-chave especificadas. Parece complicado, mas
não é realmente. (espaço ou vírgula) separados (lista de palavras-chave) especificada.
Portanto, (lista de palavras-chave) é 'cmd='
Apenas uma palavra-chave na lista. Então, apenas pedindo para exibir o comando para abrir o terminal.
ps opção -p
é "por id do processo" Uau, essa é uma opção muito boa para o ps. O problema é que você deve passar para ps este id de processo. Então, como obter o ID do processo? Nós desembrulhamos a expressão $(ps -o 'ppid=' -p $$)
Aqui devemos começar a pensar um pouco mais. Eu gostaria de ter inventado este bash one-liner, mas não o fiz. Eu acho que eu roubei de link em algum lugar, eu não pude encontrar novamente. Esses caras são incríveis, mas muitas vezes eu não consigo entender o que eles dizem para fazer até depois de muito estudo. O que podemos fazer é entender isso agora, porque vou explicar.
então sabemos $
é operador de expansão no bash. Eu gosto de pensar "un-wrap". Então, $(foo -opt bar)
irá desembrulhar, ou expandir, "foo -opt bar". Mas no bash, chave de um único turno (...)
abre subshell.
Portanto, $(foo -opt bar)
expande "foo -opt bar" como executado no shell filha . Muito estranho e difícil de entender.
OK, agora estamos executando o comando quase idêntico novamente, ps -o 'ppid=' -p $$
mas desta vez ps, status do processo, mostra o que ele pode ver de dentro da instância do shell filha .
-o
lista de palavras-chave, apenas uma palavra-chave como antes, mas ppid=
está solicitando diretamente o ID do processo do shell pai !! De dentro da filha SHELL! Muito inteligente, sim? Estou tão animada quando consigo entender isso!
-p
novamente, "por ID do processo" e no bash $$
é o ID do processo.
Se você chamar ps -o 'ppid=' -p $$
, ou qualquer outro comando pedindo $$
diretamente do primeiro shell, ele pode dizer pid = 1, ou o pid do xWindow, ou do seu programa de desktop, ou você pode obter o pid real de casca. Se você perguntar muitas vezes, talvez receba uma resposta diferente a cada vez!
Mas, se você invocar uma filha e perguntar "quem é o seu pai", ela lhe dirá! Muito esperto. Eu gostaria de poder ser tão genial para inventar este método.