私はLinuxにあまり興味がなく、次の疑問があります。クライアントから、SSH経由でアクセスするUbuntu 18.04.3 LTS仮想マシンが提供されました。 (SSHクライアントとしてMobaxTermを使用していますが、問題にはなりません。)使用されているシェルはsh
です。
問題は、シェルでオートコンプリート機能が期待どおりに機能しないことです。 Tab キー。
それは単に古典的なタブの空白を置くだけです。
どうして?この構成を変更するにはどうすればよいですか?
sh
は、Ubuntuのdash
によって提供されます。bash
やzsh
を含む多くのシェルには、対話式で簡単に使用できる高度な機能があります。 dash
は意図的にかなり最小限に抑えられており、そのような機能は提供していません。特に、タブ補完は提供されません。
シンプルなUbuntuシステムでも、必須パッケージと見なされているため、通常はbash
がインストールされています。別のパッケージが依存している場合以外でも、それが存在すると想定できるはずです。通常、bash
はUbuntuのデフォルトユーザーシェルです。つまり、新しいユーザーがデフォルトで取得するログインシェルですが、これは再構成できます。
bash
またはインタラクティブに使用するのに最適な別のシェルを使用することをお勧めします。 bash
が利用可能かどうかは、VMを実行して確認できます。
_bash
_
_$PATH
_が適切に設定されていると仮定すると、利用可能な場合はbash
が実行されます。タブ補完がbash
で機能することを確認できます-機能する必要がありますが、確認しない理由はありません-その後、次の2つの方法のいずれかでタブ補完を取得します。
bash
機能が必要な場合は、bash
を実行するだけです。bash
コマンドを使用して、ユーザーアカウントのログインシェルをchsh
に変更できます。_bash-completion
_と呼ばれる別のパッケージがあり、これも通常インストールされていることに注意してください。これにより、プログラム可能なタブ補完が提供されます。つまり、コンテキストによって異なり、たとえば、フラグやコマンドの他の構文について知っているタブ補完があります。 bash
はインストールできますが、_bash-completion
_はインストールできません。
(特定のパッケージ--bash
、_bash-completion
_、またはその他のものがインストールされているかどうかを確認するには、_apt list package-name
_を使用できます。パッケージの詳細については、_apt show package-name
_および_apt policy package-name
_。)