web-dev-qa-db-ja.com

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

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

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

スクリプトまたはそれを自動化する何かを作成する方法はありますか?もしそうなら、どのように?

(答えとして完全なスクリプトが得られないのはクールです。読み始める場所へのポインタも機能します。)

10
Adam Lear

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

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

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

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を渡すことができます)、作業ディレクトリ(ホームを基準)とそれぞれのタイトルを設定し、1つでtailコマンドを開始し、3番目のウィンドウをアクティブにします。

もちろん、特に多くの引数がある場合、各ウィンドウを起動するために別々の行を使用することを好むかもしれません。

別の便利なことは、ウィンドウを好みに合わせて配置したら、使用することです

gnome-terminal --save-config=FILE

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

複数の端末で作業する多くの開発者は、グリッドレイアウトやキーボードショートカットなどの機能を追加するため、 Terminator を使用することを好みます。

9
jbowtie

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

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

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

8
maco

スクリプトを使用して自動化することもできます。 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
4
anonymous