One thing I never managed to understand. If I run cat and hit ctrl+h, it does not delete the previous character but literally prints ^H. Why is it so? Who is responsible for interpreting ctrl+h and deleting the previous character and why doesn't it do so?