Виконайте команду кожного разу, коли Terminal відкритий


19

Я перебуваю на Ubuntu 13.04, і я хотів би налаштувати свій термінал, щоб кожен раз, коли відкривалася нова вкладка / вікно, вона виконувала таку команду автоматично і відразу.

 /bin/bash --login

Як я міг цього досягти? На OSX з iTerm 2 є можливість запустити команду при запуску. Я думаю, тут я повинен досягти цього через якийсь dotfile ...


Чому ти хочеш це робити? Коли ви відкриваєте новий термінал, ця команда вже виконується.
Spack

Ні це не так. Мені це потрібно через помилку в деякому середовищі розробки, який я використовую. --loginПрапор має вирішальне значення.
якщо __name__ є None

Відповіді:


21

Додайте команду до свого ~/.bashrc. Технічно, ви повинні бути в змозі додати , ~/.profileа також, з man bash, INVOCATIONдокументації:

Якщо bash викликається ім'ям sh, він намагається максимально наблизити поведінку до запуску історичних версій sh, одночасно відповідаючи стандарту POSIX. Коли викликається інтерактивна оболонка для входу або неінтерактивна оболонка з --loginможливістю, вона спочатку намагається прочитати та виконати команди з /etc/profileта ~/.profileв цьому порядку.

Також:

Bash намагається визначити, коли він працює з його стандартним входом, підключеним до мережевого з'єднання, як коли виконується віддаленим демоном оболонки, як правило rshd, або захищеним демоном оболонки sshd. Якщо bash визначає, що він запускається таким чином, він зчитує та виконує команди з, ~/.bashrcі ~/.bashrcякщо ці файли існують і читаються.

Отже, це означає, що якщо ви ввійшли в систему на локальному рівні, ви повинні мати все в порядку ~/.profile; але, якщо ви ssh до систем, ви хочете використовувати ~/.bashrc. ~/.bashrcтакож застосовується при локальному вході; тож, це просто стало умовою використовувати це.


3

Спробуйте:

  • У терміналі, Edit> Preferences> вкладка Тема і команда> Виконати призначену для користувача команду моєї оболонки .

введіть тут опис зображення

Або

  • gnome-terminal --tab -e "your command" щоб відкрити нову вкладку.

Більше інформації: ManPage Gnome-термінал


2
Власне, просто перевірка run command as login shellвиправленої моєї проблеми.
якщо __name__ є None
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.