ログイン後にgnome-terminalでコマンドを自動的に実行する方法は?


11

ログインごとに、gnome-terminalの特定のタブで実行する特定のコマンドがあります。これは退屈なプロセスなので、自動的に実行できますか?

回答:


5

はい、方法があります。特定のプロファイルでタブを起動するようにgnome-terminalに指示する必要があります。これらのプロファイルは、必要なコマンドでシェルを起動するように設定する必要があります。

まず、起動するスクリプト(またはランチャーアイコン)を作成する必要がありますgnome-terminal --tab-with-profile=Dev。"Dev"は作成するプロファイルの名前です。したがって、プロファイルを任意の名前に置き換えてください。また、必要な数のを指定できます--tab-with-profile。それぞれのタブが開きます。

ここで、参照したばかりのプロファイルが必要です。これは、を開きgnome-terminalEdit->Profiles...メニューで検索することによって作成されます。新しいプロファイルを作成し、前のステップで指定した名前を付けます。次に、そのプリファレンスを設定する必要があります。新しく作成したプロファイルを強調表示し、[編集]ボタンをクリックします。[プロファイル設定]ダイアログが表示されたら、[タイトルとコマンド]タブをアクティブにし、[カスタムコマンドを実行...]をオンにして、関連するテキストボックスにを入力しsh -c "ENV=$HOME/.dev_profile sh"ます。もちろん、次のステップで一貫している限り、ENVを任意のパスに設定できます。これによりshが開始され、shはすべてのコマンドを実行します$HOME/.dev_profile

次に、そのシェルプロファイルファイルを作成する必要があります。$ HOME / .dev_profile(または前のステップで指定したファイル)を編集します。そこに必要なコマンドを配置します。シェルの起動時に実行されます。これを.bashrcと同じように扱います-これで置き換えられます。.bashrcの設定方法によってはsource $HOME/.bashrc、通常のshプロファイルからすべての機能をコピーするためにプロファイルに含めることができます。


3
ちなみに、代わりにtmuxまたはGNU Screenを強くお勧めします。これらはターミナルマルチプレクサーであり、この種のものをセットアップするのが少し簡単で、ssh接続を介して使用できます。唯一の欠点は、クリックするためのタブがないことですが、ウィンドウまたはセッションのメニューリストが表示され、上下にナビゲートして1つに切り替えることができます。また、分割画面、アクティビティ/非アクティビティモニター、端末を接続せずにセッションを開いたままにする機能など、その他の優れたオプションもあります。
Shawn J. Goff、2010年

1
画面には利点がありますが、欠点もあります。1つは、過去の出力にスクロールして戻ることが、ほとんどのX端末エミュレータよりも難しいことです。もう1つは、同じ画面セッションから2つのウィンドウを同時に表示することは簡単ではないことです(これは、個別の画面セッションを使用する場合は問題になりませんが、それらを切り替える必要があります。これらは、ターミナルエミュレータのタブまたはウィンドウを分離するためです)簡単になります)。
Gilles「SO-悪をやめる」

@Giles:または、画面の方がスクロールが簡単です。作業方法によって異なります。2つのウィンドウの意味がわからない-私はいつもそうしています:^ a S ^ a <tab> ^ ac
Shawn J. Goff

2
はい、タブバーをダブルクリックするよりもはるかに簡単です
Falmarri

2
@Falmarri:実際にそうです。光学センサーがオフになるほど頻繁にマウスに触れないので、クリックする前に約1.5秒間振る必要があります。(言うまでもなく、それは私の手をキーボードから離して、キーボードのホーム位置を再び見つける必要があることを意味します。)
Shawn J. Goff

7

同じgnome-terminalコマンドラインで複数のコマンドを開始するには、--tab-with-profileオプションを複数回指定し、その後-e、そのタブで実行するコマンドを1つずつ指定します。--window-with-profile複数のウィンドウを使用することもできます。たとえば、次のコマンドは、それぞれ2つのタブを持つ2つのウィンドウを起動します。最初のウィンドウは各タブでbashを実行し、環境変数TABを1または2に設定します。2番目のウィンドウhtopは1つのタブとiotop他のタブで実行されます。sh何らかの理由で、正確な引用を伴う明示的な呼び出しが必要です。

gnome-terminal --tab-with-profile="Default" -e 'sh -c '\''export TAB=1; exec bash'\' \
               --tab-with-profile="Default" -e 'sh -c '\''export TAB=2; exec bash'\' \
               --window-with-profile="Default" -e 'htop' \
               --tab-with-profile="Default" -e 'iotop'

ログイン時にコマンドを実行する場合は、そのコマンドをシェルスクリプトに入れて(たとえば~/bin/my_gnome_login_commands、Gnomeメニューの[System / Preferences / Startup Applications]に登録します。または、次~/.config/autostart/my_commands.desktopを含むファイルを作成します。

[Desktop Entry]
Type=Application
Exec=/home/tshepang/bin/my_gnome_login_commands
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

Exec=行ではホームディレクトリへのフルパスを使用する必要があります~。は使用できません。)

(この回答はUbuntu 10.04のGnome 2.30でテストされています。Gnomeは互換性を損なう場合があるため、他のバージョンに適用される場合と適用されない場合があります。)


0

ここにはたくさんのものがあります。おそらくこれは何も必要ありません。

Oracle 5.9 Linuxで実行した手順は次のとおりです。

  1. デスクトップにgnome-terminalアイコンを作成します。
  2. gnome-terminalを開きます。
  3. [編集]-> [プロファイル]に移動します。
  4. デフォルトプロファイルを選択し、[編集]をクリックします。
  5. 「タイトルとコマンド」タブに移動します。
  6. 「コマンドをログインシェルとして実行」オプションを選択します。
  7. 閉じるボタンをクリックします。

それは私のために働いた。もちろん、私の場合、.profileを実行して端末環境をセットアップしたいだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.