Saya perlu menghubungkan ke keluaran terminal yang sedang berjalan (tty1) dari terminal virtual dan menangkapnya (menjalankan X server).
terminal
tty
terminal-emulator
pruzinat
sumber
sumber
screen
atautmux
sebelum memulai perintah yang mungkin ingin Anda akses dari terminal lain .Jawaban:
Saya menemukan alat yang disebut ini
ttylog
. Ini adalah program Perl yang tersedia di CPAN di sini . Ini memiliki beberapa peringatan, satu yang saya hanya bisa mencari cara untuk melampirkan ke terminal yang dibuat sebagai bagian dari seseorang yang masuk ke dalam kotak saya. Yang lainnya adalah Anda harus menjalankannya dengan hak istimewa yang tinggi (yaitu root atau sudo).Tapi berhasil!
Sebagai contoh
Pertama ssh ke dalam kotak Anda dalam TERM # 1:
Perhatikan tty terminal baru ini:
Sekarang di terminal lain (TERM # 2) jalankan perintah ini:
Sekarang kembali ke TERM # 1 dan ketik barang-barang, itu akan muncul di TERM # 2.
Semua perintah yang saya coba, (atas, ls, dll) bekerja tanpa menggunakan insiden
ttylog
.sumber
gdb
itu adalah opsi pertama yang saya temui, saya pernah menggunakannya sendiri di masa lalu, tapi setidaknya itu bagi saya, itu adalah peretasan. Senang ini membantu Anda!Memang itu. Perangkat / dev / vcs * dan / dev / vcsa * sesuai dengan perangkat / dev / tty * (terminal virtual). F1 = tty1 = vcs1 / vcsa1 dan seterusnya. Vcs / vcsa seperti tty untuk terminal virtual "saat ini".
Sebagai root, Anda bisa menggunakan perangkat ini (mis. Cat / dev / vcs2), dan lihat apa yang ada di VT yang sesuai (mis. / Dev / tty2 yang menyala di F2) seperti mengambil snapshot. vcsa * berbeda dari vcs * dalam hal mereka menyertakan informasi tentang dimensi terminal (layar). Pikiran Anda, itu hanya snapshot mentah dari karakter yang ditampilkan di layar - dikumpulkan dari memori yang dialokasikan ke terminal - jadi jangan berharap output yang bagus dan mudah diurai.
Kekurangannya adalah bahwa jika informasi melewati terlalu cepat, mungkin sulit untuk ditangkap. Mungkin tail -f / dev / vcs1 akan berfungsi, jika Anda perlu mengikuti beberapa screenfull (belum mencoba sendiri)? Mungkin paling mudah untuk mengarahkan ulang ke file terlebih dahulu. Mungkin juga merupakan ide yang baik untuk menggunakan VT (F1-F6) untuk melihatnya, karena terminal akan memiliki dimensi yang sama. Dalam pengalaman saya, yang terbaik adalah menggunakan perangkat vcs * - bukan vcsa * -.
Jika itu tidak berhasil, mungkin salah satu dari paket "saudara besar" yang memungkinkan admin untuk mengawasi aktivitas di terminal dapat bekerja.
PS: Saya lupa bertanya OS apa yang kamu pakai. Ini untuk Linux, meskipun perangkat serupa mungkin ada pada OS lain juga. Coba cari "memori konsol virtual" di antara halaman manual untuk perangkat.
sumber
wlan0
, saya benar-benar memiliki situasi menangkap-22 mencoba men-debug di mana skrip ini gagal. Misalkan saya tidak bisa menggunakan hub usb ... adakah cara bagi saya untuk mengirimkan chars ke / dev / tty1?/dev/tty1
sebagai root tetapi semua ini dilakukan adalah menampilkan karakter ke layar, bukan memasukkannyamelihat:
sebagai contoh:
sumber
screen
gagal total. Berhasil.Gunakan
tty
perintah di setiap terminal untuk mengidentifikasi mereka:Dengan asumsi TTY ini, untuk mengarahkan stdout pertama ke yang kedua, jalankan ini di terminal pertama:
Untuk mengembalikan stdout perilaku default dari Poin / 0:
Lihat video ini untuk demonstrasi.
sumber
Ini bekerja untuk saya:
Menggunakan keyboard di komputer "A" (yaitu komputer fisik yang harus dikontrol), jalankan:
screen -q
Terhubung dengan
ssh
dari komputer "B" ke komputer "A".Di sesi ssh, ketik:
screen -ls
untuk mendapatkan id sesi untuk terhubung (4 digit pada baris yang berisi tty ).Sambungkan ke sesi di atas dengan:
screen -x <session id>
... menggunakan nomor id sesi yang diterima dariscreen -ls
perintah di atas.Apa pun yang diketik dalam "sesi" akan terjadi di kedua "sesi", jadi misalnya mengetik
screen -d
akan keluar dari KEDUA sesi.sumber
Pendekatan lain adalah dengan menggunakan
screen
utilitas gnu pada mesin lokal Anda. Aktifkan dengan-L
opsi, atau mulai tanpa opsi itu dan gunakan^aH
urutan perintah. Salah satu pendekatan menyebabkan semua input & output akan dicatat ke file bernamascreenlog.x
x adalah nomor layarIni berguna karena tidak ada tambahan yang perlu dipasang pada mesin jarak jauh.
sumber
Karena saya tidak memulai tty1 dengan layar, skrip ini membantu:
Saya menggunakan jawaban dari Baard Kopperud di atas. "128" adalah 1 baris dari tty1 saya. Tidur dapat diatur ke nomor yang sesuai.
Saya menggunakan ini di terminator dan ukuran kolom sehingga gulir adalah satu baris teks.
sumber
Buka dua terminal. Ketik
tty
masing-masing dan Anda akan mendapatkan id sebagai/dev/pts/nº
Kemudian pada bagian pertama Anda mengetik
script -f /dev/pts/nºofSecondTerminal
dan pada bagian kedua Anda melakukan sebaliknyascript -f /dev/pts/nºofFirstTerminal
sehingga mereka ditautkanSelamat! Kedua terminal mengeluarkan dan menerima barang yang sama. Butuh yang ketiga? Nah, sudahkah Anda mempelajari kombinasi? Anda akan membutuhkan 6
script -f
perintah. Bahkan Lebih Banyak? Seterusnya ...sumber