私は新しい命令を学びました。少なくともそう思います。なぜなら、このコマンドは説明chsh
されたものとは異なる動作をするからです。
次のように動作するものとして説明します。
cat /etc/shells
どのシェルがインストールされているかを調べ、その中から選択できます。echo $SHELL
どのシェルを使用しているかを確認してください。- シェルを選択して入力します。
chsh -s /path/to/shell
- パスワードを入力し、 を
echo $SHELL
使用して新しいシェルに存在することを確認します。
これを行いましたが、パスワードを入力してもエラーメッセージは表示されませんが、まだ同じシェルにあります。
% echo $SHELL
/bin/bash
% cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
% chsh -s /bin/sh
Password:
% echo $SHELL
/bin/bash
答え1
ログアウトしてもう一度ログインしてください。
このchsh
コマンドはファイルを更新します/etc/passwd
が、変更はしません。現在のシェルは現在、シェルの変数値でもありません$SHELL
(そうすることはできません)。これがすぐにログインする必要がある理由です。変更を適用するには、新しいログインセッションを開始する必要があります。
答え2
使用ユーザーモード私の場合、ユーティリティコマンドが機能します。 Ubuntu 18.04で実行中です。
- まず、現在の値を確認してください。
grep nameofuser /etc/passwd
- 変化
sudo usermod --shell /bin/bash nameofuser
- 確認してください
grep nameofuser /etc/passwd