Oturumu kapatmadan ana kabuğa geçiş yap


29

Yerel hesabımda başladığımı varsayalım:

avindra@host:~>

sonra köküne geçiyorum:

host:~ #

Sonra kehanete geçiyorum:

[ oracle@host:~]

Oracle kabuğundan çıkmadan kök kabuğuna (ebeveyn) geri dönmenin bir yolu var mı?

Oracle hesabı, çünkü bu durumda uygun olur olmaz sudo yetkilerine sahip. Mesela, kehanette / some / really / deeply / nested / directory içerisindeyim ve her türlü özel ortam değişkenlerini ayarlarım. Ancak bazı sistem dosyalarına dokunmak için köküne dönmem gerekiyor.

Şu anda, köke geri dönmek, kök komutlarımı çalıştırmak ve daha sonra Oracle'a geri dönmek için kehanet kabuğundan vazgeçtim. Sorun şu ki, yeni bir başlangıçtan giriş yaptım ve çalışma dizini ve ortamımı kaybediyorum.

Söyleniyor, istediğim şeyi yapmanın bir yolu var mı?


Bir gui masaüstü kullanıyorsanız, sadece başka bir terminal penceresi veya sekmesi açabilir, hatta başka bir sanal konsola geçebilirsiniz. Değilse, cevaplardan birinde belirtildiği gibi ekranı kullanın.
Joe,

Ekrana bakacağım, daha önce kullanmadım. Sekmeler için, ana bilgisayar için bir sekme kullanmayı tercih ederim. Bilgisayar başına hantal olmak için birden çok sekme gerektiren bir iş akışı buluyorum. Kümelenmiş ana bilgisayar / dağıtık sistemlerde çok fazla iş yapıyorum, böylece kümedeki her düğüm için bir sekme olması bile kafa karıştırıcı olabiliyor. Aklımda, bir sekme = bir ayrık ana bilgisayar.
Avindra Goolcharan

Yanıtlar:


41

Bir simüle edebilirsiniz CTRL-Zkullanarak (normalde geçici arka süreç için hangi) killkomutu:

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

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

bashsadece CTRL-Ztuş kombinasyonunu hapseder. Etkili bir şekilde aynı olan sürece kill -19gönderir SIGSTP.


1
İçinde zshsadece koşabilirsin suspend.
Mikel

3
@Mikel, zshya csh, tcshya bash, ya Bourne kabuğu veya ksh... (içinde ksh, askıya için bir takma ad'kill -s STOP $$' (yaklaşık eksik tırnak hata dikkat $$)).
Stéphane Chazelas

2
bashdoes not CTRL-Z bastığınızda tuzak CTRL-Z, terminal emülatörü bir gönderir ^ZPty cihazın ana tarafına karakter (0x1A). Hat disiplin Pty sürücüsünün daha sonra terminal ön işlem grubuna SIGTSTP gönderir. O zamana kadar bashhiç dahil değildir. Bu SIGTSTP, süreç grubu liderinin askıya alınmasına neden olabilir ve o zaman wait()bunun bashüzerine döner.
Stéphane Chazelas

5
19SIGTSTP'nin sayısı olacağının garantisi yoktur . kill -s TSTPVeya kullanın kill -s STOP(TSTP kapana kısılmış veya göz ardı edilebilir, STOP yapamaz).
Stéphane Chazelas

2
@ nyuszika7h, $$salt okunur olabilir, ancak IFSdeğildir. Deneyin IFS=0123456789; suspendiçinde kshmesela.
Stéphane Chazelas

3

Csh, bash, ksh, zsh, tam olarak bunu yapan suspendyerleşik bir komutu (veya ksh cinsinden diğer adı) kullanır. Bu komut çoğunlukla kabuğa bir TSTP sinyali göndermeye eşdeğerdir; bash ve zsh bir miktar ek sinyal işleyicisi ve hokkabazlık yapar ve bu kabuklarda suspendkabuk şu anda TSTP'yi görmezden gelse bile komut çalışır.

Ayrıca, sinyali kabuğa manuel olarak da gönderebilirsiniz kill -STOP $$.


0

Ayrıca [screen][1], birden fazla terminal penceresi açmanıza izin veren bir program (gerekirse kur) da kullanmanızı öneririm . TTYS için tasarlandı, bu yüzden ihtiyaç duymadan çalışabiliyor X. Terminaller arasında geçiş yapmak ve bağlantıyı kesmek ve oturumu kapatmak için klavyelerin kısayollarını kullanabilir, terminallerinizi çalışmaya devam edebilir, daha sonra tekrar giriş yapıp tekrar bağlanabilirsiniz.

Çoğu Linux dağıtımının bu program için paketleri olduğuna inanıyorum ve bunun için Solaris'te paketler kullandım. Tabii ki en kötü durum, kaynaktan yükleyebilmenizdir.


Bu bir anaswer yerine yorum olarak daha uygun olabilir.
Barmar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.