3

ターミナルを開いてコマンドを入力するのに多くの時間を費やしています。

$ gnome-terminal
(change mouse focus to new terminal)
$ reset && clear && tail -F ~/file_that_grows

時々、私はそのウィンドウに行き、control-Cでプロセスを強制終了してから、再起動することに気付くでしょう。実際、私は通常、リセット&&....ビットをrctfなどのより入力可能なものにエイリアスします。

プロセスの最初のビットを自動化するにはどうすればよいですか?私がこれまでにできる最善のことは

gnome-terminal --title rctf -e 'tail -F ~/.bashrc'

しかし、これにはさまざまな問題があります。まず、〜が展開されないため、ファイルが見つかりません。次に、コマンドが終了すると、端末は終了します。

ターミナルを開いてから何かを入力した場合とまったく同じように、ターミナルを自動的に起動する方法はありますか?(上矢印で再起動できるように、履歴でコマンドを取得できる場合は、追加のポイントがあります)。

4

3 に答える 3

3

インタラクティブプログラムの場合、私は以下を使用します。

    xterm -e 'sh -c "vi $HOME/foo.txt; sh"'

これsh -cは、コマンド文字列内の変数が置換されることを意味し、最後にあるということは、ターミナルウィンドウを閉じる代わりに、sh終了後にシェルが開始されることを意味します。vi

このような非対話型プログラムの場合tail、CTRL-Cを押してSIGINTをプロセスに送信することによってのみ停止できます。シェルtrapビルトインを使用して、ユーザーがCTRL-Cを押す代わりに、シェルが実行されるようにします。ターミナルウィンドウ:

    xterm -e sh -c 'trap sh SIGINT; tail -f $HOME/foo.txt'
于 2011-10-04T10:44:52.260 に答える
3

コマンドをファイルに保存してもかまわない場合は、 の--rcfileオプションを悪用できますbash。たとえば、次のスクリプトを使用してコマンドを保存します。

[me@home]$ cat $HOME/.term-rcfile  
. ~/.bashrc         # chain in the standard rc file
tail -F ~/.bashrc   # command to run

その後、次のことができます。

xterm -e "bash --rcfile $HOME/.term-rcfile -i"

gnome-terminal でも動作するはずです:

gnome-terminal -e "bash --rcfile $HOME/.term-rcfile -i"

「(上向き矢印で再起動できるように履歴でコマンドを取得できれば、追加ポイント)。」

それを自動的に行う方法はわかりませんが、実行した場合:

history -r ~/.term-rcfile

新しいターミナルに移動すると (または必要なときに)、ファイルのエントリが履歴に追加され (実行せずに)、通常の履歴エントリと同じようにアクセスできるようになります。

于 2011-10-04T11:20:56.700 に答える
1

チルダの代わりに$HOME変数を使用します。

gnome-terminal --title rctf -e "tail -F $HOME/.bashrc"
于 2011-10-04T10:44:11.013 に答える