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

11

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, entonces ¿se puede hacer esto automáticamente?

tshepang
fuente

Respuestas:

5

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

Primero, debe crear un script (o un icono de iniciador) que se inicie gnome-terminal --tab-with-profile=Dev. "Dev" es el nombre de un perfil que creará, así que reemplácelo con lo que quiera que sea. Además, puede especificar tantos --tab-with-profiles como desee: se abrirá una pestaña para cada uno.

Ahora, necesita el perfil al que acaba de hacer referencia. Esto se crea al abrir gnome-terminaly buscar 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 el cuadro de diálogo Preferencias de perfil esté activo, 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 si fuera un .bashrc; esto lo reemplazará. Dependiendo de cómo esté configurado su .bashrc, es posible que desee source $HOME/.bashrcen el perfil copiar toda la funcionalidad de su perfil sh normal.

Shawn J. Goff
fuente
3
Por cierto, recomendaría altamente tmux o GNU Screen en su lugar. Son multiplexores de terminal que son un poco más fáciles de configurar para este tipo de cosas, y puede usarlos a través de una conexión ssh. La única desventaja es que no tienen pestañas para que usted haga clic, pero puede obtener una lista de menú de ventanas o sesiones que puede navegar hacia arriba y hacia abajo y cambiar a una. También tienen otras opciones sofisticadas como pantalla dividida, monitores de actividad / inactividad y la capacidad de mantener la sesión abierta sin un terminal conectado.
Shawn J. Goff
1
La pantalla tiene ventajas, pero también tiene desventajas. Una es que desplazarse hacia la salida anterior es más difícil que con la mayoría de los emuladores de terminal X. Otra es que no puede mostrar fácilmente dos ventanas de la misma sesión de pantalla al mismo tiempo (esto no es un problema si usa sesiones de pantalla separadas, pero luego necesita cambiar entre ellas, que separan las pestañas o ventanas del emulador de terminal hace más fácil).
Gilles 'SO- deja de ser malvado'
@Giles: O la pantalla es más fácil de desplazarse: depende de la forma en que le guste trabajar. No estoy seguro de lo que quieres decir con las dos ventanas: lo hago todo el tiempo: ^ a S ^ a <tab> ^ ac
Shawn J. Goff el
2
sí, eso es mucho más simple que hacer doble clic en la barra de pestañas
Falmarri
2
@Falmarri: en realidad lo es. Toco el mouse con poca frecuencia para que el sensor óptico se apague solo, así que tengo que moverlo durante aproximadamente 1,5 segundos antes de que pueda hacer clic. (Sin mencionar que significa quitar mi mano del teclado y tener que encontrar la ubicación de inicio en el teclado nuevamente).
Shawn J. Goff,
7

Puede iniciar múltiples comandos en la misma línea de comando gnome-terminal especificando la --tab-with-profileopción varias veces, seguido cada vez de un solo -ecomando que especifica qué comando ejecutar en esa pestaña. También puede usar --window-with-profilepara tener múltiples ventanas. Por ejemplo, el siguiente comando inicia dos ventanas con dos pestañas cada una; la primera ventana ejecuta bash en cada pestaña, configurando la variable de entorno TABen 1 o 2; la segunda ventana se ejecuta htopen una pestaña y iotopen la otra pestaña. La shinvocación explícita , con una cita correcta, 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 al iniciar sesión, póngalo en un script de shell (por ejemplo ~/bin/my_gnome_login_commands, y regístrelo en "Sistema / Preferencias / Aplicaciones de inicio" en el menú Gnome. Alternativamente, cree un archivo que ~/.config/autostart/my_commands.desktopcontenga

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

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

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

Gilles 'SO- deja de ser malvado'
fuente
0

Estoy viendo muchas cosas aquí. Probablemente no necesites nada de esto.

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

  1. Cree un icono de terminal de gnomo en su escritorio.
  2. Abre tu terminal de gnomo.
  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 mi. Por supuesto, en mi caso, solo quiero ejecutar .profile para configurar mi entorno de terminal.

CesarDBA
fuente