Şu anda hangi tty kullanıyorum kontrol nasıl?


22

Sistemimizde kullanılabilecek 7 adet terminal vardır. tty7GUI tabanlıdır.

Şu anda hangi tty kullandığımı nasıl bilebilirim?

gibi, tty1, tty2 .... tty6 gibi mi?


Neden yorumlarda "puan" olduğunu iddia ediyorsun? Bu, burada sorduklarınızdan tamamen farklı. Bir GUI'deki oturum tty DEĞİL.
Rinzwind

1
Bu kavram hakkında kafam karıştı, bu yüzden
luv.preet

Yanıtlar:


30

Bunu bulmanın birkaç yolu var. who am i(Değil who) komutuyla giderdim :

$ who am i
ravexina    tty2        2017-04-10 11:19 (:0)

Grafik bir terminaldeyken, şöyle bir şey döndürürdü:

ravexina    pts/0        2017-04-10 1:19 (:0)

Grafiksel bir terminal sonucu kullanarak ssh oturumu altında aynı, ancak (: 0) yerine, makine IP (192.168.xx) elde edeceğim. gibi diğer komutlar w, who, pgrep, ps, vb çok faydalıdır.

Örneğin ttygrafik arayüzümün çalıştığını bulmak için:

ps $(pgrep Xorg)

Benim durumumda, çünkü gdm veya slim gibi bir ekran yöneticisi kullanmıyorum:

 PID  TTY      STAT   TIME COMMAND
 1693 tty1     Sl     0:05 /usr/lib/xorg/Xorg

4
+1, mate-terminalinde who am ihiçbir şey döndürmez ve whoamigeri döner zanna, ( whotüm oturumları geri döndürürken (farklı emülatörlerin farklı çıktılar ürettiğini fark ettiğimiz ilgili bir soruyu (cevaplanamaz olduğunu hatırladım) hatırlıyorum who)).
Zanna

grafik her zaman tty7'yi kullanır, çünkü grafik desteği sağlayan tek kişi budur
luv.preet

1
@Zanna Bu duruma kendim rastladım, ama bahsetmeye değer olduğunu düşünüyorum.
Ravexina

1
Her neyse, who am iher zaman bir vt içinde güzel çalışacak ve pgrepçok zekice ( $()komut alt-backticks için sözdizimi kullanmak isteyebilirsiniz), biraz aşağı kafa karıştırıcı olabilir) bu yüzden cevabınız çok güzel ve kim aşağı indirmiş olmasaydı ...
Zanna

1
@ luv.preet, sorunuzun kapsamı dışında ama pts ve tty arasındaki fark :) konusuna bakın - bu yazının kopyası olduğu yazının müthiş bir cevabı var
Zanna


6

Bir adım geriye gidelim ve kafa karışıklığına başlayalım: tty nedir? Başlangıçta tty, herhangi bir terminale veya bir seri bağlantı noktasına sahip olan cam teletipi haline gelen bir teletip kısaltmasıydı (özellikle bunlar genellikle / dev / ttyS0, / dev / ttyUSB0 ve bazen / dev / ttyS0 civarındadır). Daha sonra sözde tty ve sanal tty var. eski unix elleri, uzak terminaller (ssh ve telnet), sanal terminaller (xterm ve benzeri) ve terminal çoklayıcılar (ekran ve tmux) için kullanılan sahte tiplere aşinadır. Sözde tty'ler zaman içinde çeşitli adlandırma düzenlerine sahipti, ancak şu anki / dev / pts / 0 gibi isimler kullanıyor. Öte yandan sanal tty'ler sanal konsollarla ilişkilidir, özellikle control alt işlev tuşlarını kullandığınızda, her biri sanal bir tty ile eşleştirilen sanal konsolları değiştirirsiniz.

Eğer sözde tty'nizi (veya metin modunu kullanırken sanal tty'yi) bulmanız gerekiyorsa, bunun gibi her türlü çözüm vardır who am iveya ps ax|grep $$bunu yapmak çok kolaydır çünkü sözde tty'nin standart io'da açılmasının bir çok yolu vardır. çoğu durumda ve io yönlendirildiğinde bile çalışan başka yöntemler vardır. Bu, aynı zamanda, grafiksel terminal emülatörleri veya terminal çoklayıcıları kullanmadığınız sürece seri portlar ve sanal tipler kullanırken doğru şeyi yapma avantajına da sahiptir.

Peki ya sanal konsolu tanımlamak istiyorsanız? sudo fgconsoleİnteraktif durumlar için faydalı olabilir. Ya da yaptığım şey sadece konsolları yürümek, anahtarlama işlemi genellikle yeterince hızlı olduğu için. Etkileşimsiz veya zeminsel olmayan durumlarda güvenilir bir şekilde çalışan programatik bir yöntem bilmiyorum.

