Jak mogę otworzyć wiele niestandardowych powłok terminali?

10

Jak dostosować terminal, aby po otwarciu aplikacji otwierało kilka kart powłoki? Jeśli to możliwe, chciałbym również, aby uruchomił on inny skrypt środowiska dla każdej karty.

Przykład: Uruchom to polecenie, source bin/activatektóre jest poleceniem instalacji virtualenv w języku Python.

citadelgrad
źródło

Odpowiedzi:

4

Dodaj to do swojego, ~/.bash_profilejeśli używasz bash lub ~/.zshrcjeśli używasz zsh, zmieniając zawartość COMMANDStablicy:

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
}

Teraz wywołanie opentermspowłoki otworzy wszystkie pozostałe powłoki, które chciałeś.

Carmine Paolino
źródło
3

Używam Keyboard Maestro . Kiedyś nagrałem makro, które konfiguruje Terminal (używam iTerm, ale to nie ma znaczenia) tak, jak lubię, i uruchomiłem to makro, uruchamiając iTerm.

Kiedy uruchamiam, konfiguruje się tak, jak chciałem. Dwa okna, pięć kart w jednym dla różnych folderów z każdą kartą o odpowiedniej nazwie, a drugie okno z dwiema kartami podłączonymi do mojego serwera, jedno z nich uruchamia skrypt monitorujący. Wszystko to odbywa się w ciągu 2 sekund od uruchomienia Terminalu, co wcześniej zajmie minutę lub dłużej.

Teraz nie boję się zamknąć iTerm, jeśli zajdzie taka potrzeba, ponieważ mogę ponownie otworzyć go w tym samym stanie bez żadnego wysiłku.

Nawiasem mówiąc, Keyboard Maestro nadaje się również do wielu innych rzeczy. Niedawno kupiłem go ze zniżką na mupromo.com, gdzie odkryłem go po raz pierwszy, ale moim zdaniem jest też wart swojej pełnej ceny.

Jacob Gorban
źródło
2

Jak wspomniał Josh K, możesz utworzyć grupę okien do otwierania jednego lub więcej okien o określonych układach i wyglądzie. Ponadto „profile ustawień” (Terminal> Preferencje> Ustawienia) mogą określać polecenie, które zostanie uruchomione podczas tworzenia terminala z tym profilem. Możesz utworzyć osobny profil dla każdego polecenia, które chcesz uruchomić, a następnie utworzyć okna z tymi profilami. Gdy zapiszesz je w grupie okien i otworzysz je ponownie, te polecenia będą działać w odpowiednich oknach. Możesz nawet otworzyć Terminal podczas otwierania określonej grupy okien.

Począwszy od systemu Mac OS X Lion 10.7, wprowadzono kilka nowych ulepszeń w tym obszarze:

  1. Wznów automatycznie przywróci okna, które były otwarte po wyjściu z terminalu, więc użycie grupy okien do tego celu nie jest już absolutnie konieczne (chociaż pozwalają na ponowne utworzenie określonej konfiguracji, jeśli okno zostało zamknięte).

  2. Jeśli utworzysz nowy terminal za pomocą Powłoki> Nowe polecenie, ponieważ Terminal wie, jakie polecenie wykonałeś, może je przywrócić, uruchamiając je ponownie. Terminal będzie teraz automatycznie przywracał „bezpieczne” polecenia † po wznowieniu.

  3. Terminal przywróci również te polecenia, jeśli zapiszesz tego rodzaju terminale w grupie okien. Ponadto podczas zapisywania grupy okien istnieje możliwość przywrócenia wszystkich poleceń, nie tylko „bezpiecznych”. Nie musisz już tworzyć osobnego profilu ustawień dla każdego polecenia, które chcesz uruchomić.

† „Bezpieczne” polecenia obejmują wszystko wymienione w /etc/shells, emacs, vi / vim, nano, pico, top, screen, tmux i dowolne polecenia utworzone za pomocą Shell> Nowe zdalne połączenie (np. Sesje ssh). Zauważ, że tylko góra jest uważana za „bezpieczną”, gdy używana jest z argumentami; inne obsługują argumenty, które mogą robić rzeczy, których nie chcesz, bez potwierdzenia użytkownika, więc nie są uważane za „bezpieczne” do automatycznego przywracania, chyba że zostaną wywołane bez argumentów. Możesz dostosować listę „bezpiecznych” poleceń za pomocą „defaults write com.apple.Terminal RestorableCommands”. Wartością jest lista ciągów zawierających nazwy poleceń. Aby wskazać, że argumenty są dozwolone, dodaj gwiazdkę po poleceniu. np. „top *” sprawia, że ​​top jest bezpieczny, gdy jest używany z argumentami, ale „top” nie.

Chris Page
źródło
1

Możesz także użyć screendo otwarcia wielu kart w jednym oknie. screen jest bardzo elastyczny i można go skonfigurować do uruchamiania dowolnych skryptów podczas uruchamiania terminalu.

Więcej informacji.

karmatyczna
źródło