Beberapa tombol pada keyboard Anda tidak sesuai dengan karakter yang sebenarnya. Misalnya, Asesuai dengan karakter a
tetapi tombol Updan F1tidak memiliki karakter khusus mereka sendiri. Ketika tombol khusus ditekan, alih-alih mendapatkan satu karakter yang sesuai dengan tombol, terminal menerjemahkan penekanan tombol ke urutan khusus beberapa karakter yang biasanya dimulai dengan karakter pelarian (biasanya ditampilkan sebagai ^[
). Misalnya, Upbiasanya menghasilkan urutan ^[[A
(yaitu 3 karakter dari satu kunci: escape [
,, dan A
).
Alasan yang biasanya tidak Anda lihat ^[[A
adalah karena sebagian besar aplikasi konsol cukup pintar untuk menerjemahkan urutan khusus ke dalam perintah yang berguna alih-alih hanya menggemakannya ke konsol. Untuk melakukan ini, mereka mematikan gema bawaan terminal dan melakukan pemrosesan tingkat rendah mereka sendiri. Misalnya, ketika bash
dilihat ^[[A
, ¹ menyadari bahwa itu berarti Anda menekan Updan alih-alih menggema ^[[A
kembali, ia melakukan banyak hal untuk menghapus apa pun yang Anda ketikkan sejauh ini, ambil perintah sebelumnya yang disimpan dalam riwayat, dan cetaklah sebagai gantinya.
Jika Anda melihat ^[[A
ketika Anda menekan Up, itu biasanya berarti bahwa gema terminal dihidupkan dan proses latar depan (yang mengendalikan terminal) tidak melakukan proses khusus yang disebutkan di atas. Ini mungkin karena aplikasi mengabaikan terminal (seperti kebanyakan perintah non-interaktif). Perhatikan bahwa biasanya, shell menempatkan terminal ke mode kanonik dan menyala bergema sebelum menjalankan proses foreground, dan mengembalikan pengaturannya sendiri setelah ia mendapatkan kembali kendali terminal setelah perintah keluar.
Gema itu tampaknya tidak berbahaya. Hanya ingat bahwa jika perintah yang berjalan tidak membaca dari terminal, karakter yang Anda hasilkan melalui keyboard mungkin akan berakhir di bash
antrian input, jadi berhati-hatilah apa yang Anda ketik karena mereka mungkin akan ditafsirkan sebagai perintah normal setelah bash
melanjutkan membaca dari terminal.
¹ Ini sebenarnya penyederhanaan berlebihan. Karena urutan spesifik dapat bervariasi berdasarkan jenis terminal, biasanya ada beberapa lapisan perpustakaan abstraksi di antara aplikasi konsol dan terminal itu sendiri. Misalnya, bash
gunakan readline
perpustakaan untuk melakukan sebagian besar inputnya.