カーソルを使用して 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

おすすめ記事