Терминал IntelliJ и Android Studio

Могу ли я получить свои настройки bash, пожалуйста?

Моя подруга Jennifer недавно написала пост о возможностях запуска shell-скриптов в командах с несколькими ОС. Один из вариантов, который она обсуждает, — это встроенный терминал IntelliJ и Android Studio.

Я активный пользователь обеих IDE, но почти никогда не использую встроенный терминал. В macOS я использовал приложение «Терминал» с bash, а в моей текущей установке Ubuntu Budgie я использую Tilix (также с bash). Я открываю встроенный терминал IDE только тогда, когда спешу или слишком ленив, чтобы перейти к своей оболочке.

Зачем вообще его использовать?

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

  • Один из аспектов удобства заключается в том, что внутри проекта ваши оболочки по умолчанию используют корневой каталог проекта. Это может быть полезно, если вы жонглируете множеством окон оболочки или настройкой tmux для нескольких проектов. IntelliJ или Android Studio автоматически поставят вас в нужное место.
  • Как на Mac, так и на Linux терминал по умолчанию работает с /bin/bash. Если это потому, что это фактическое значение по умолчанию в IntelliJ, или если оно получено из значения по умолчанию моей учетной записи пользователя, я не могу сказать.

Оба вышеперечисленных элемента можно легко настроить через панель настроек IDE, если хотите.

причуда

Хотя была одна вещь, которая меня раздражала. Запуск bash в IntelliJ, похоже, не загрузил ни одну из моих настроек bash.

Например, у меня есть пара псевдонимов. Кроме того, я использую разновидность многих доступных подсказок git, которые показывают мне статус git или hg репозитория в каталоге, в котором я сейчас нахожусь. Ни одна из этих вещей не будет работать в терминале IntelliJ.

Согласно документации IntelliJ, ~/.bashrc должен быть получен, если Shell integration отмечен в настройках IntelliJ для терминала.

Получается, что не было, но почему?

Кажется, происходит что-то странное с тем, как вызывается оболочка. Команда оболочки по умолчанию теоретически должна запускать интерактивный bash (насколько я понимаю). Только интерактивные (и не авторизирующиеся) оболочки с исходным кодом .bashrc. Для IntelliJ было бы разумно игнорировать мой файл rc, если bash не запускается как интерактивная оболочка.

В итоге я добавил в команду -i, чтобы /bin/bash -i запускалась как команда. Это явно вызовет вызов в качестве интерактивной оболочки. И бац — вот и все мои настройки в окнах терминала в IntelliJ.

Я не совсем уверен, что здесь происходит за кулисами IntelliJ и что вызвало первоначальную проблему в моем случае. Но если вы столкнулись с этой или похожей проблемой, попробуйте для начала сделать вызов явным.

Надеюсь, вы найдете это информативным и полезным. Как обычно, я буду очень признателен за любые комментарии и отзывы. Вы можете найти меня как AgentK в Твиттере.