it-swarm-es.tech

¿Cómo ejecutar comandos automáticamente en gnome-terminal después de iniciar sesión?

Después de cada inicio de sesión, hay ciertos comandos que ejecuto en pestañas específicas de gnome-terminal. Este es un proceso tedioso, ¿se puede hacer automáticamente?

11
tshepang

Sí, hay una manera. Necesita decirle a gnome-terminal que abra pestañas con ciertos perfiles; Estos perfiles deben configurarse para iniciar un Shell con los comandos que desee.

Primero, necesita crear un script (o un icono de lanzador) que iniciará gnome-terminal --tab-with-profile=Dev. "Dev" es el nombre de un perfil que creará, así que reemplácelo por el que desee. Además, puede especificar tantos --tab-with-profiles como desee: abrirá una pestaña para cada uno.

Ahora, necesita el perfil al que acaba de hacer referencia. Esto se crea abriendo gnome-terminal, y encontrar Edit->Profiles... en el menú. Cree un nuevo perfil y asígnele el nombre que especificó en el paso anterior. A continuación, debe establecer sus preferencias. Resalte el perfil recién creado y haga clic en el botón Editar. Cuando aparezca el cuadro de diálogo Preferencias de perfil, active la pestaña "Título y comando", marque "Ejecutar un comando personalizado ..." y en el cuadro de texto asociado, coloque sh -c "ENV=$HOME/.dev_profile sh". Por supuesto, puede configurar ENV en cualquier ruta que desee, siempre que sea coherente en el siguiente paso. Esto inicia sh, y sh ejecutará cualquier comando que esté en $HOME/.dev_profile

A continuación, debe crear ese archivo de perfil de Shell. Así que edite $ HOME/.dev_profile (o cualquier archivo que haya especificado en el paso anterior). Coloque los comandos que desee allí; se ejecutarán cuando se inicie el Shell. Trate esto como lo haría con un .bashrc; esto lo reemplazará. Dependiendo de cómo esté configurado su .bashrc, es posible que desee source $HOME/.bashrc en el perfil para copiar toda la funcionalidad de su perfil normal de sh.

5
Shawn J. Goff

Puede iniciar varios comandos en la misma línea de comandos de gnome-terminal especificando el --tab-with-profile opción varias veces, seguida cada vez por una única -e especificando qué comando ejecutar en esa pestaña. También puedes usar --window-with-profile tener varias ventanas. Por ejemplo, el siguiente comando inicia dos ventanas con dos pestañas cada una; la primera ventana ejecuta bash en cada pestaña, estableciendo la variable de entorno TAB en 1 o 2; la segunda ventana ejecuta htop en una pestaña y iotop en la otra pestaña. La invocación explícita sh, con las comillas correctas, es necesaria por alguna razón.

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'

Si desea que se ejecute un comando cuando inicie sesión, colóquelo en un script de Shell (por ejemplo, ~/bin/my_gnome_login_commands, y regístrelo en “Sistema/Preferencias/Aplicaciones de inicio” en el menú de Gnome. Alternativamente, cree un archivo ~/.config/autostart/my_commands.desktop que contiene

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

(Debe utilizar la ruta completa a su directorio de inicio en el Exec= línea, no puede usar ~.)

(Esta respuesta ha sido probada con Gnome 2.30 en Ubuntu 10.04. Como Gnome a veces rompe la compatibilidad, puede que se aplique o no a otras versiones).

Veo aquí muchas cosas. Probablemente no necesites nada de esto.

Estos son los pasos que hice en mi Oracle 5.9 Linux:

  1. Cree un icono de gnome-terminal en su escritorio.
  2. Abra su gnome-terminal.
  3. Vaya a Editar -> Perfiles.
  4. Seleccione su perfil predeterminado y haga clic en Editar.
  5. Vaya a la pestaña "Título y comando".
  6. Seleccione la opción "Ejecutar comando como shell de inicio de sesión".
  7. Haga clic en el botón Cerrar.

Funcionó para mí. Por supuesto, en mi caso, solo quiero ejecutar .profile para configurar el entorno de mi terminal.

0
CesarDBA