はじめに
Dockerを使うとよく遭遇するのでここで共有させていただきます。
2021/03/11: ターミナルでコマンドを編集する時に知っていると便利なコマンドを追加
一般ユーザーがTABキーや矢印キー押しても補完機能が動作しない
Linuxで一般ユーザーでログインした時に矢印キーやTABキーを押下してもコマンドの候補が表示されない場合があります。そのような場合は、作成したユーザーのシェルがbashではなくshになっている可能性があります。
UNIX系では、「/etc/passwd」というファイルにユーザー情報が格納されます。
このファイルの1行が1人のユーザに該当する情報です。また、各行はさらに「:(コロン)」で区切られており、以下の意味を持ちます。
ユーザ名:パスワード:ユーザ番号:グループ番号:コメント:ホームディレクトリー:シェル
対策
もし、TABキーや矢印キー押しても思った通り動作しなかった場合は、そのユーザーの情報を確認します。例えば、「dakc」というユーザーでログインした時に発生した場合は、以下のコマンドで「dakc」の情報を確認します。
# cat /etc/passwd |grep dakc
dakc:x:1092:1092::/home/kc:/bin/sh
最後に見たらわかりますが、シェルが**/bin/bashではなく、/bin/sh**になっています。
このままターミナルからbashを実行してもいいですが、これが一時的なものなので、以下のコマンドを実行します。
# chsh -s /bin/bash dakc
-sの意味は、ユーザのシェルを新たに 指定したシエルにする意味です。
(--shellでもOK)
上記の方法で/etc/passwdの中身を確認するとシェルがbashに変わったのが確認できるかと思います。もし、似たような事で困っていたら、まずユーザーの情報を調べてみてください。
知っておくと便利
ターミナルでコマンドを編集する時によく使うコマンドを下記のページにて紹介しています。
https://qiita.com/_dakc_/items/e603f277ec4135c4cfee