ログアウトせずに親シェルに切り替える


29

ローカルアカウントで開始するとします。

avindra@host:~>

次にルートに切り替えます:

host:~ #

次に、oracleに切り替えます。

[ oracle@host:~]

Oracleシェルからログアウトせずに、ルートシェル(親)に戻る方法はありますか?

この場合、oracleアカウントに sudo権限がないため便利です。したがって、たとえば、私はoracleの/ some / really / deeply / nested / directoryにあり、あらゆる種類の特別な環境変数を設定しています。しかし、いくつかのシステムファイルに触れるには、ルートに戻る必要があります。

現在、私はOracleシェルからドロップしてルートに戻り、ルートコマンドを実行してからOracleに切り替えます。不便なことに、最初からログインしているため、作業ディレクトリと環境が失われます。

そうは言っても、私が求めていることを行う方法はありますか?


GUIデスクトップを使用している場合は、別のターミナルウィンドウまたはタブを開くか、別の仮想コンソールに切り替えることもできます。そうでない場合は、回答の1つに記載されている画面を使用します。
ジョー14

私はスクリーンを調べます、私はそれを前に使いませんでした。タブに関しては、ホストに1つのタブを使用することを好みます。ホストごとに複数のタブを必要とするワークフローは面倒です。私はクラスター化されたホスト/分散システムで多くの作業を行っているため、クラスター内のノードごとに1つのタブがあるだけでも混乱を招く可能性があります。私の考えでは、1つのタブ= 1つの個別のホストです。
アビンドラグールチャラン14

回答:


41

次のコマンドCTRL-Zを使用して、(通常、プロセスを一時的にバックグラウンドにするために使用する)をシミュレートできますkill

[tsa20@xxx01:/home/tsa20/software]$ kill -19 $$

[1]+  Stopped                 sudo -iu tsa20
[root@xxx01 ~]# fg
sudo -iu tsa20
[tsa20@xxx01:/home/tsa20/software]$

bashCTRL-Zキーの組み合わせをトラップするだけです。実質的に同じものであるプロセスにkill -19送信SIGSTPします。


1
zsh実行できますsuspend
ミケル14

3
@Mikel、zshまたはcshtcshまたはbash、またはBourneシェルまたはksh...(でkshサスペンドはの別名である'kill -s STOP $$'($$)の周りに欠落している引用符でバグに注意してください)。
ステファンシャゼル14

2
bashCTRL-Zをトラップしませ。CTRL-Zを押すと、端末エミュレーター^Zはptyデバイスのマスター側に文字(0x1a)を送信します。ptyドライバの回線制御は、SIGTSTPを端末のフォアグラウンドプロセスグループに送信します。それまでbashは一切関わりません。そのSIGTSTPにより、プロセスグループリーダーが一時停止し、その後wait()それbashが実行されます。
ステファンシャゼル14

5
19SIGTSTPの数になる保証はないことに注意してください。使用kill -s TSTPまたはkill -s STOP(TSTPが閉じ込められたり無視され、STOPはできませんすることができます)。
ステファンシャゼル14

2
@ nyuszika7h、$$読み取り専用の場合がありますが、そうでIFSはありません。試しIFS=0123456789; suspendksh、たとえば。
ステファンシャゼル14

3

Csh、bash、ksh、zshには、suspendまさにそれを行う組み込みコマンド(またはkshのエイリアス)があります。このコマンドは、シェルにTSTPシグナルを送信することとほぼ同等です。bashとzshは、シグナルハンドラーとジャグリングを少し追加suspendします。これらのシェルでは、シェルが現在TSTPを無視している場合でも、コマンドは機能します。

を使用して、シェルに手動で信号を送信することもできますkill -STOP $$


0

また、[screen][1]複数のターミナルウィンドウを開くことができるプログラムを使用する(必要に応じてインストールする)こともお勧めします。TTYS用に設計されているため、必要なく正常に動作しXます。キーボードショートカットを使用して、端末を切り替え、切断してログアウトし、端末を実行したままにして、再度ログインして再接続できます。

ほとんどのLinuxディストリビューションにはこのプログラム用のパッケージがあり、Solaris用のパッケージを使用していると思います。最悪の場合、ソースからインストールできます。


これは、分析者としてではなく、コメントとしてより適切かもしれません。
バーマー14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.