Ada 7 terminal yang dapat digunakan dalam sistem kami. tty7
berbasis GUI.
Bagaimana saya bisa tahu tty mana yang saya gunakan saat ini?
seperti, tty1, tty2 .... tty6?
Ada 7 terminal yang dapat digunakan dalam sistem kami. tty7
berbasis GUI.
Bagaimana saya bisa tahu tty mana yang saya gunakan saat ini?
seperti, tty1, tty2 .... tty6?
Jawaban:
Ada beberapa cara untuk mengetahuinya. Saya akan pergi dengan perintah who am i
(bukan who
):
$ who am i
ravexina tty2 2017-04-10 11:19 (:0)
Ketika saya berada di terminal grafis, itu akan mengembalikan sesuatu seperti:
ravexina pts/0 2017-04-10 1:19 (:0)
Di bawah sesi ssh menggunakan hasil terminal grafis adalah sama, tetapi bukannya (: 0), saya akan mendapatkan IP mesin saya (192.168.xx). perintah lain seperti w
, who
, pgrep
, ps
, dll membantu juga.
Misalnya untuk mencari tahu di mana tty
antarmuka grafis saya berjalan:
ps $(pgrep Xorg)
Yang mana dalam kasus saya, karena saya tidak menggunakan manajer tampilan seperti gdm atau slim yang akan dihasilkannya:
PID TTY STAT TIME COMMAND
1693 tty1 Sl 0:05 /usr/lib/xorg/Xorg
who am i
tidak menghasilkan apa-apa, dan whoami
mengembalikan zanna
, (sambil who
mengembalikan semua sesi (saya ingat pertanyaan terkait (yang terbukti tidak dapat dijawab) di mana kami perhatikan bahwa emulator yang berbeda menghasilkan keluaran yang berbeda dari who
)).
who am i
akan selalu berfungsi dengan baik dalam vt, dan pgrep
sangat cerdas (Anda mungkin ingin menggunakannya$()
sintaks untuk perintah sub - backticks bisa sedikit membingungkan dalam penurunan harga) sehingga jawaban Anda sangat bagus dan siapa pun yang downvoted seharusnya tidak melakukannya ...
Gunakan tty
perintah.
Jika saya benar ini adalah rujukan:
/dev/tty1 - tty1
/dev/tty2 - tty2
/dev/tty3 - tty3
/dev/tty4 - tty4
/dev/tty5 - tty5
/dev/tty6 - tty6
pts
berarti Anda menggunakan terminal dari GUI atau melalui SSH
Mari kita mundur selangkah dan mulai dengan kebingungan: apa itu tty? Awalnya tty adalah singkatan dari teletype yang menjadi teletype kaca yang menjadi terminal atau koneksi ke satu, khususnya port serial (Ini masih ada, paling umum / dev / ttyS0, / dev / ttyUSB0 dan kadang-kadang / dev / ttyacm0). Kemudian Anda mendapatkan tysys semu dan tysys virtual. tangan unix lama sudah familiar dengan pseudo ttys ini digunakan untuk terminal jarak jauh (ssh dan telnet), terminal virtual (xterm dan sejenisnya), dan terminal multiplexer (layar dan tmux). Pseudo ttys telah memiliki berbagai skema penamaan dari waktu ke waktu tetapi yang saat ini menggunakan nama seperti / dev / pts / 0. Virtual ttys di sisi lain terkait dengan konsol virtual, khususnya ketika Anda menggunakan tombol fungsi alt kontrol, Anda mengganti konsol virtual yang masing-masing dipasangkan dengan virtual tty.
Jadi jika Anda perlu menemukan pseudo tty Anda (atau virtual tty saat menggunakan mode teks) ada berbagai macam solusi seperti who am i
ataups ax|grep $$
ini relatif mudah dilakukan karena ada beberapa cara untuk mengetahuinya karena pseudo tty dibuka pada standar io dalam banyak kasus dan ada metode lain yang bekerja bahkan ketika io dialihkan. ini juga memiliki keuntungan juga melakukan hal yang benar ketika menggunakan port serial dan ttys virtual selama Anda tidak menggunakan emulator terminal grafis atau terminal multiplexer.
Tetapi bagaimana jika Anda ingin mengidentifikasi konsol virtual? sudo fgconsole
semoga bermanfaat untuk kasus interaktif. Atau yang saya lakukan hanyalah menjalankan konsol karena pergantian biasanya cukup cepat. Saya tidak mengetahui metode terprogram yang bekerja andal dalam kasus-kasus noninteraktif atau non-latar depan.
Mari kita lihat contoh yang dijamin tidak dapat menjawab konsol virtual dengan andal. Komputer saya duduk di depan (alpha) memiliki Xserver berjalan pada tty2 (: 1), saya memiliki tiga jendela membuka dua xterms dan vncviewer (terhubung ke bravo: 2). Satu xterm menjalankan layar, lainnya menjalankan ssh charley. Layar memiliki dua jendela terbuka, ssh delta dan siapa (yang dengan benar mengidentifikasi pseudo tty di kolom dua dan memberikan petunjuk (:1:S0)
di kolom lima yang memberitahu kita bahwa pseudo tty terhubung ke sesi layar pertama yang terhubung ke server X kedua, tetapi tidak memberikan informasi konsol virtual). Menjalankan siapa yang melakukan sesi ssh memberi petunjuk(alpha)
yang mengidentifikasi mesin dari mana sesi ssh berasal yang relatif baik untuk sesi jarak jauh. Meskipun ada sedikit informasi tentang apa yang terhubung ke pseudo tty (dan sama sekali tidak ada konsol virtual atau bahkan informasi tty jarak jauh), setidaknya host jarak jauh diidentifikasi. informasi tentang layar bisa salah karena sesi layar dapat dilepas, dan vnc tidak memberikan informasi yang berguna sama sekali karena satu-satunya perbedaan antara sesi vnc dan sesi lokal adalah nomor tampilan. Dalam banyak kasus, Anda dapat berasumsi bahwa: 0 ada di tty7 tetapi tidak selalu, dan tidak pernah ada pada saya karena bravo tidak memiliki kartu grafis sama sekali dan: 0 adalah sesi vnc (yang membingungkan siapa karena menganggapnya sebagai konsol lokal) dan tidak ada mesin yang menggunakan tty7 sebagai sesi grafis, karena saya (bukan hanya sebaliknya) membuang log ke tty7 (dan tty5, tty6, dan tty8 juga) mengubah sesi grafis di tempat lain. Tetapi layar tunggu juga dapat bertindak sebagai program terminal yang memungkinkan Anda untuk membuat sesi melalui kabel serial. Apa yang dilaporkan sesi seperti itu ketika siapa yang dijalankan? Kenapa tidak ada tetapi port serial apakah itu melalui vnc, xterm, ssh, layar dan adaptor serial usb sekaligus atau terhubung ke televideo saya.
Ketika Anda telah login ke tty itu menunjukkan tty mana yang Anda gunakan pada baris pertama secara otomatis.
Jika menekan kombinasi keyboard Ctrl+ Alt+ F3hanya menunjukkan layar hitam, seperti yang Anda tulis dalam komentar, ada cara alternatif untuk mendapatkan akses ke shell root saat mem-boot komputer tanpa menekan Ctrl+ Alt+ F3untuk menampilkan tty.
Segera setelah layar splash BIOS / UEFI selama boot, dengan BIOS, tekan dan tahan Shifttombol dengan cepat, yang akan memunculkan menu GNU GRUB. (Jika Anda melihat logo Ubuntu, Anda melewatkan titik di mana Anda dapat masuk ke menu GRUB.) Dengan UEFI tekan (mungkin beberapa kali) Esckunci untuk menuju ke menu GRUB. Kadang-kadang layar splash pabrikan adalah bagian dari bootloader Windows, jadi ketika Anda menghidupkan mesin, langsung ke layar GRUB, dan kemudian menekan Shifttidak perlu.
Dari layar GNU GRUB ungu pertama pilih Opsi lanjutan untuk Ubuntu dengan tombol ↑ dan ↓ dan tekan Enter. Anda kemudian akan diminta oleh menu menu GNU GRUB ungu lain yang memiliki daftar opsi kernel di dalamnya.
Tekan tombol panah bawah hingga Anda memilih entri kedua dari atas (entri dengan mode pemulihan dalam uraian) lalu tekanEnter .
Sekarang Anda akan melihat menu pemulihan ini:
Menggunakan tombol panah, gulir ke bawah untuk membasmi lalu tekanEnter .
Anda sekarang akan melihat prompt root, sesuatu seperti ini:
root@ubuntu:~#
Pada tahap ini Anda harus memiliki sistem file read-only. Anda harus mengirim ulang dengan izin menulis:
mount -o rw,remount /
Sekarang Anda dapat menjalankan perintah yang sama seperti di terminal.
Saya kira Anda sedang mencari sesuatu yang lain daripada jawaban lain yang diberikan. Jalankan sudo fgconsole
untuk mengetahui tty mana yang sekarang aktif.
Gunakan perintah tty, ini bekerja di Linux dan macOS dan memberikan output yang cukup sederhana untuk dibaca, hanya nama tempat Anda berada.
Contoh:
$ tty
/dev/pts/0
Mudah untuk membuat skrip ini atau memasukkannya dalam prompt, contoh:
$ PS1='`tty`: '
/dev/pts/0: _
Dengan cara ini Anda akan selalu tahu di terminal mana Anda berada.