在linux中如何永久更改默认登录shell

在 Red hat Linux 中,我们登录的默认 shell 是 /bin/bash

如果我们想更改默认登录 shell,请按照以下步骤操作

检查当前登录使用的shell

# echo $SHELL
 /bin/bash 

查看系统中已经安装的可以使用的shell

# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh 

您还可以从以下文件中查看可用的 shell 详细信息

# less /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh

临时更换shell

为此,只需提供我们要使用的 shell 的完整路径。
但这只是一个临时更改,因为下次切换终端时,我们将登录到默认 shell

[root@test2 ~]# /bin/sh
 sh-4.1 

如上所示,我的 shell 提示从 /bin/bash 改为了 /bin/sh

永久更改 shell 提示

# chsh -s /bin/sh
 Changing shell for root.
Shell changed.
 [root@test2 ~]# 
 
 

可能你已经注意到了,即使我们的 shell 已成功更改,但我们仍然看到 bash shell 提示符。

注意:要使更改生效,您需要注销并使用用户名“root”重新登录。

root@192.168.1.11's password:
Last login: Fri Mar 21 10:15:03 2014 from 192.168.1.2
-sh-4.1# echo $SHELL
/bin/sh
-sh-4.1# 

默认情况下哪个文件负责分配shell?

如何在创建用户时设置默认的shell

检查下面的文件。

# cat /etc/default/useradd
 # useradd defaults file
 GROUP=100
 HOME=/home
 INACTIVE=-1
 EXPIRE=
 SHELL=/bin/bash
 SKEL=/etc/skel
 CREATE_MAIL_SPOOL=yes 

如您所见,SHELL 参数的默认值为 /bin/bash。 只需将此值更改为您想要为新用户提供的 shell。

日期:2020-06-02 22:16:54 来源:oir作者:oir