Saya berbicara tentang cara pintas keyboard yang Anda gunakan di baris perintah / terminal.
Contoh: Ctrl+ cyang membunuh proses, Ctrl+ dyang keluar, Ctrl+ zyang mengirim proses ke latar belakang ... dll.
Saya telah diuji beberapa dan menemukan bahwa mereka tidak terminal (yaitu gnome-terminal
, xterm
, konsole
) tertentu atau shell (yaitu bash
, zsh
) tertentu, mereka bahkan bekerja di tty
s.
Jadi, saya ingin tahu:
- Siapa yang menyediakan pintasan ini?
- Bagaimana saya bisa mendaftar dan memodifikasi / mendefinisikannya?
bind -p
daftar, jadihelp bind
untuk yang lainJawaban:
Driver terminal kernel (
termios
) mengartikan kunci khusus yang dapat diketik untuk mengirim sinyal ke suatu proses, mengirim akhir file, menghapus karakter, dll. Ini adalah fungsi dasar kernel Unix dan sangat mirip pada sebagian besar implementasi Unix dan Linux.The
stty
perintah menampilkan atau set yangtermios
karakter khusus, serta parameter lain untuk driver line terminal.Meminta
stty -a
untuk melihat nilai saat ini dari karakter khusus dan "pengaturan terminal terminal" lainnya. Dalam contoh berikut, Anda dapat melihat bahwa ituintr
adalah Ctrl+ C,eof
adalah Ctrl+ D,susp
adalah Ctrl+ Z. (Saya telah menghapus output lain untuk hanya menampilkan pengaturan karakter khusus):stty -a
karakter khusus pada GNU / Linux:stty -a
karakter khusus pada FreeBSD:Untuk mengubah nilai karakter khusus, misalnya, untuk mengubah karakter interupsi dari Ctrl+ Cke Ctrl+ Ememanggil
stty
seperti ini (^E
secara harfiah adalah dua karakter, sirkumfleks (^
) diikuti oleh hurufE
):Untuk informasi lebih lanjut lihat halaman manual untuk
stty
dantermios
. Di GNU / Linux Anda juga dapat melihattty_ioctl
halaman manual.Catatan:
The
intr
key ( Ctrl+ Csecara default), tidak benar-benar membunuh proses, tetapi menyebabkan kernel untuk mengirim sinyal interupsi (SIGINT
) untuk semua proses dalam kelompok proses. Proses dapat mengatur untuk menangkap atau mengabaikan sinyal, tetapi sebagian besar proses akan berakhir, yang merupakan perilaku default.Alasan Ctrl+ dlogout Anda adalah karena driver jalur terminal mengirim EOF (akhir file) pada input standar shell. Shell keluar ketika menerima ujung file pada input standar itu.
sumber
-a
opsi POSIX ditambahkan kestty
.stty intr '^E'
berfungsi (set) tetapi sementara dan hanya untuk terminal / tty saat ini. Bagaimana cara mengubahnya secara global & permanen?stty
$ HOME / .profile atau $ HOME / .bashrc Anda atau file inisialisasi startup shell lainnya.tty
tty
? Mungkin itu bisa menjadi pertanyaan baru?Dari http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
Command Editing Shortcuts
Command Recall Shortcuts
Pintasan Kontrol Perintah
Perintah Bash Bang (!)
Bash juga memiliki beberapa fitur praktis yang menggunakan! (bang) untuk memungkinkan Anda melakukan beberapa hal funky dengan perintah bash .
sumber
^U
, yangstty -a
menunjukkan didefinisikan untuk SIGKILL di Linux, dari bash? Lebih disukai tanpa mendefinisikan hal-hal readline (mungkin melalui mod mod / meta ketiga). Saya menganggap itu hanya dibayangi oleh ctrl + u readline binding?