必要に応じて、特定のプロジェクトで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
。