Banana Pi M1 Classic に OpenMediaVault を導入すると、root 権限が付与されます。
一般ユーザを作成すると、タブ補完が効かないことに気が付きました。
普段使い慣れている操作ができないとストレスが溜まるので、一般ユーザでもタブ補完ができる方法を調べてみました。
目次
bash-completion パッケージ
最初は bash-completion パッケージの未導入を疑ったのですが、導入済みでした。
$ dpkg -l | grep completion
ii bash-completion 1:2.1-4.2ubuntu1.1 all programmable completion for the bash shell
なお、bash-completion は、bash シェル用の補完機能を提供するパッケージです。
base on Debian -- sid の bash-completion パッケージに関する詳細
bash completion は bash の標準的な補完処理をたった数ストロークで複雑なコマンドラインを実現できるように拡張します。
設定確認
bash-completion パッケージは導入済みなので、設定を確認します。
ホームディレクトリの確認
- 確認方法1
チルダは Home を表します。
$ ls -a ~
. .. .bash_logout .bashrc .profile
- 確認方法2
オプション無しの cd は Home へ移動します。
$ cd
$ pwd
/root
$ ls
. .. .bash_logout .bashrc .profile
ファイル | 概要 |
---|---|
.bash_logout | ログインシェル終了後に読み込まれる。 |
.bashrc | 【ユーザごとのシェル環境設定ファイル】ログインシェル起動・ログイン後にプロセスとしてシェル起動のどちらでも読み込まれる。 |
.profile | 【ユーザごとのシェル環境設定ファイル】.bash_profile が無く、.bash_login が無い場合に読み込まれる。 |
なお、「アクセスできません: そのようなファイルやディレクトリはありません」とメッセージが表示される場合は、Home (ホームディレクトリ)が存在しません。
設定ファイル確認
通常は下記ファイルに書き込まれています。
- .bashrc (or /etc/bashrc)
- .profile (or /etc/profile, ~/.bash_profile)
OMV では、 .bashrc ファイルに記述がありました。
コメントアウトされているので、設定自体は有効になっていることを確認できます。
$ tail ~/.bashrc
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
操作形式の変更
set コマンドは、シェル関数に設定を行うことが可能です。
-o オプションで操作形式を変更できます。
現在の方式確認
vi が off になっています。
$ set -o
allexport off
braceexpand on
emacs off
errexit off
errtrace off
functrace off
hashall on
histexpand on
history on
ignoreeof off
interactive-comments on
keyword off
monitor on
noclobber off
noexec off
noglob off
nolog off
notify off
nounset off
onecmd off
physical off
pipefail off
posix off
privileged off
verbose off
vi off
xtrace off
vi を有効にする
vi を on にします。
$ set -o vi
設定確認
vi が有効になっていることが確認できます。
$ set -o
allexport off
braceexpand on
emacs off
errexit off
errtrace off
functrace off
hashall on
histexpand on
history on
ignoreeof off
interactive-comments on
keyword off
monitor on
noclobber off
noexec off
noglob off
nolog off
notify off
nounset off
onecmd off
physical off
pipefail off
posix off
privileged off
verbose off
vi on
xtrace off
確認
タブキーで補完ができるようになっていることを確認します。