あれ?タブ補完できんがな。
新しく作ったユーザーで作り方がまずかったのか?/homeにユーザディレクトリが
自動で出来てなかったが、いろいろ不都合が出てきた。
ログインすると$プロンプトだけやし(これはこれですっきりしていいけど)
って、これシェルがbashじゃないじゃん。
なので、キーボードでタブ補完やコマンドヒストリ↑キー機能が使えない。
1.まずsudoが使えるように
[USER_NAME]をsudoグループに追加する
$ sudo gpasswd -a [USER_NAME] sudo
2.ubuntuユーザから起動ファイル持ってきた。
$cd /home/[USER_NAME]
$sudo /home/ubuntu/.profile .
$sudo /home/ubuntu/.bashrc .
3./etc/passwd
/etc/passwd ってどうなっとるん?
$sudo vi /etc/passwd
やっぱ、/bin/sh になってる。
[New_User]:x:1001:1001::/home/[New_User]:/bin/sh
↓
[New_User]:x:1001:1001::/home/[New_User]:/bin/bash
/bin/bashに変更してOK
以降は調べたのでもったいないからメモっておく。
■補完機能を使えるようにする
LinuxでTab補完ができないのはシェルがcshとか古いものになっている場合が多い
そもそもbash-completionがインストールされていれば問題なくすぐ使える。
入っていない場合
$sudo apt-get install bash-completion
でインストールして
補完機能を使えるようにするには”/etc/bash.bashrc“に”/usr/share/bash-completion/bash_completionを
読み込む設定を行います。
--------------
# enable bash completion in interactive shells
#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
-------------
強引だが、とな。
ちなみにbash起動時に実行される初期化ファイル
ユーザーがログインに成功した後、bashは「ログインシェル」として一般的に以下のような流れでファイルを順次検索し、ファイルが存在していれば実行し起動します。
1./etc/profileを実行
2./etc/profileによって、/etc/profile.dディレクトリ配下のすべてのファイルを実行
3.ログインユーザーのホームディレクトリにある̃/.bash_profileを実行*
4.̃/.bash_profileによって、̃/.bashrcを実行
5.̃/.bashrcによって、/etc/bashrcを実行
例えば、コマンドラインからのbashの起動、suコマンドで別のユーザーになった場合など、ログインシェルとしての起動ではない場合は、5のみが実行されます。
.bashrcファイルはテキストファイルのため、簡単に編集できる。編集しただけでは変更が反映されず、ログインし直すか、次のようにsourceコマンドを使用する必要がる。
$ source .bash_profile
そもそもubuntuユーザでLoginしてbashが使えて[New_User]でログインして使えないのって/etc/passwd をすぐに確認しなかったのが遠回りになった。
少しづつ思い出してきたかな。