Wykonaj polecenie za każdym razem, gdy terminal jest otwarty

19

Korzystam z Ubuntu 13.04 i chciałbym skonfigurować mój terminal, aby za każdym razem, gdy otwierana była nowa karta / okno, wykonywał następujące polecenie automatycznie i natychmiast.

 /bin/bash --login

Jak mogłem to osiągnąć? W OSX z iTerm 2 istnieje opcja uruchomienia polecenia przy starcie. Myślę, że tutaj powinienem to osiągnąć poprzez jakiś plik kropkowy ...

jeśli __name__ to None
źródło
Dlaczego chcesz to zrobić? Po otwarciu nowego terminala to polecenie jest już wykonane.
Spack
Nie, nie jest. Potrzebuję tego z powodu błędu w używanym przeze mnie środowisku programistycznym. --loginFlaga jest kluczowa.
jeśli __nazwa__ to Brak

Odpowiedzi:

21

Dodaj polecenie do swojego ~/.bashrc. Technicznie, powinny być w stanie dodać do ~/.profilejak również, z man bash, INVOCATIONdokumentacji:

Jeśli bash jest wywoływany z tą nazwą sh, próbuje naśladować zachowanie startowe wersji historycznych shmożliwie jak najbliżej, jednocześnie zachowując zgodność ze standardem POSIX. Wywołany jako interaktywną powłokę logowania lub nie-interaktywnej powłoki z --loginopcją, pierwszych prób odczytu i wykonywania poleceń /etc/profilei ~/.profile, w tej kolejności.

Również:

Bash próbuje ustalić, kiedy jest uruchamiany ze standardowym wejściem podłączonym do połączenia sieciowego, tak jak w przypadku wykonania przez zdalny demon powłoki, zwykle rshdlub bezpieczny demon powłoki sshd. Jeśli bash stwierdzi, że został uruchomiony w ten sposób, że czyta i wykonuje polecenia z ~/.bashrci ~/.bashrc, jeżeli te pliki istnieją i są czytelne.

Oznacza to, że jeśli jesteś zalogowany lokalnie, powinieneś być OK, używając ~/.profile; ale jeśli ssh do systemów, będziesz chciał użyć ~/.bashrc. ~/.bashrcma również zastosowanie, gdy jest zalogowany lokalnie; więc właśnie stało się konwencją, aby z tego korzystać.


źródło
3

Próbować:

  • W terminalu edytuj> Preferencje> Tytuł karty i polecenie> Uruchom niestandardowe polecenie mojej powłoki .

wprowadź opis zdjęcia tutaj

Lub

  • gnome-terminal --tab -e "your command" aby otworzyć nową kartę.

Więcej informacji: ManPage Gnome-terminal

stderr
źródło
2
Właściwie po prostu sprawdzenie run command as login shellnaprawił mój problem.
jeśli __nazwa__ to Brak