ti-enxame.com

Como executar comandos automaticamente no gnome-terminal após o login?

Após cada login, existem certos comandos que executo em guias específicas do gnome-terminal. Este é um processo tedioso, então pode ser feito automaticamente?

11
tshepang

Sim, há um jeito. Você precisa dizer ao gnome-terminal para abrir abas com certos perfis; esses perfis devem ser configurados para iniciar um Shell com os comandos que você deseja.

Primeiro, você precisa fazer um script (ou um ícone de inicialização) que iniciará gnome-terminal --tab-with-profile=Dev. "Dev" é o nome de um perfil que você criará, portanto, substitua-o pelo que você quiser. Além disso, você pode especificar tantos --tab-with-profiles como você deseja: abrirá uma guia para cada um.

Agora, você precisa do perfil que acabou de fazer referência. Isso é criado ao abrir gnome-terminal, e encontrando Edit->Profiles... no menu. Faça um novo perfil e dê a ele o nome especificado na etapa anterior. Em seguida, você precisa definir suas preferências. Destaque o perfil recém-criado e clique no botão Editar. Quando a caixa de diálogo Preferências de perfil for exibida, ative a guia "Título e comando", marque "Executar um comando personalizado ..." e na caixa de texto associada, coloque sh -c "ENV=$HOME/.dev_profile sh". Obviamente, você pode definir ENV para qualquer caminho que desejar, contanto que seja consistente na próxima etapa. Isso inicia o sh, e sh irá executar quaisquer comandos que estejam em $HOME/.dev_profile

Em seguida, você precisa criar esse arquivo de perfil Shell. Portanto, edite $ HOME/.dev_profile (ou qualquer arquivo que você especificou na etapa anterior). Coloque todos os comandos que você quiser lá; eles serão executados quando o Shell for iniciado. Trate isso como se fosse um .bashrc - isso o substituirá. Dependendo de como seu .bashrc está configurado, você pode querer source $HOME/.bashrc no perfil para copiar todas as funcionalidades de seu perfil sh normal.

5
Shawn J. Goff

Você pode iniciar vários comandos na mesma linha de comando do gnome-terminal especificando o --tab-with-profile opção várias vezes, seguida a cada vez por um único -e especificando qual comando executar nessa guia. Você também pode usar --window-with-profile ter várias janelas. Por exemplo, o comando a seguir inicia duas janelas com duas guias cada; a primeira janela executa o bash em cada guia, definindo a variável de ambiente TAB como 1 ou 2; a segunda janela executa htop em uma guia e iotop na outra guia. A invocação explícita de sh, com aspas corretas, é necessária por algum motivo.

gnome-terminal --tab-with-profile="Default" -e 'sh -c '\''export TAB=1; exec bash'\' \
               --tab-with-profile="Default" -e 'sh -c '\''export TAB=2; exec bash'\' \
               --window-with-profile="Default" -e 'htop' \
               --tab-with-profile="Default" -e 'iotop'

Se você quiser que um comando seja executado ao fazer o login, coloque-o em um script Shell (por exemplo ~/bin/my_gnome_login_commands, e registre-o em “Sistema/Preferências/Aplicativos de inicialização” no menu Gnome. Como alternativa, crie um arquivo ~/.config/autostart/my_commands.desktop contendo

[Desktop Entry]
Type=Application
Exec=/home/tshepang/bin/my_gnome_login_commands
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

(Você deve usar o caminho completo para seu diretório inicial no Exec= linha, você não pode usar ~.)

(Esta resposta foi testada com Gnome 2.30 no Ubuntu 10.04. Como o Gnome às vezes quebra a compatibilidade, ele pode ou não se aplicar a outras versões.)

7

Estou vendo aqui um monte de coisas. Provavelmente você não precisa de nada disso.

Estas são as etapas que fiz no meu Oracle 5.9 Linux:

  1. Crie um ícone de terminal gnome em sua área de trabalho.
  2. Abra seu terminal gnome.
  3. Vá para Editar -> Perfis.
  4. Selecione seu perfil padrão e clique em Editar.
  5. Vá para a guia "Título e comando".
  6. Selecione a opção "Executar comando como shell de login".
  7. Clique no botão Fechar.

Funcionou para mim Claro, no meu caso, eu só quero executar .profile para configurar meu ambiente de terminal.

0
CesarDBA