Выполнять команду каждый раз, когда терминал открыт

19

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

 /bin/bash --login

Как я мог этого добиться? На OSX с iTerm 2 есть возможность запустить команду при запуске. Я думаю, что здесь я должен достичь этого через некоторый дотфайл ...

если __name__ Нет
источник
почему ты хочешь сделать это? Когда вы открываете новый терминал, эта команда уже выполняется.
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

Пытаться:

  • В терминале, «Правка»> «Настройки»> «Заголовок и команда вкладки» > « Выполнить пользовательскую команду моей оболочки» .

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

Или же

  • gnome-terminal --tab -e "your command" открыть новую вкладку.

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

STDERR
источник
2
На самом деле, просто проверка run command as login shellисправила мою проблему.
если __name__ None