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


11

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

Respostas:


5

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 criar um script (ou um ícone do iniciador) que será iniciado gnome-terminal --tab-with-profile=Dev. "Dev" é o nome do perfil que você criará, portanto substitua-o pelo que você quiser. Além disso, você pode especificar quantos --tab-with-profiles desejar: abrirá uma guia para cada um.

Agora, você precisa do perfil que você acabou de referenciar. Isso é criado abrindo gnome-terminale localizando Edit->Profiles...no menu. Crie um novo perfil e dê o nome que você especificou 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 do perfil estiver aberta, 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, desde que seja consistente na próxima etapa. Isso inicia sh, e sh executará quaisquer comandos que estejam em$HOME/.dev_profile

Em seguida, você precisa criar esse arquivo de perfil do shell. Portanto, edite $ HOME / .dev_profile (ou qualquer arquivo que você especificou na etapa anterior). Coloque os comandos que você quiser lá; eles serão executados quando o shell for iniciado. Trate isso como se fosse um .bashrc - isso irá substituí-lo. Dependendo de como o seu .bashrc estiver configurado, source $HOME/.bashrcno perfil você pode copiar toda a funcionalidade do seu perfil sh normal.


3
A propósito, eu recomendo o tmux ou GNU Screen. Eles são multiplexadores de terminal que são um pouco mais fáceis de configurar para esse tipo de coisa, e você pode usá-los em uma conexão ssh. A única desvantagem é que eles não têm guias para você clicar, mas você pode obter uma lista de menus ou janelas nas quais pode navegar de cima a baixo e alternar para uma. Eles também têm outras opções sofisticadas, como tela dividida, monitores de atividade / inatividade e a capacidade de manter a sessão aberta sem um terminal conectado.
Shawn J. Goff

1
Tela tem vantagens, mas também tem desvantagens. Uma é que voltar à saída anterior é mais difícil do que na maioria dos emuladores de terminal X. Outra é que você não pode exibir facilmente duas janelas da mesma sessão de tela ao mesmo tempo (isso não é um problema se você usar sessões de tela separadas, mas precisará alternar entre elas, que separam as guias ou janelas do emulador de terminal facilita).
Gilles 'SO- stop be evil'

@ Giles: ou Tela é mais fácil de rolar: depende da maneira como você gosta de trabalhar. Eu não tenho certeza o que dizer sobre as duas janelas - Eu faço isso o tempo todo: ^ a S ^ a <tab> ^ ac
Shawn J. Goff

2
sim que é muito mais simples do que um clique duplo na barra de abas
Falmarri

2
@Falmarri: na verdade é. Toco o mouse com pouca frequência para que o sensor óptico se desligue e preciso movê-lo por cerca de 1,5 segundos antes de clicar em qualquer coisa. (Para não mencionar que significa movendo minha mão fora do teclado e ter que encontrar o local de origem no teclado novamente.)
Shawn J. Goff

7

Você pode iniciar vários comandos na mesma linha de comando do terminal gnome, especificando a --tab-with-profileopção várias vezes, seguida de cada vez -eespecificando qual comando executar nessa guia. Você também pode usar --window-with-profilepara 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, configurando a variável de ambiente TABcomo 1 ou 2; a segunda janela é executada htopem uma guia e iotopna outra guia. A shchamada explícita , 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ê deseja que um comando seja executado quando efetuar login, coloque-o em um script de 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 que ~/.config/autostart/my_commands.desktopcontenha

[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 o diretório inicial na Exec=linha, não pode usar ~.)

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


0

Eu estou vendo aqui muitos animais. Provavelmente você não precisa de nada disso.

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

  1. Crie um ícone do gnome-terminal na 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 aba "Título e comando".
  6. Selecione a opção "Executar comando como shell de login".
  7. Clique no botão Fechar.

Funcionou para mim. Obviamente, no meu caso, eu apenas quero executar .profile para configurar meu ambiente de terminal.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.