Linuxコマンド · 1 min read · Sep 15, 2025

初心者のためのLinux chshコマンドチュートリアル(5つの例)

chsh(シェルの変更)コマンドは、Linuxにおいてユーザーがデフォルトのログインシェルを変更するためのユーティリティです。ログインシェルは、ユーザーがUnix系システムにログインした際に対話するコマンドラインインターフェースです。一般的なシェルには、dash、bash、zsh、ksh、fishがあります。

chshコマンドに入る前に、ログインシェルが何であるかを理解することが重要です。ログインシェルは、ログイン時にユーザーIDの下で実行される最初のプロセスです。これは、環境を初期化し、システムと対話するためのインターフェースを提供する役割を担っています。

一般的なLinuxシェル

  • Bash(Bourne Again Shell):多くのLinuxディストリビューションのデフォルトシェルで、使いやすさと強力な機能で知られています。
  • Zsh(Z Shell):bashの拡張版で、改善されたタブ補完やカスタマイズなどの多くの追加機能があります。
  • Ksh(Korn Shell):shとcshの両方に見られるスクリプト機能を提供するシェルです。
  • Fish(Friendly Interactive Shell):構文ハイライトや自動提案などのユーザーフレンドリーな機能で知られています。
  • Dash:Linux Dashシェル(dash)は、スピードと最小限のリソース使用のために設計された軽量でPOSIX準拠のシェルで、Debianベースのシステムでデフォルトのスクリプトシェルとしてよく使用されます。

Linux chshコマンド

上記の紹介が説明するように、chshコマンドはログインシェルを変更することができます。以下がその構文です:

chsh [options] [LOGIN]

そして、ツールのmanページには次のように記載されています:

       chshコマンドはユーザーログインシェルを変更します。これにより、ユーザーの初期ログインコマンドの名前が決まります。通常のユーザーは自分のアカウントのログインシェルのみを変更できます;スーパーユーザーは任意のアカウントのログインシェルを変更できます。

以下は、chshコマンドの動作を理解するためのQ&A形式の例です。

Q1. chshの使い方は?

基本的な使い方は非常にシンプルです - 引数なしで’chsh’コマンドを実行するだけです。ログインパスワードを求められ、正しく入力すると、ログインシェルを変更するオプションが表示されます。

chsh

Ubuntuでbashにシェルを変更

現在のユーザーのログインシェルはデフォルトで変更されることに注意してください。

Q2. chshを使用してログインシェルを変更するには?

予想通り、新しい値を入力するだけです(前の例のスクリーンショットを参照)。シェルは新しいものに変更されます。

例えば、私は新しい値として/bin/shを入力しました。

chshを使用してログインシェルを変更する方法

変更を確認するには、再度chshコマンドを実行できます。角括弧内に表示される値が現在のシェルです。私の場合、現在のシェルは/bin/shになりました:

新しいログインシェルを設定

Q3. 他のユーザーのログインシェルを変更するには?

これには、chshコマンドにユーザー名を入力として指定するだけです。

chsh [username]

例えば、rootのログインシェルを変更するには、次のようにchshを使用します:

chsh root

他のユーザーのログインシェルを変更する方法

Q4. chshを非対話モードで実行するには?

これには、-sコマンドラインオプションを使用します。これには、シェル名を入力として渡す必要があります。

例えば:

chsh -s /bin/sh

このようにして、現在のユーザーのログインシェルは非対話的に/bin/shに変更されます。

Q5. システムで利用可能なログインシェルのリストを表示するには?

システムで利用可能なシェルのリストをすぐに確認するには、/etc/shellsファイルをcatします。

例えば、私のシステムで生成された出力は次のとおりです:

# /etc/shells: 有効なログインシェル
/bin/sh
/bin/bash
/bin/rbash
/bin/dash

注意:

       ログインシェルに課せられる唯一の制限は、コマンド名が/etc/shellsにリストされている必要があることです。スーパーユーザーが呼び出す場合は、任意の値を追加できます。制限されたログインシェルを持つアカウントは、自分のログインシェルを変更できません。このため、/etc/shellsに/bin/rshを配置することは推奨されません。なぜなら、制限されたシェルに誤って変更すると、ユーザーは元の値に戻すことができなくなるからです。

結論

このように、chshコマンドはコマンドラインユーザーが知っておくべき重要なツールです。このチュートリアルでは、ツールが提供するコマンドラインオプションの大部分について説明しました。chshについてさらに学ぶには、そのmanページにアクセスしてください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。