커서를 사용하여 Linux 셸에서 명령을 탐색하는 방법

커서를 사용하여 Linux 셸에서 명령을 탐색하는 방법

필요한 경우 특정 프로젝트에 Linux를 사용할 수 있도록 Windows에서 Docker 컨테이너를 실행합니다. CLI를 사용할 때 커서 키를 사용하여 명령/명령 기록을 탐색할 수 없습니다. 이전에 실행한 명령을 탐색하려면 위쪽/아래쪽 화살표를 누르고, 왼쪽/오른쪽 화살표를 누르면 현재 선택된 명령의 일부로 커서를 이동하여 해당 지점에서 편집할 수 있습니다. 대신 커서 키를 누르면 문자가 콘솔에 출력되는 것을 볼 수 있습니다(예: 위쪽, 아래쪽, 왼쪽 및 오른쪽이 각각 , 및 ^[[A^[[B해석 됨 ).^[[C^[[D

예상되는 동작을 활성화하기 위한 옵션/설치가 누락되었습니까?

관련정보를 봤습니다세트오;하지만 기록이 없습니다.

# set -o | grep history
# set -o
Current option settings
errexit         off
noglob          off
ignoreeof       off
interactive     on
monitor         on
noexec          off
stdin           on
xtrace          off
verbose         off
vi              off
emacs           off
noclobber       off
allexport       off
notify          off
nounset         off
priv            off
nolog           off
debug           off
# set -o history
/bin/sh: 21: set: Illegal option -o history

사용된 bash 버전은 4.4.20입니다.

# bash --version
GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

답변1

SteelDriver의 의견에 따르면 내가 어느 쉘에 있는지 오해했습니다. 실행하면 bash --version출력이 나왔기 때문에 bash 쉘에 있다고 가정했습니다. 사실 방금 명령줄 인수를 사용하여 exe를 호출했습니다. 나는 그것을 사용하고 있습니다 /bin/sh.

예상되는 커서 동작을 활성화하는 솔루션은 이를 지원하는 쉘, 즉 bash로 전환하는 것입니다. 이렇게 하려면 다음 명령을 실행하면 됩니다 bash.

@StefanSkoglund의 의견에 따라 영구적으로 변경하려면 를 실행하세요 chsh -s /bin/bash.

다음을 통해 유효한 로그인 쉘을 나열할 수도 있습니다 cat /etc/shells.

cat /etc/passwd다음을 사용하여 각 사용자의 기본 쉘을 볼 수 있습니다 getent passwd.

관련 정보