ターミナルが開くたびにコマンドを実行する


19

私はUbuntu 13.04を使用していて、新しいタブ/ウィンドウが開くたびに次のコマンドを自動的にすぐに実行するようにターミナルを構成したいと思います。

 /bin/bash --login

どうすればこれを達成できますか?OSXとiTerm 2では、起動時にコマンドを実行するオプションがあります。私はここで私はある種のドットファイルを通してこれを達成するべきだと思います...


なぜこれをしたいのですか?新しいターミナルを開いたとき、このコマンドはすでに実行されています。
2013年

いいえ、ちがいます。私が使用している開発環境のバグのため、これが必要です。--loginフラグは非常に重要です。
__name__がNoneの場合

回答:


21

コマンドをに追加します~/.bashrc。技術的には、あなたがすべきに追加することができる~/.profileから、だけでなくman bashINVOCATIONドキュメント:

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-terminal


2
実際には、run command as login shell修正された私の問題を確認するだけです。
__name__がNoneの場合
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.