最近、12.04をインストールしました。geditで
ファイルを編集しようとすると、編集ファイルを閉じるか、新しいターミナルを開くまで、ターミナルを使用できません。しかし、11.04ではこの問題はなかったと思いますが、よくわかりません。
とにかくこれを回避し、ファイルの編集中に同じターミナルを使用する方法はありますか。
最近、12.04をインストールしました。geditで
ファイルを編集しようとすると、編集ファイルを閉じるか、新しいターミナルを開くまで、ターミナルを使用できません。しかし、11.04ではこの問題はなかったと思いますが、よくわかりません。
とにかくこれを回避し、ファイルの編集中に同じターミナルを使用する方法はありますか。
回答:
応答しない端末で:
bgして入力します。disownして入力します。応答しない端末でCtrl+をZ押すと、プロセス(または「ジョブ」)が「一時停止」され、コンソールコントロールが返されます。ただし、それはgedit応答しなくなり、使用できなくなります。
Extra:必要に応じて、コマンドを実行でき
jobsます。コマンドに対してStoppedと表示されることがわかります。そのため、gedit使用できません。
バックグラウンドでジョブを正常に実行するには(つまり、gedit再度応答するようにするには)、コマンドを実行しますbg(バックグラウンドを意味します)。これgeditで、を使用できるようになり、同時にプロンプトが表示されます。
エクストラ:あなたが実行した場合、今、
jobsあなたはそれを読んであげることがわかります実行します。
このすべてを最初から克服できます。geditターミナルから起動するとき&、コマンドの最後にを追加しgedit /path/to/file &ます。このようになります。これはgedit最初からバックグラウンドで起動します(Enterコンソールの制御を取り戻すために数回押す必要があるかもしれません)。
Extra:これらの追加のメモに従っている場合、2回目に行ったときに
jobs、bash&がgeditコマンドの末尾にa を追加したことがわかります。
このシステムに慣れると、ターミナルを閉じると、確認ダイアログなしでもgeditが終了することに気付くかもしれません。これを防ぐには、を実行しますdisown。これにより、geditプロセスが端末から切り離され、によって返されるリストから削除されjobsます。
を使用しnohupて、GUIが端末に接続されないようにすることができます。
nohup mupdf some.pdf &
これにより、プログラムを閉じることなく、起動元のターミナルを閉じることができます。
また、nohupコマンドを使用してファイルを作成することに、気づくべきですstdoutし、stderrあなたが実行したコマンドの。それを防ぐには、の&>/dev/null前に追加し&ます。
nohup mupdf some.pdf &>/dev/null &
nohup.out、コマンドからの出力を含むファイルを作成します。これは、エラーメッセージを表示する場合に便利です。あなたはファイルを作成したくない場合は、次のように、リダイレクトを追加しますnohup mupdf some.pdf &>/dev/null &
disownコマンドを使用することもできます。ターミナルに接続する必要がなくなったプロセスをすでに開始している場合に特に役立ちます。
私が正しく覚えている場合の基本的な手順は、次のようなものです。
$ > firefox #Oops
Ctrl + z #Suspend the process
$ > bg #Push the process to the background
$ > disown #Detach most recent process started or stopped
$ > exit #Terminal gone!
否認はbash特定のものであることに注意してください。
firefox & disown
からman gedit:
-b, --background Run gedit in the background.
したがって、オプションを指定して実行するgeditと-b、バックグラウンドで起動します。
gedit -b [FILE-NAME]
また、次のあなたはのエイリアスを作成することができますgedit -b(参照ここでは永久的なエイリアスを作成する方法):
alias gedit='gedit -b'
これからは、将来的にはgedit [FILE-NAME]通常どおり使用でき、バックグラウンドで起動します。
入力するだけです:
gedit FILENAME & disown
&in bashでコマンドを終了すると、そのコマンドがバックグラウンドで実行されます。ただし、そのプロセスはまだ端末に接続されています。
なし私は間違っていたことが判明しました、これはbashの場合ではありませんが、zshの場合です。あなたはまだ実行する必要がdisownで、ターミナルを閉じると、編集されたファイルを保存するように促すことなく、geditが閉じます。disown現在のターミナルからバックグラウンドプロセスを切り離します。そのため、ターミナルを閉じてもgeditは通常どおり実行されます。detach行った後にctrl- zとbgさえbashで、しかし、。
ビルトインjobs、disownおよびコマンド&のマンページbash
のメタキャラクター、特に「ジョブ制御」とラベル付けされたセクションの詳細を確認できます。
disown私は、端末クローズ後に開いてgeditを維持することができました。「これはbashには
これはおそらく、ターミナルからgeditを開いたためです。これを行うと、GUIから起動した場合は通常非表示になっているコマンドライン出力が表示されます。これを修正する最善の方法は、新しいターミナルウィンドウを開くことです。もう1つは、geditが終了すると使用可能になります。上記のユーザーが提案したスイッチを使用することもできます。