문제

나는 유닉스를 처음 접했고 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을 사용하고있을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top