Alguns emuladores de terminal têm a opção de serem usados como se fossem um shell com login.
Por exemplo, o Xterm que eu utilizo, pode ser executado: xterm +ls para se comportar como um login-shell. Assim não há confusão ou diferenças ao se logar num emulador de terminal no X ou no terminal de verdade (console). Nas configurações do gnome-terminal e do konsole deve haver opções parecidas. O que algumas distribuições fazem é mandar carregar o /etc/profile dentro do /etc/bash.bashrc. Assim o /etc/profile é executado mesmo quando se abre um shel sem login, mas ainda falha quando o usuário executa um shell diferente do bash (por exemplo, quando roda o comando sh explicitamente). Em 29/05/07, Maxwillian Miorim<[EMAIL PROTECTED]> escreveu:
On 5/29/07, Zandre Bran <[EMAIL PROTECTED]> wrote: > On 5/29/07, Zandre Bran <[EMAIL PROTECTED]> wrote: > >[...] > > Então parto do principío que ao fazer o login em modo texto também > > entro no bash, já que é o shell padrão. O que não entendo é porque ao > > alterar a PATH no /etc/profile não afeta gnome-terminal e se altero no > > /etc/bash.bashrc não afeta do login em modo texto. O que faz-me > > concluir que para ter a variável PATH alterada para os dois ambientes > > (modo texto e gnome-terminal), tenho que alterar o PATH em > > /etc/profile (para modo texto) e /etc/bash.bashrc (para o > > gnome-terminal). Lendo os arquivos vejo que os dois (profile e > > bash.bashrc) tem a mesma declaração da PATH. > > > > É isto que não estou compreendendo. O que é de quem! > > Pois é; quem é cego é cego. Tá lá na primeira linha do bash.bashrc > > # System-wide .bashrc file for interactive bash(1) shells. > > E em .bashrc > > # ~/.bashrc: executed by bash(1) for non-login shells. > > Ou seja, baseado tb na participação do Fabiano Manoel, o > bash.bashrc vale para shell sem login que é o caso gnome-terminal. > Isto é shell sem login. > > Ok, agora o q não entendo, sendo o /etc/profile lido, qdo abro um > xterm, a leitura do /etc/bash.bashrc sobrepoe o /etc/profile? Pelo > visto sim. Mas não deveria, ele poderia adicionar, mas sobrepor > principalmente a variavel PATH? > > Este comportamento do /etc/bash.bashrc de sobrepor o /etc/profile > é fato? Ou estou fazendo errado aqui? > > Obrigado pelo tempo, > Zandre. Este processo no Debian é mais um mito que fato. Todo mundo acha que é algo mas aé hoje ue não vi ninguém falar com certeza como funciona. Seguindo a lógica, funcionaria assim: /etc/profile - É um arquivo de configurações globais, que tenta ser o mais independente possível de um shell. Ele que exporta variáveis básicas como o PATH para bash, tcsh, ksh e qualquer outro shell. /etc/bash.bashrc - São as opções específicas do bash para a inicialização o shell de escopo global (todos usuários). Ele é lido depois do /etc/profile se tu trabalha com OOP poderia dizer que ele herda os atributos do /etc/profile. ;) $HOME/.bashrc - Mesmo que /etc/bash.bashrc, porém o escopo é o prórpio usuário. (Ele herda de /etc/bash.bashrc, consequentemente herda de /etc/profile) Mais detalhes que isso eu não posso dar, sou usuário do TCSH e customizo este tipo de script desobedecendo descaradamente o padrão da distribução em nome de uma melhor usuabilidade :) A propósito, se tu fizer scripts como o abaixo para chamar tua aplicação pode ser mais conveniente: OBS: Nomes são sugestões. ;) /usr/appenv/vars.sh: ---- #!/bin/sh JAVA_HOME=/usr/lib/java CATALINA_HOME=/usr/local/tomcat PATH=$JAVA_HOME/bin:$PATH ---- /usr/appenv/loadapp1.sh ---- . /usr/appenv/vars.sh # equivale a um import do java ou include() do php java -jar app1.jar ---- E de workarounds a vida continua :) -- Por favor não faça top-posting, coloque a sua resposta abaixo desta linha. Please don't do top-posting, put your reply below the following line. --------------------------------------------------------
-- Krishnamurti Lelis Lima Vieira Nunes