Şimdiye kadar sanal konsola güvenilir bir şekilde cevap veremeyeceği garanti edilen bir örneğe bakalım. (Alfa) 'nın önünde oturduğum bilgisayar, tty2 (: 1)' de çalışan bir Xserver'a, iki xterms açık üç pencerem ve bir vncviewer'a (bravo'ya bağlı: 2) sahibim. Bir xterm ekran çalışıyor, diğeri ssh charley çalışıyor. Ekranda iki pencere açık, ssh delta ve kim (kim ikinci sütunda ki yalancı tty'yi doğru şekilde tanımlar ve (:1:S0)bize sözde tty'nin ikinci X sunucusuna bağlı ilk ekran oturumuna bağlı olduğunu söyleyen beşinci sütunda ipucu sağlar , ancak herhangi bir sanal konsol bilgisi vermiyor). Kim ssh oturumu üzerinde koşan ipucu verir(alpha)Bu, uzak oturumlar için nispeten iyi olan ssh oturumunun geldiği makineyi tanımlar. Sözde tty'ye neyin bağlı olduğu hakkında çok az bilgi olmasına rağmen (ve kesinlikle hiçbir sanal konsol veya hatta uzak tty bilgisi mevcut değildir) en azından uzaktaki ana bilgisayar tanımlanır. Ekran oturumları ayrılabilir olduğu için ekran hakkındaki bilgiler yanlış olabilir ve vnc, bir vnc oturumu ile yerel bir oturum arasındaki tek fark, ekran numarası olduğu için hiçbir işe yarar bilgi sağlamaz. Pek çok durumda, şunu varsayabilirsiniz: 0, tty7’de fakat her zaman değil ve bravo’da hiç bir grafik kartı olmadığı için hiçbir zaman madende değil ve: ve makinelerin hiçbiri grafiksel bir oturum olarak tty7'yi kullanmıyor, çünkü ben (yalnızca tersine değil) günlükleri tty7'ye (ve tty5'e) tty6 ve tty8 ayrıca) başka bir yerde grafiksel oturumları yeniden düzenlemek. Ancak bekleme ekranı, seri kablo üzerinden bir oturum açmanıza izin veren bir terminal programı olarak da işlev görebilir. Böyle bir oturum kim çalıştırıldığında ne rapor eder? Seri bağlantı noktası dışında neden nnc, xterm, ssh, ekran ve bir kerede bir usb seri adaptör aracılığıyla olsun veya televideoma bağlı.


6

Bir tty'de oturum açtığınızda, ilk satırda hangi tty'yi kullandığınızı otomatik olarak gösterir.


Ctrl+ Alt+ Klavye birleşimine basmak, F3yalnızca bir yorumda yazdığınız gibi siyah bir ekran gösteriyorsa, bir tty getirmek için Ctrl+ Alt+ düğmesine basmadan bilgisayarı yeniden başlatırken kök kabuğa erişmenin alternatif bir yolu vardır F3.

  1. BIOS / UEFI açılış ekranından hemen sonra, BIOS ile Shift, GNU GRUB menüsünü açacak tuşa hızlıca basın ve basılı tutun . (Ubuntu logosunu görürseniz, GRUB menüsüne girebileceğiniz noktayı kaçırdınız.) UEFI ile EscGRUB menüsüne gitmek için tuşa basın (belki birkaç kez) . Bazen üreticinin açılış ekranı Windows önyükleyicisinin bir parçasıdır, bu nedenle makineyi çalıştırdığınızda doğrudan GRUB ekranına gider ve ardından düğmesine basmanız Shiftgerekmez.

  2. İlk mor GNU GRUB ekranından unt ve ↓ tuşlarıyla Ubuntu için Gelişmiş seçenekleri seçin ve tuşuna basın Enter. Daha sonra, içinde çekirdek seçeneklerinin bir listesi olan başka bir mor GNU GRUB menü menüsü tarafından yönlendirileceksiniz.

  3. Üstten ikinci girişi ( açıklamada kurtarma modunu içeren) seçinceye kadar aşağı ok tuşuna basın ve ardından düğmesine basın Enter.

    Şimdi bu kurtarma menüsünü görmelisiniz:

    kurtarma menüsü

  4. Ok tuşlarını kullanarak kök dizinine gidin ve ardından düğmesine basın Enter.

    Şimdi bunun gibi bir root istemini görmelisiniz:

    root@ubuntu:~#
    
  5. Bu aşamada salt okunur bir dosya sistemine sahip olmalısınız. Yazma izinleriyle yeniden ayarlamanız gerekir:

    mount -o rw,remount /  
    

    Artık komutları bir terminaldeki gibi çalıştırabilirsiniz.


Bu her zaman tty1 açar mı?
luv.preet

Hayır, herhangi bir tty açmıyor. Bunun yerine, sabit diskinize kurduğunuz Ubuntu'nun kök dosya sistemini yazma izinlerine sahip etkileşimli bir kabuk olarak bağlar ve komutları çalıştırmanıza olanak tanır.
karel

3

Sanırım verilen diğer cevaplardan başka bir şeye bakıyorsun. sudo fgconsole Hangi gerçek tty'nin aktif olduğunu bulmak için koş .


@karel Geçerli TTY duyurusunu kaçırdığınız bir durumu hayal etmek kolaydır. Örneğin bash profiliniz ekranı temizler. Sadece giriş yaptıktan hemen sonra değil, istediğiniz zaman kullanılabilecek bir komut verdim. WRT Ctrl + Alt + F1 çalışmıyor - hızlı bir geçici çözüm var: chvt veya openvt kullanın.
marian adam

Ve BTW, sudo ile çalıştırın. Bu yüzden hatayı aldın.
marian adam

1

Tty komutunu kullanın, Linux ve macOS'ta çalışır ve okumak için oldukça basit bir çıktı verir, yalnızca içinde bulunduğunuz tty'nin adını.

Örnek:

$ tty
/dev/pts/0

Bunu kodlamak veya komut satırına eklemek kolaydır, örneğin:

$ PS1='`tty`: '
/dev/pts/0: _

Bu sayede hangi terminalde olduğunuzu her zaman bilirsiniz.


1

GUI hariç, bu durumda bir puan alırsınız, bu istenen çıktınızı gösterir:

ls -l `tty` | awk '{print $10}'
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.