GNU/Linux >> Belajar Linux >  >> FreeBSD

Freebsd – Membuat Putty Bekerja dengan Benar Dengan Freebsd?

Saya menggunakan FreeBSD 11 dengan Putty untuk SSH. Kode tombol keyboard tampaknya tidak diatur sama sekali dengan benar – misalnya berbunyi bip pada panah atas dan menyisipkan '~' untuk sebagian besar tombol navigasi termasuk dasar-dasar seperti panah dan tombol hapus. Keyboard adalah keyboard Inggris Inggris standar. Mengetik benar-benar menyebalkan.

Saya telah membaca sejumlah topik tentang pengaturan kode kunci, baik di rc dan shell, jadi saya tahu saya dapat mengaturnya sebagai upaya terakhir.

Tetapi akan sangat aneh untuk klien dengan begitu banyak kemampuan konfigurasi, dan OS dengan penggunaan yang luas, tidak memiliki beberapa opsi terminal / pengaturan yang sama sehingga mereka berdua "hanya mengerti", yang dapat saya atur pada keduanya dan voila – kunci semua (atau sebagian besar) berfungsi. Masalahnya adalah saya tidak tahu bagaimana menemukannya dan, ketika saya menemukannya, bagaimana mengaturnya untuk semua sesi mendatang.

Saya mengerti bagaimana menemukan kode kunci yang dikirim oleh terminal untuk kunci individual, jadi saya bisa mengatur kunci saya seperti itu, satu per satu. Tetapi saya ingin menemukan pengaturan terminal dasar untuk shell rc saya dan untuk Putty, yang mendapatkan sebanyak mungkin kunci yang dipahami oleh keduanya, jadi saya hanya perlu menyiapkan beberapa pengecualian jika saya membutuhkannya.

Bagaimana saya bisa melakukan ini?

Jawaban yang Diterima:

Ada begitu banyak kenop yang harus diputar dan diputar. Dan banyak nasihat di Internet yang diikuti orang secara membabi buta. Seperti biasa banyak cara ke Roma tetapi ketika Anda tahu bagaimana segala sesuatunya terhubung, semuanya sangat sederhana.

Jawaban singkatnya adalah:

Ubah string terminal di Putty dari xterm ke putty (di bawah Connection -> Data -> Terminal-type string).

Jebakan khas yang harus dihindari:

Pastikan Anda tidak menyetel TERM di tempat lain di file rc Anda.

Jawaban yang sedikit lebih panjang:

Pertama saya akan mulai dengan memastikan bahwa Anda benar-benar menggunakan default. Dari laptop Windows 10 pribadi saya menggunakan keyboard DK (dan pemetaan) saya terhubung ke pengaturan FreeBSD 11.1 dengan pemetaan DK. Dalam kasus saya, tombol panah berfungsi seperti yang diharapkan pada baris perintah. Kiri/kanan bergerak pada baris saat ini. Atas/Bawah menelusuri riwayat perintah.

Saya telah memverifikasi ini untuk /bin/sh (Shell pengguna default) dan /bin/tcsh (Shell root default). Anda dapat membaca tentang kerang.

Anda menulis bahwa Anda tahu bagaimana Anda bisa melakukan keymapping di file rc shell. Banyak saran tentang cara melakukan ini beredar. Tapi biasanya bukan itu yang harus Anda lakukan.

Anda akan menemukan saran seperti ini untuk ikatan kunci tcsh:

# Del(ete), Home and End 
bindkey "\e[3~"   delete-char
bindkey "\e[1~"   beginning-of-line
bindkey "\e[4~"   end-of-line

Dan saran seperti ini untuk bash ( ~/.inputrc)

"\x7F": backward-delete-char
"\e[3~": delete-char
"\e[1~": beginning-of-line
"\e[4~": end-of-line

Tetapi daripada menyetel binding ini secara lokal untuk setiap sesi dan setiap shell, Anda sebaiknya menggunakan termcap/terminfo untuk tujuan ini (lebih lanjut tentang ini nanti).

Dalam konteks ini Putty adalah terminal Anda.

Default untuk Putty adalah mengatur TERM untuk sesi Anda ke "xterm". Itu dilakukan karena cukup kompatibel dengan xterm. xterm bukan referensi ke terminal mana pun tetapi untuk program Xterm.

Konfigurasi Putty

Connection -> Data -> Terminal-type string: `xterm`

Ketika Anda telah masuk, Anda dapat memverifikasi bahwa pengaturan ini diterapkan ke sesi Anda:

echo $TERM
xterm

Jika $TERM tidak cocok dengan apa yang telah Anda atur di Putty, maka Anda mungkin telah mengatur override di file rc Anda. Perhatikan peringatan untuk /bin/sh di ~/.profile :

