Come eseguire i comandi automaticamente su gnome-terminal dopo il login?


11

Dopo ogni accesso, ci sono alcuni comandi che eseguo su schede specifiche di gnome-terminal. Questo è un processo noioso, quindi può essere fatto automaticamente?

Risposte:


5

Sì, c'è un modo. Devi dire a gnome-terminal di avviare le schede con determinati profili; questi profili devono essere configurati per avviare una shell con i comandi desiderati.

Innanzitutto, devi creare uno script (o un'icona di avvio) che verrà avviato gnome-terminal --tab-with-profile=Dev. "Dev" è il nome di un profilo che creerai, quindi sostituiscilo con quello che vuoi che sia. Inoltre, puoi specificare quanti --tab-with-profiles vuoi: si aprirà una scheda per ciascuno.

Ora hai bisogno del profilo a cui hai appena fatto riferimento. Questo viene creato aprendo gnome-terminale trovando Edit->Profiles...nel menu. Crea un nuovo profilo e assegnagli il nome specificato nel passaggio precedente. Successivamente, è necessario impostare le sue preferenze. Evidenzia il profilo appena creato e fai clic sul pulsante Modifica. Quando la finestra di dialogo Preferenze profilo è attiva, attiva la scheda "Titolo e comando", seleziona "Esegui un comando personalizzato ..." e, nella casella di testo associata, inserisci sh -c "ENV=$HOME/.dev_profile sh". Ovviamente, puoi impostare ENV su qualsiasi percorso desideri, purché tu sia coerente nel passaggio successivo. Questo avvia sh e sh eseguirà qualunque comando ci sia$HOME/.dev_profile

Successivamente, è necessario creare quel file del profilo della shell. Quindi modifica $ HOME / .dev_profile (o qualsiasi altro file specificato nel passaggio precedente). Inserisci qualsiasi comando tu voglia lì dentro; saranno eseguiti all'avvio della shell. Trattalo come faresti con un .bashrc - questo lo sostituirà. A seconda di come è installato il tuo .bashrc, potresti voler inserire source $HOME/.bashrcnel profilo tutte le funzionalità dal tuo normale profilo sh.


3
A proposito, consiglio vivamente invece tmux o GNU Screen. Sono multiplexer terminali che sono un po 'più facili da configurare per questo tipo di cose e puoi usarli su una connessione ssh. L'unico svantaggio è che non hanno schede su cui fare clic, ma è possibile ottenere un elenco di menu di finestre o sessioni che è possibile navigare su e giù e passare a uno. Hanno anche altre opzioni fantasiose come monitor a schermo diviso, attività / inattività e la possibilità di tenere aperta la sessione senza un terminale collegato.
Shawn J. Goff,

1
Lo schermo ha dei vantaggi, ma ha anche degli aspetti negativi. Uno è che scorrere indietro all'output passato è più difficile che con la maggior parte degli emulatori di terminali X. Un altro è che non è possibile visualizzare contemporaneamente due finestre della stessa sessione schermo (questo non è un problema se si utilizzano sessioni schermo separate, ma è necessario passare da una all'altra, che separa le schede o le finestre dell'emulatore di terminale rende più facile).
Gilles 'SO- smetti di essere malvagio'

@Giles: Oppure lo schermo è più facile da scorrere: dipende dal modo in cui ti piace lavorare. Non sono sicuro di cosa intendi per le due finestre - lo faccio sempre: ^ a S ^ a <tab> ^ ac
Shawn J. Goff

2
sì, è molto più semplice del doppio clic sulla barra delle schede
Falmarri,

2
@ Falmarri: in realtà lo è. Tocco il mouse abbastanza raramente che il sensore ottico si spegne da solo, quindi devo agitarlo per circa 1,5 secondi prima di poter fare clic su qualsiasi cosa. (Per non parlare del fatto che significa spostare la mia mano dalla tastiera e dover trovare di nuovo la posizione della casa sulla tastiera.)
Shawn J. Goff

7

Puoi avviare più comandi sulla stessa riga di comando gnome-terminal specificando --tab-with-profilepiù volte l' opzione, seguita ogni volta da una singola -especifica del comando da eseguire in quella scheda. Puoi anche usare --window-with-profilepiù finestre. Ad esempio, il comando seguente avvia due finestre con due schede ciascuna; la prima finestra esegue bash in ogni scheda, impostando la variabile di ambiente TABsu 1 o 2; la seconda finestra viene eseguita htopin una scheda e iotopnell'altra scheda. L' shinvocazione esplicita , con citazione corretta, è necessaria per qualche 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 vuoi eseguire un comando quando esegui l'accesso, inseriscilo in uno script di shell (ad esempio ~/bin/my_gnome_login_commands, e registralo in "Sistema / Preferenze / Applicazioni di avvio" nel menu Gnome. In alternativa, crea un file ~/.config/autostart/my_commands.desktopcontenente

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

(Devi usare il percorso completo della tua home directory sulla Exec=linea, non puoi usare ~.)

(Questa risposta è stata testata con Gnome 2.30 su Ubuntu 10.04. Poiché a volte Gnome rompe la compatibilità, potrebbe o meno applicarsi ad altre versioni.)


0

Vedo qui un sacco di cose. Probabilmente non hai bisogno di nulla di tutto questo.

Questi sono i passaggi che ho fatto nel mio Oracle 5.9 Linux:

  1. Crea un'icona gnome-terminal sul desktop.
  2. Apri il tuo terminale gnome.
  3. Vai a Modifica -> Profili.
  4. Seleziona il tuo profilo predefinito e fai clic su Modifica.
  5. Vai nella scheda "Titolo e comando".
  6. Seleziona l'opzione "Esegui comando come shell di accesso".
  7. Fai clic sul pulsante Chiudi.

Ha funzionato per me. Naturalmente, nel mio caso, voglio solo eseguire .profile per configurare il mio ambiente terminale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.