Jak uruchamiać polecenia automatycznie na gnome-terminal po zalogowaniu?


11

Po każdym logowaniu są pewne polecenia uruchamiane na określonych kartach terminalu gnome. To żmudny proces, więc czy można to zrobić automatycznie?

Odpowiedzi:


5

Tak, jest sposób. Musisz powiedzieć gnome-terminalowi, aby uruchomił zakładki z określonymi profilami; profile te muszą zostać skonfigurowane, aby uruchomić powłokę z żądanymi poleceniami.

Najpierw musisz utworzyć skrypt (lub ikonę programu uruchamiającego), który się uruchomi gnome-terminal --tab-with-profile=Dev. „Dev” to nazwa profilu, który utworzysz, więc zamień go na cokolwiek chcesz. Możesz także podać dowolną liczbę --tab-with-profiles: otworzy się zakładka dla każdego z nich.

Teraz potrzebujesz profilu, do którego właśnie się odwoływałeś. Jest to tworzone przez otwieranie gnome-terminali znajdowanie Edit->Profiles...w menu. Utwórz nowy profil i nadaj mu nazwę określoną w poprzednim kroku. Następnie musisz ustawić jego preferencje. Podświetl nowo utworzony profil i kliknij przycisk Edytuj. Gdy pojawi się okno dialogowe Preferencje profilu, aktywuj kartę „Tytuł i polecenie”, zaznacz „Uruchom niestandardowe polecenie ...” i wstaw odpowiednie pole tekstowe sh -c "ENV=$HOME/.dev_profile sh". Oczywiście możesz ustawić ENV na dowolną ścieżkę, o ile jesteś konsekwentny w następnym kroku. Spowoduje to uruchomienie sh i sh wykona wszystkie zawarte w nim polecenia$HOME/.dev_profile

Następnie musisz utworzyć ten plik profilu powłoki. Więc edytuj $ HOME / .dev_profile (lub jakikolwiek inny plik określony w poprzednim kroku). Umieść tam dowolne polecenia; zostaną one wykonane po uruchomieniu powłoki. Potraktuj to jak plik .bashrc - to go zastąpi. W zależności od konfiguracji .bashrc możesz chcieć source $HOME/.bashrcw profilu skopiować wszystkie funkcje z normalnego profilu sh.


3
Nawiasem mówiąc, zdecydowanie polecam zamiast tego tmux lub GNU Screen. Są to multipleksery terminali, które są nieco łatwiejsze do skonfigurowania do tego rodzaju rzeczy i można ich używać przez połączenie ssh. Jedyną wadą jest to, że nie mają kart do kliknięcia, ale można uzyskać listę menu okien lub sesji, w których można poruszać się w górę iw dół i przełączać się na jedną. Mają także inne fantazyjne opcje, takie jak podzielony ekran, monitory aktywności / braku aktywności oraz możliwość utrzymywania sesji otwartej bez podłączonego terminala.
Shawn J. Goff,

1
Ekran ma zalety, ale ma też wady. Jednym z nich jest to, że przewijanie z powrotem do poprzednich wyników jest trudniejsze niż w przypadku większości emulatorów terminali X. Innym jest to, że nie można łatwo wyświetlać dwóch okien z tej samej sesji ekranowej w tym samym czasie (nie jest to problemem, jeśli używasz osobnych sesji ekranowych, ale wtedy musisz przełączać się między nimi, które oddzielne karty emulatora terminali lub okna ułatwia).
Gilles „SO- przestań być zły”

@Giles: Lub ekran jest łatwiejszy do przewijania: zależy to od tego, jak lubisz pracować. Nie jestem pewien, co masz na myśli przez dwa okna - robię to cały czas: ^ a S ^ a <tab> ^ ac
Shawn J. Goff

2
tak, jest to o wiele prostsze niż dwukrotne kliknięcie paska kart
Falmarri,

2
@Falmarri: faktycznie tak jest. Dotykam myszy tak rzadko, że czujnik optyczny wyłącza się, więc muszę nim machać przez około 1,5 sekundy, zanim cokolwiek kliknę. (Nie wspominając o tym, oznacza to oderwanie dłoni od klawiatury i ponowne znalezienie położenia domowego na klawiaturze.)
Shawn J. Goff,

7

Możesz uruchomić wiele poleceń w tym samym wierszu poleceń gnome-terminal, określając tę --tab-with-profileopcję wiele razy, a następnie za każdym razem jedno -eokreślenie, które polecenie ma zostać uruchomione na tej karcie. Możesz także użyć --window-with-profilewielu okien. Na przykład następujące polecenie uruchamia dwa okna z dwoma zakładkami; pierwsze okno uruchamia bash na każdej karcie, ustawiając zmienną środowiskową TABna 1 lub 2; drugie okno działa htopna jednej karcie i iotopna drugiej karcie. Wyraźne shwywołanie, z poprawnym cytowaniem, jest z jakiegoś powodu konieczne.

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'

Jeśli chcesz, aby polecenie było uruchamiane podczas logowania, umieść je w skrypcie powłoki (na przykład ~/bin/my_gnome_login_commandsi zarejestruj w „System / Preferencje / Aplikacje startowe” w menu Gnome. Alternatywnie utwórz plik ~/.config/autostart/my_commands.desktopzawierający

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

(Musisz użyć pełnej ścieżki do swojego katalogu domowego w Exec=linii, nie możesz użyć ~.)

(Ta odpowiedź została przetestowana z Gnome 2.30 na Ubuntu 10.04. Ponieważ Gnome czasami łamie kompatybilność, może, ale nie musi mieć zastosowania do innych wersji).


0

Widzę tu wiele rzeczy. Prawdopodobnie nic z tego nie potrzebujesz.

Oto kroki, które zrobiłem w moim systemie Oracle 5.9 Linux:

  1. Utwórz ikonę terminala gnome na pulpicie.
  2. Otwórz terminal gnome.
  3. Przejdź do Edycja -> Profile.
  4. Wybierz domyślny profil i kliknij Edytuj.
  5. Przejdź do zakładki „Tytuł i polecenie”.
  6. Wybierz opcję „Uruchom polecenie jako powłokę logowania”.
  7. Kliknij przycisk Zamknij.

To zadziałało dla mnie. Oczywiście w moim przypadku chcę po prostu uruchomić plik .profile, aby skonfigurować środowisko terminalowe.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.