Wie werden Befehle nach der Anmeldung automatisch auf dem Gnome-Terminal ausgeführt?

11

Nach jeder Anmeldung gibt es bestimmte Befehle, die ich auf bestimmten Registerkarten des Gnome-Terminals ausführe. Dies ist ein langwieriger Prozess. Kann dies also automatisch erfolgen?

Tshepang
quelle

Antworten:

5

Ja, es gibt einen Weg. Sie müssen gnome-terminal anweisen, Registerkarten mit bestimmten Profilen zu starten. Diese Profile müssen so eingerichtet sein, dass eine Shell mit den gewünschten Befehlen gestartet wird.

Zuerst müssen Sie ein Skript (oder ein Startsymbol) erstellen, das gestartet wird gnome-terminal --tab-with-profile=Dev. "Dev" ist der Name eines Profils, das Sie erstellen. Ersetzen Sie es also durch das, was Sie möchten. Sie können auch so viele --tab-with-profiles angeben, wie Sie möchten: Es wird jeweils eine Registerkarte geöffnet.

Jetzt benötigen Sie das Profil, auf das Sie gerade verwiesen haben. Dies wird durch Öffnen gnome-terminalund Suchen Edit->Profiles...im Menü erstellt. Erstellen Sie ein neues Profil und geben Sie ihm den Namen, den Sie im vorherigen Schritt angegeben haben. Als nächstes müssen Sie die Einstellungen festlegen. Markieren Sie das neu erstellte Profil und klicken Sie auf die Schaltfläche Bearbeiten. Wenn das Dialogfeld "Profileinstellungen" geöffnet ist, aktivieren Sie die Registerkarte "Titel und Befehl", aktivieren Sie "Benutzerdefinierten Befehl ausführen ..." und geben Sie in das zugehörige Textfeld ein sh -c "ENV=$HOME/.dev_profile sh". Natürlich können Sie ENV auf einen beliebigen Pfad einstellen, solange Sie im nächsten Schritt konsistent sind. Dies startet sh und sh führt alle Befehle aus, die darin enthalten sind$HOME/.dev_profile

Als Nächstes müssen Sie diese Shell-Profildatei erstellen. Bearbeiten Sie also $ HOME / .dev_profile (oder eine beliebige Datei, die Sie im vorherigen Schritt angegeben haben). Platzieren Sie dort die gewünschten Befehle. Sie werden ausgeführt, wenn die Shell gestartet wird. Behandeln Sie dies wie eine .bashrc - dies wird es ersetzen. Abhängig davon, wie Ihre .bashrc eingerichtet ist, möchten Sie möglicherweise source $HOME/.bashrcim Profil alle Funktionen von Ihrem normalen sh-Profil kopieren.

Shawn J. Goff
quelle
3
Übrigens würde ich stattdessen tmux oder GNU Screen wärmstens empfehlen. Es handelt sich um Terminal-Multiplexer, die für diese Art von Dingen etwas einfacher einzurichten sind, und Sie können sie über eine SSH-Verbindung verwenden. Der einzige Nachteil ist, dass sie keine Registerkarten haben, auf die Sie klicken können. Sie können jedoch eine Menüliste mit Fenstern oder Sitzungen abrufen, durch die Sie nach oben und unten navigieren und zu einer wechseln können. Sie haben auch andere ausgefallene Optionen wie Split-Screen, Aktivitäts- / Inaktivitätsmonitore und die Möglichkeit, die Sitzung ohne angeschlossenes Terminal offen zu halten.
Shawn J. Goff
1
Bildschirm hat Vorteile, aber auch Nachteile. Zum einen ist das Zurückblättern zur vorherigen Ausgabe schwieriger als bei den meisten X-Terminal-Emulatoren. Ein weiterer Grund ist, dass nicht einfach zwei Fenster aus derselben Bildschirmsitzung gleichzeitig angezeigt werden können (dies ist kein Problem, wenn Sie separate Bildschirmsitzungen verwenden, aber Sie müssen zwischen diesen wechseln, um die Registerkarten oder Fenster des Terminalemulators zu trennen macht es einfacher).
Gilles 'SO - hör auf böse zu sein'
@Giles: Oder Bildschirm ist einfacher zu scrollen: Es hängt davon ab, wie Sie arbeiten möchten. Ich bin mir nicht sicher, was du mit den beiden Fenstern meinst - ich mache es die ganze Zeit: ^ a S ^ a <tab> ^ ac
Shawn J. Goff
2
Ja, das ist viel einfacher als ein Doppelklick auf die Registerkartenleiste
Falmarri
2
@ Falmarri: Eigentlich ist es. Ich berühre die Maus selten genug, dass sich der optische Sensor selbst ausschaltet, sodass ich ihn etwa 1,5 Sekunden lang bewegen muss, bevor ich auf etwas klicken kann. (Ganz zu schweigen davon, dass ich meine Hand von der Tastatur nehmen und den Heimatort wieder auf der Tastatur finden muss.)
Shawn J. Goff
7

Sie können mehrere Befehle in derselben Gnome-Terminal-Befehlszeile starten, indem Sie die --tab-with-profileOption mehrmals angeben, gefolgt von einem einzelnen -eBefehl, der angibt, welcher Befehl auf dieser Registerkarte ausgeführt werden soll. Sie können auch --window-with-profilemehrere Fenster verwenden. Mit dem folgenden Befehl werden beispielsweise zwei Fenster mit jeweils zwei Registerkarten gestartet. Das erste Fenster führt Bash in jeder Registerkarte aus und setzt die Umgebungsvariable TABauf 1 oder 2. Das zweite Fenster wird htopauf einer Registerkarte und iotopauf der anderen Registerkarte ausgeführt. Das explizitesh Aufruf mit korrekter Anführungszeichen ist aus irgendeinem Grund erforderlich.

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'

Wenn Sie möchten, dass ein Befehl beim Anmelden ausgeführt wird, fügen Sie ihn beispielsweise in ein Shell-Skript ein ~/bin/my_gnome_login_commands und registrieren Sie ihn beispielsweise unter „System / Einstellungen / Startanwendungen“ im Gnome-Menü. Alternativ erstellen Sie eine Datei ~/.config/autostart/my_commands.desktopmit

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

(Sie müssen den vollständigen Pfad zu Ihrem Home-Verzeichnis in der Exec=Zeile verwenden, den Sie nicht verwenden können ~.)

(Diese Antwort wurde mit Gnome 2.30 unter Ubuntu 10.04 getestet. Da Gnome manchmal die Kompatibilität beeinträchtigt, gilt sie möglicherweise für andere Versionen.)

Gilles 'SO - hör auf böse zu sein'
quelle
0

Ich sehe hier viele Sachen. Wahrscheinlich brauchen Sie nichts davon.

Dies sind die Schritte, die ich in meinem Oracle 5.9 Linux ausgeführt habe:

  1. Erstellen Sie ein Gnome-Terminal-Symbol auf Ihrem Desktop.
  2. Öffne dein Gnom-Terminal.
  3. Gehen Sie zu Bearbeiten -> Profile.
  4. Wählen Sie Ihr Standardprofil und klicken Sie auf Bearbeiten.
  5. Gehen Sie zur Registerkarte "Titel und Befehl".
  6. Wählen Sie die Option "Befehl als Login-Shell ausführen".
  7. Klicken Sie auf die Schaltfläche Schließen.

Es hat bei mir funktioniert. In meinem Fall möchte ich natürlich nur .profile ausführen, um meine Terminalumgebung einzurichten.

CesarDBA
quelle