간혹 유닉스 쓰다보면 백스페이스가 안 먹는 경우가 있다. 지우려고 백스페이스 눌렀는데 지워지진 않고 ?^ 같은 특수 문자가 찍힌다.
백스페이스는 숨쉬듯 쓰는 키이기 때문에 처음 겪으면 당황하며 짜증이 치솟을 수 있는데 해결 방법은 간단하다.
1. 임시방편
잠깐만 쓰면 되는 거면 그냥 ctrl + h 또는 ctrl + 백스페이스로 대체해서 사용한다. 이렇게 쓰면 원래의 백스페이스 동작처럼 작동한다.
2. 세션 내 조치
하지만 작업이 좀 길면 일일이 ctrl 키 누르는 것도 일이다. 백스페이스를 정상화 시켜주는 게 편하다.
보통 고객사 서버 만지는 거라 영구적인 적용은 부담이 있지만 이 방법은 이번 연결 세션에 한해서만 적용되기 때문에 괜찮다.
아래의 명령어를 입력한다. 백스페이스 키를 ^?로 설정하는 명령이다.
stty erase ^?
^? 자리에는 백스페이스를 누르면 나오는 특수문자를 넣으면 된다. 만약 ^H 처럼 나오면
stty erase ^H
로 명령어를 실행한다.
이렇게 하면 접속한 세션 내에서 백스페이스가 정상 작동한다.
3. 특수 문자는 왜 나오나?
쉘에서 백스페이스를 인식하는 입력 코드와 터미널의 설정이 일치하지 않을 때 ^? 나 ^H 같은 특수 문자가 나타난다. 키 매핑 문제다.