Wie kann ich mehrere benutzerdefinierte Terminal-Shells öffnen?

Wie kann ich Terminal so anpassen, dass beim Öffnen der Anwendung mehrere Shell-Registerkarten geöffnet werden? Wenn möglich, möchte ich auch, dass für jede Registerkarte ein anderes Umgebungsskript ausgeführt wird.

Beispiel: Führen Sie diesen Befehl source bin/activateaus, der ein Python virtualenv-Setup-Befehl ist.

Antworten (5)

Fügen Sie dies zu Ihrem hinzu, ~/.bash_profilewenn Sie bash verwenden oder ~/.zshrcwenn Sie zsh verwenden, und ändern Sie den Inhalt des COMMANDSArrays:

function openterms() {
    COMMANDS=("source bin/activate" "add another here" "continue likewise")
    for command in $COMMANDS
        do osascript -e \
        "tell application \"Terminal\" to do script with command \"$command\""
    done
}

Wenn Sie jetzt opentermseine Shell aufrufen, werden alle anderen gewünschten Shells geöffnet.

Ich verwende Keyboard Maestro . Ich habe einmal ein Makro aufgezeichnet, das Terminal so einrichtet (ich verwende iTerm, aber es spielt keine Rolle), wie ich es mag, und dieses Makro so erstellt, dass es durch den Start von iTerm ausgelöst wird.

Wenn ich also starte, ist es so eingerichtet, wie ich es wollte. Zwei Fenster, fünf Registerkarten in einem für verschiedene Ordner, wobei jede Registerkarte entsprechend benannt ist, und ein weiteres Fenster mit zwei Registerkarten, die mit meinem Server verbunden sind, von denen eine ein Überwachungsskript startet. All dies geschieht innerhalb von 2 Sekunden nach dem Start des Terminals, was früher eine Minute oder länger dauern würde.

Jetzt habe ich keine Angst mehr, iTerm zu schließen, wenn ich es brauche, da ich es ohne Anstrengung im selben Zustand wieder öffnen kann.

Übrigens ist Keyboard Maestro auch für viele andere Dinge gut. Ich habe es kürzlich mit Rabatt auf mupromo.com gekauft, wo ich es zum ersten Mal entdeckt habe, aber es ist meiner Meinung nach auch seinen vollen Preis wert.

Wie Josh K erwähnt hat, können Sie eine Fenstergruppe erstellen, um ein oder mehrere Fenster mit bestimmten Layouts und Erscheinungsbildern zu öffnen. Darüber hinaus können "Einstellungsprofile" (Terminal > Einstellungen > Einstellungen) einen Befehl angeben, der ausgeführt werden soll, wenn ein Terminal mit diesem Profil erstellt wird. Sie können für jeden Befehl, den Sie ausführen möchten, ein separates Profil erstellen und dann Fenster mit diesen Profilen erstellen. Wenn Sie sie in einer Fenstergruppe speichern und erneut öffnen, werden diese Befehle in den entsprechenden Fenstern ausgeführt. Sie können Terminal sogar beim Start eine bestimmte Fenstergruppe öffnen lassen.

Ab Mac OS X Lion 10.7 gibt es mehrere neue Verbesserungen in diesem Bereich:

  1. Resume stellt automatisch Fenster wieder her, die beim Beenden von Terminal geöffnet waren, sodass die Verwendung einer Fenstergruppe dafür nicht mehr unbedingt erforderlich ist (obwohl Sie damit ein bestimmtes Setup neu erstellen können, wenn Sie die Fenster geschlossen haben).

  2. Wenn Sie mit Shell > New Command ein neues Terminal erstellen, kann Terminal, da es weiß, welchen Befehl Sie ausgeführt haben, es wiederherstellen, indem es es erneut ausführt. Das Terminal stellt jetzt automatisch "sichere" Befehle† wieder her, wenn es fortgesetzt wird.

  3. Terminal stellt diese Befehle auch wieder her, wenn Sie diese Art von Terminals in einer Fenstergruppe speichern. Außerdem gibt es beim Speichern einer Fenstergruppe die Möglichkeit, alle Befehle wiederherzustellen, nicht nur die "sicheren". Sie müssen also nicht mehr für jeden Befehl, den Sie ausführen möchten, ein separates Einstellungsprofil erstellen.

† „Sichere“ Befehle umfassen alles, was in /etc/shells, emacs, vi/vim, nano, pico, top, screen, tmux aufgelistet ist, und alle Befehle, die mit Shell > New Remote Connection erstellt wurden (z. B. ssh-Sitzungen). Beachten Sie, dass nur top als "sicher" gilt, wenn es mit Argumenten verwendet wird; die anderen unterstützen Argumente, die ohne Benutzerbestätigung möglicherweise Dinge tun, die Sie nicht möchten, sodass sie für die automatische Wiederherstellung nicht als "sicher" gelten, es sei denn, sie werden ohne Argumente aufgerufen. Sie können die Liste der "sicheren" Befehle mit "defaults write com.apple.Terminal RestorableCommands" anpassen. Der Wert ist eine Liste von Zeichenfolgen, die die Befehlsnamen enthalten. Um anzugeben, dass Argumente zulässig sind, fügen Sie nach einem Befehl ein Sternchen hinzu. zB macht "top *" top sicher, wenn es mit Argumenten verwendet wird, aber "top" nicht.

Alternativ können Sie auch verwenden screen, um mehrere Registerkarten in einem einzigen Fenster zu öffnen. screen ist sehr flexibel und kann so konfiguriert werden, dass beliebige Skripte während des Terminalstarts ausgeführt werden.

Mehr Info.

Beschreibt dieser Beitrag , was Sie tun möchten ?