왜 내 화살표 키가 sh에서 작동하지 않습니까?


16

최근에 Ubuntu를 설치했으며 터미널에서 sh를 실행하면 화살표 키가 작동하지 않아 통화 내역을 거치거나 입력하는 내용을 편집 할 수 없습니다. 처럼 이상한 문자로 나옵니다 ^[[A.

로그인 쉘은 bash이며 정상적으로 작동하지만 sh로 전환하자마자 작동하지 않습니다.

이 문제를 어떻게 해결할 수 있습니까?


2
왜 쉬로 전환합니까?
oenone

2
@oenone 왜 OP가 전환 sh되는가? 그가 왜 그렇게했는지에 대한 이유는 그것이 문제가 있다는 사실과는 관련이 없습니다.
Agi Hammerthief

답변:


15

/bin/sh(대시) 쉘은 POSIX의 준수, 기능 제한 쉘이 시스템을 부팅보다 효율적으로 (작은)이 될 것입니다. 그 일부로 히스토리 및 고급 명령 행 편집은 포함되지 않습니다. 대화식 쉘보다 엄격한 POSIX 스크립팅에 더 적합합니다. 기본적으로 'login'쉘은 기본적으로 bash이지만 부트 시스템은 dash를 사용합니다. Ubuntu 11.04의 매뉴얼 페이지에는 대시에 기록 및 명령 줄 편집 기능이 있지만 프로그램에는 이러한 기능이 없습니다. 기본 실행 파일의 크기를 살펴보십시오.

$ ls -l /bin/*ash /bin/sh
-rwxr-xr-x 1 root root 822420 Mar 31 15:26 /bin/bash
-rwxr-xr-x 1 root root  83848 Nov 15  2010 /bin/dash
lrwxrwxrwx 1 root root      4 May 17 21:15 /bin/rbash -> bash
lrwxrwxrwx 1 root root      4 May 17 21:15 /bin/sh -> dash
$ strings /bin/bash | egrep -ci 'fc|hist'
181
$ strings /bin/dash | egrep -ci 'fs|hist'
1

그냥 달리 $SHELL거나 달리는 데 익숙해 bash지십시오 sh.


8

경우에 /bin/sh대시는 , 그것을 구성해야합니다 --with-libedit컴파일하기 전에. 그렇지 않으면 여전히 set -o vi셸에서 실행할 수 있지만 유용한 것은 없습니다.


0

sh역사가 없습니다. 적어도 내 것이 아닙니다 :

server$ sh
\h$ history 
sh: history: not found
\h$ fc
sh: fc: not found
\h$ exit
server$ type sh
sh is hashed (/bin/sh)
server$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Jun  1 18:43 /bin/sh -> dash*

1
정말? IEEE 사양에 따르면 다음과 같습니다. pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html
jasonwryan

@jasonwryan, 히스토리 또는 라인 편집 모드와 관련된 모든 것은 해당 사양에서 UP 으로 표시되어 선택 사항임을 의미합니다 (UNIX 준수가 아닌 POSIX 준수의 경우).
Stéphane Chazelas

@ StéphaneChazelas-어쩌면 사실이지만 jasonwryan은 확실히 맞습니다. 여기 또 다른 링크 . 게다가 - 당신이 언급하는 $FCEDIT또는 $HISTFILE심지어 단지 나 fc? 나는 그것들이 적어도 의무적이라고 생각했다 $PS1 \!. POSIX 사양에 대해서는 틀릴 수 있지만 모두 dash수년 동안 노력 하고 있습니다.
mikeserv 2016 년

1
@mikeserv하지 당신이 무엇을 의미하지만, 투자 의견, 모두에게 fc, $FCEDIT, $HISTFILE, $PS1( "사용자 이동성"에 대한 UP 표시) POSIX의 선택 사항입니다. sh유닉스 준수 시스템은 (다른 것들 사이에 유닉스는 또한 필요 UP 같은 사람들은 유닉스 적합성에 필요한 것 echo -e출력 -e<LF>). 그러나 시스템 / 쉘이 POSIX 적합성만을 요구한다면,이를 구현할 필요는 없습니다. 데비안의 ash경우 이미 언급 한 것처럼 --with-libedit를 사용하여 컴파일 타임에 활성화 할 수 있지만 데비안은 적어도 그렇지 않습니다.
Stéphane Chazelas 2016 년

@ StéphaneChazelas-감사합니다. dash아치를위한 패키지로 내가 사용 그러므로 데비안의 내가 그것을 가지고보다 더 크게 다릅니다. 중요한 정보입니다. 에없는 것이 이상 man합니다.
mikeserv 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.