Kornshell Command Line에서 화살표 및 삭제 키를 작동시킵니다.
문제
나는 유닉스를 처음 접했고 Sun Solaris (v10 생각)를 사용하고 있습니다. 쉘을 Kornshell (KSH)으로 설정했습니다.
화살표 키를 만들고 명령 줄에서 키 작업을 삭제하는 방법이 궁금합니다. 세트 -o emacs와 백 스페이스 작업을 수행했지만 화살표 키와 삭제 키는 아닙니다.
또한 명령 줄 기록을 순환하기 위해 위아래로 화살표 키를 설정할 수 있습니까?
해결책
화살표 키의 경우 홈 디렉토리의 .kshrc 파일에 이것을 넣을 수 있습니다.
set -o emacs
alias __A=`echo "\020"` # up arrow = ^p = back a command
alias __B=`echo "\016"` # down arrow = ^n = down a command
alias __C=`echo "\006"` # right arrow = ^f = forward a character
alias __D=`echo "\002"` # left arrow = ^b = back a character
alias __H=`echo "\001"` # home = ^a = start of line
alias __Y=`echo "\005"` # end = ^e = end of line
동일 부호의 왼쪽에 문자 앞에 두 개의 밑줄 문자가 있습니다. 동등한 오른쪽에서 목표는 별칭에 적절한 제어 문자를 할당하는 것입니다. 이 스크립트가하는 방식은 명령을 실행하는 것입니다 (백신을 통해)
echo "\020"
컨트롤 N 문자를 __B에 할당합니다.
다른 팁
나는 다음을 사용했고 잘 작동합니다.
set -o emacs
참고 : 이들은 실제 제어 문자입니다. VI에서, I 형 Ctrl-V 그런 다음 ctrl-p (ctrl-p를 원한다면)
alias _A=^P
alias _B=^N
alias _D=^B
alias _C=^F
아래 줄도 추가하십시오.
alias __A=^P
alias __B=^N
alias __D=^B
alias __C=^F
싸우지 마십시오. 관리자가 기본 쉘을 BASH로 변경하도록하십시오. Bash는 Solaris 10에 포함되어 있으며 KSH 호환성이 높으며 원하는 주요 매핑을 지원합니다. 타이핑만으로 Bash를 시작할 수 있습니다.
$ bash
관리자가 도움이되지 않으면 .profile에서 Bash를 실행할 수 있습니다. 관리자가 사용자 1을 bash로 변경하기 위해 (루트) : 다음은 다음과 같습니다.
# passwd -e user1
Old shell: /bin/ksh
New shell: /usr/bin/bash <- You type this, use whence bash to look up the path
passwd: password information changed for user1
기본 ksh는 ksh88 일 수 있습니다. 이는 별명 __ 키보드 매크로를 지원하지 않습니다. KSH93. 기본적으로 작동하지 않으면 KSH88을 사용하고있을 것입니다.