特定のタスクのターミナルインスタンスの開始を自動化する方法


10

私はいくつかのプログラミングチュートリアルを行っており、すべてのセッションで、少なくとも3つのターミナルウィンドウを起動する必要があります(1つはログファイルの末尾、もう1つは出力のテスト、さまざまなシェルコマンドの実行など)。

現在、私はそれらすべてを手動で起動します:ターミナルアイコンをクリックし、正しいフォルダーにcdし、コマンドを入力し、ウィンドウのタイトルを意味のあるものに変更します。

それを自動化するスクリプトなどを書く方法はありますか?もしそうなら、どうやって?

(私は答えとして完全なスクリプトを取得しないことはクールです。どこから読み始めればよいのかポインタも機能します。)

回答:


9

ターミナルアイコンをクリックしているので、を使用してgnome-terminalいると思います。

gnome-terminal --helpコマンドラインで使用してそこから読み取ることで、オプションのリストを取得しました。

マコの答えに基づいて、私はこのようなものを提案するかもしれません:

gnome-terminal --window --title=Log -e "tail -f /var/log/syslog" --window --title=Output --working-directory=output --window --active --title=Dev --working-directory=dev/project

この例では、3つのウィンドウを開始し(--tabタブの場合は渡すことができます)、それぞれに作業ディレクトリ(ホームを基準)とタイトルを設定し、tail1つのウィンドウでコマンドを開始して、3番目のウィンドウをアクティブにします。

もちろん、特に多くの引数がある場合は、個別の行を使用して各ウィンドウを起動することをお勧めします。

ウィンドウを好きなように配置したら、次のことを行うと便利です。

gnome-terminal --save-config=FILE

これにより、開いているすべてのターミナルウィンドウとタブ(タイトル、作業ディレクトリなどを含む)に関する情報を含む構成ファイルが作成されます。--load-configオプションでgnome-terminalを起動すると、レイアウトが再作成されます。

複数の端末を扱う多くの開発者は、グリッドレイアウトやキーボードショートカットなどの機能を追加するため、Terminatorを使用したいと考えています。


このように-eフラグを指定して実行すると、コマンドが実行されるとすぐにウィンドウが閉じますか?もしそうなら、ウィンドウを開いたままにすることは可能ですか?
emf

8

使用している端末エミュレーターがコマンドを引数として受け入れることができる必要があります。例えば:

gnome-terminal -e "tail -f /var/log/syslog"

システム->設定->セッション(Ubuntu)またはシステム設定->自動起動(Kubuntu)で自動起動にそのようなコマンドを追加するだけです


4

スクリプトを使用して自動化することもできます。Advanced Bash Scripting GuideまたはBash Programming HOWTOと、使用している端末のマニュアルページを読むことをお勧めします。

以下に簡単な例を示します。

$ vi your-script
#!/bin/bash
gnome-terminal -e "tail -f /var/log/syslog"
gnome-terminal --working-directory=/foo/bar
gnome-terminal --whatever-else

次に、それを実行可能にします。

$ chmod +x your-script

あなたはexecそれらすべてに必要はありませんか?
maco 2010

はい、gnome-terminalが既に実行されていない限り、コマンドは他の実行中のプロセスの新しいウィンドウを開いて閉じます。
LassePoulsen、2010
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.