如何更改Linux登录shell

时间:2020-01-09 10:40:03  来源:igfitidea点击:

如何使用命令更改Linux或UNIX操作系统中的默认登录Shell吗?
您不必编辑/etc/passwd文件即可更改shell。
您需要使用chsh命令。
它更改了用户登录shell。
这确定了用户初始登录命令的名称。
普通用户只能更改其自己帐户的登录Shell,超级用户(即root用户)可以更改任何帐户的登录Shell。

chsh命令语法

以下是chsh命令的语法:

chsh -s {shell-name} {user-name}

其中:

  • -s {shell-name}:指定您的登录shell名称。您可以从/etc/shells文件中获得avialble shell的列表。
  • {user-name}:这是可选的,如果您是root用户,则很有用。

首先,找出可用的shell列表:

$ less /etc/shells

输出示例:

/bin/ash
/bin/csh
/bin/sh
/usr/bin/es
/bin/ksh
/bin/tcsh
/bin/sash
/bin/zsh
/bin/dash
/usr/bin/screen
/bin/bash
/bin/rbash

示例:将Linux中的默认Shell更改为/bin/tcsh

要将shell名称更改为/bin/tcsh:

$ chsh -s /bin/tcsh

输出示例:

Password:

提示输入密码时,执行您自己的密码。
您必须注销并重新登录才能看到此更改。
如果仅执行chsh命令,它将以交互方式提示输入shell名称:

$ chsh

输出示例:

Password:
Changing the login shell for tv
Enter the new value, or press ENTER for the default
       Login Shell [/bin/bash]:

此命令将永久性地将默认登录Shell更改为/bin/tcsh。
在此示例中,首先找出bash shell的路径,执行:

$ type -s bash
$ which bash

输出示例:

bash is /usr/local/bin/bash

现在,使用以下命令将名为Hyman的用户的shell设置为bash:

$ chsh -s /usr/local/bin/bash Hyman

或者,如果您知道sysadmin根密码:

$ sudo chsh -s /usr/local/bin/bash Hyman