# Setting TERM is normally done through /etc/ttys.  Do only override
# if you're sure that you'll never log in via telnet or xterm or a
# serial line.
# TERM=xterm;   export TERM

Karena kami tidak lagi menggunakan banyak xterm fisik DEC VT100 adalah apa yang akan Anda lihat di banyak tempat.

Terkait:Listrik – bagaimana cara melepas konektor kabel ini dengan benar?

Bahkan jika Anda hanya menyimpan TERM sebagai xterm Anda akan mendapatkan keluaran warna dengan Putty dan FreeBSD default sebagai ls -G akan berhasil.

Beberapa akan menyarankan Anda untuk mengatur TERM ke xterm-color , xterm-256 atau rxvt-256color untuk mendapatkan dukungan warna yang "tepat".

Tapi ingat: Semua TERM ajaib ini nilai hanyalah pemetaan dalam database. Alasan xterm begitu lazim saat ini sehingga beberapa program dan skrip memeriksa apakah $TERM dimulai dengan xterm (yang merupakan ide yang mengerikan).

Ini kemudian membawa kita kembali ke termcap yang merupakan default di FreeBSD. Jika Anda ingin menggunakan terminfo maka Anda perlu menginstal devel/ncurses. Untuk lebih lanjut tentang ini, lihat:Bagaimana saya bisa menggunakan entri terminfo di FreeBSD?

Anda dapat menemukan sumber database termcap dalam file teks /usr/share/misc/termcap . Jika Anda membuat perubahan pada file ini, Anda perlu menjalankan cap_mkdb untuk mendapatkan sistem untuk mengakui perubahan. Di sini Anda akan menemukan jawaban atas teka-teki Anda. Ada TERM yang eksplisit pengaturan untuk Putty bernama:putty .

FreeBSD kemudian membuat pilihan untuk tidak mengubah pengaturan untuk xterm untuk mencocokkan perilaku Putty (mungkin karena masalah kemampuan tempur). Tapi mereka cukup baik untuk menyediakan pengaturan untuk Putty.

Jadi jika Anda mengubah pengaturan default Putty untuk Terminal-type string: dari xterm ke putty maka ini tercermin dalam TERM saat Anda masuk. Dan termcap FreeBSD default memiliki entri untuk ini.

Dan secara ajaib dan tanpa menyentuh banyak file rc Anda sekarang memiliki tombol panah yang berfungsi (saya juga memilikinya dengan xterm) tetapi juga Home/End bergerak ke awal/akhir baris dan Del(ete) menghapus.

Bonus:

Tampaknya definisi dempul default tidak mendukung semua 256 warna. Anda kemudian dapat memodifikasi termcap Anda dan menambahkan dua baris ini (dan menjalankan cap_mkdb):

putty-256color:\
        :pa#32767:Co#256:tc=putty:

Kemudian Anda dapat mengatur TERM ke putty-256color . Scott Robison menyarankan ini harus ditambahkan – tetapi perubahan tersebut belum diambil oleh FreeBSD. Saya tidak dapat menemukan PR ini lagi di database.

Bonus 2:

Jika Anda lebih suka menyimpan TERM sebagai xterm maka Anda harus meluangkan waktu untuk mengonfigurasi Putty agar sesuai dengan apa yang diharapkan FreeBSD dari terminal xterm.

Jika Anda pergi ke pengaturan Terminal -> Keyboard dalam pengaturan Tombol Utama dan Akhir Anda dapat mengubah “Standar” menjadi “rxvt”.

Dengan perubahan ini Anda akan melihat tombol Home bekerja pada baris perintah (bergerak ke awal baris). Tapi End sekarang tidak melakukan apa-apa.

Jadi pertanyaannya adalah membuat Putty setuju dengan apa yang diharapkan FreeBSD dari xterm. Hanya untuk menunjukkan bahwa Anda juga bisa melakukan sebaliknya.

Terkait:bagaimana cara mengkonfigurasi masuk dengan benar?
FreeBSD
  1. Mengapa saya tetap menggunakan xterm

  2. Memulai dengan Zsh

  3. Memulai dengan ls

  1. Memperbarui gairah saya di tempat kerja dengan Ansible

  2. Memulai PostgreSQL di Linux

  3. Freebsd – Tambahkan Freebsd ke Menu Boot Grub2?

  1. Bagaimana Agar Vim Bekerja Dengan Tmux Dengan Benar?

  2. Mendapatkan 256 Warna Untuk Bekerja Di Tmux?

  3. Membuat Mtp Bekerja Dengan Galaxy Tab 2 7.0?