로그 아웃하지 않고 상위 쉘로 전환


29

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

avindra@host:~>

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

host:~ #

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

[ oracle@host:~]

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

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

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

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


GUI 데스크탑을 사용하는 경우 다른 터미널 창이나 탭을 열거 나 다른 가상 콘솔로 전환 할 수도 있습니다. 그렇지 않은 경우 답변 중 하나에 명시된대로 화면을 사용하십시오.
Joe

나는 화면을 들여다 볼 것이다, 나는 그것을 전에 사용하지 않았다. 탭의 경우 호스트에 하나의 탭을 사용하는 것이 좋습니다. 호스트 당 여러 개의 탭이 번거로운 워크 플로를 찾습니다. 클러스터 된 호스트 / 분산 시스템에서 많은 작업을 수행하므로 클러스터의 노드 당 하나의 탭만 있어도 혼동 될 수 있습니다. 내 마음에, 하나의 탭 = 하나의 개별 호스트.
Avindra Goolcharan

답변:


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.
Mikel

3
@Mikel는, zsh또는 csh, tcsh또는 bash, 또는 Bourne 쉘 또는 ksh(에 ksh, 정지는 별칭입니다'kill -s STOP $$' (약 누락 된 따옴표 버그에주의 $$)).
Stéphane Chazelas

2
bashCTRL-Z를 트랩 하지 않으면 CTRL-Z를 누르면 터미널 에뮬레이터 ^Z가 pty 장치의 마스터 측에 문자 (0x1a)를 보냅니다 . pty 드라이버 의 라인 규칙 은 SIGTSTP를 터미널의 포 그라운드 프로세스 그룹으로 전송합니다. 그때까지는 bash전혀 관여하지 않습니다. 즉, SIGTSTP는 프로세스 그룹 리더 일시 중단하고이 발생할 수 있습니다 다음wait()bash그것을 수행이 반환됩니다.
Stéphane Chazelas

5
19SIGTSTP의 수를 보장하지는 않습니다 . 사용 kill -s TSTP또는 kill -s STOP(TSTP 갇혀 또는 무시, STOP은 할 수 없습니다 수 있습니다.)
Stéphane Chazelas

2
@ nyuszika7h $$는 읽기 전용이지만 IFS그렇지 않습니다. 시도 IFS=0123456789; suspendksh예를 들면.
Stéphane Chazelas

3

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

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


0

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

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


이것은 답변이 아닌 의견으로 더 적합 할 수 있습니다.
Barmar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.