ローカルアカウントから始めるとしましょう。
avindra@host:~>
次にルートに切り替えます。
host:~ #
その後、oracleに切り替えます。
[ oracle@host:~]
oracleシェルを終了せずにルートシェル(親シェル)に戻る方法はありますか?
oracleアカウントがあるので便利です。確かにsudo権限があります。 oracleの一般的なシナリオは、/some/rely/deeply/nested/ディレクトリにあり、さまざまな特殊環境変数が特定の方法で設定されることです。
問題は次のとおりです。一部のシステムファイルにアクセスするには、root権限に戻る必要があります。はい、Oracleからログアウトしてルートに戻ることはできますが、現在の作業ディレクトリと環境は失われます。
既知のルールを使用して親シェルに「変換」する方法はありますか?
答え1
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]$
bash
CTRL-Z
キーの組み合わせをキャプチャするだけです。プロセスにkill -19
転送されるSIGSTP
のは実際には同じです。
答え2
Csh、bash、ksh、zshには、すべてsuspend
これを実行する組み込みコマンド(またはkshのエイリアス)があります。このコマンドは、デフォルトでTSTP信号をシェルに送信するのと同じです。 bashとzshはいくつかの追加のシグナルハンドラとサイドショーを実行します。これらのシェルでは、シェルがsuspend
現在のTSTPを無視してもコマンドは機能します。
シェルに手動で信号を送信する方法を使用することもできますkill -STOP $$
。
答え3
[screen][1]
また、複数の端末ウィンドウを開くことができるというプログラムを使用する(必要に応じてインストール)ことをお勧めします。 TTYS用に設計されているため、X
キーボードショートカットを使用して端末間の切り替え、切断、ログアウト、端末の実行状態を維持し、再度ログインして再接続できます。
私はほとんどのLinuxディストリビューションにこのプログラムのパッケージがあると思い、それをSolarisで使用してきました。もちろん、最悪のシナリオはソースからインストールできるということです。