로그 아웃하지 않고 상위 쉘로 전환 해 보겠습니다. avindra@host:~> 그런 다음

로컬 계정에서 시작한다고 가정 해 보겠습니다.

avindra@host:~>

그런 다음 루트로 전환하십시오.

host:~ #

그런 다음 oracle로 전환하십시오.

[ oracle@host:~]

oracle shell에서 로그 아웃하지 않고 루트 shell (부모)로 되돌아 갈 수있는 방법이 있습니까?

오라클 계정 에는 sudo 권한 없기 때문에이 경우 편리합니다 . 예를 들어, 오라클의 / some / really / deeply / nested / directory에 있으며 모든 종류의 특수 환경 변수가 설정되어 있습니다. 그러나 일부 시스템 파일을 만지기 위해 루트로 돌아와야합니다.

현재 오라클 셸에서 제거하여 루트로 돌아가 루트 명령을 실행 한 다음 Oracle로 다시 전환합니다. 불편한 점은 처음부터 로그인하여 작업 디렉토리와 환경을 잃어 버린다는 것입니다.

내가 말하고있는 것을 할 수있는 방법이 있습니까?



답변

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.


답변

Csh, bash, ksh, zsh suspend에는 정확히 수행 하는 기본 제공 명령 (또는 ksh의 별명)이 있습니다. 이 명령은 대부분 TSTP 신호를 쉘로 보내는 것과 같습니다. bash와 zsh는 약간의 추가 신호 처리기 및 저글링을 수행하며,이 쉘 suspend에서 쉘이 현재 TSTP를 무시하더라도 명령이 작동합니다.

를 사용하여 수동으로 신호를 쉘에 보낼 수도 있습니다 kill -STOP $$.


답변

또한 [screen][1]여러 터미널 창을 열어 보도록 하는 프로그램을 사용 (필요한 경우 설치) 할 수 있다고 제안합니다 . TTYS 용으로 설계되었으므로 필요하지 않고 제대로 작동합니다 X. 키보드 단축키를 사용하여 터미널 간을 전환하고 연결을 끊고 로그 아웃하여 터미널을 계속 실행 한 다음 다시 로그인하여 다시 연결할 수 있습니다.

대부분의 Linux 배포판에는이 프로그램에 대한 패키지가 있다고 생각하며 Solaris에서 패키지를 사용했습니다. 물론 최악의 경우는 소스에서 설치할 수 있다는 것입니다.