侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux chsh命令用法详解:如何修改用户登录shell(附实例)

Linux chsh命令介绍

chsh是change shell的缩写,它是一个用于修改用户登录shell的命令。shell是一个与操作系统交互的用户界面,可以认为是操作系统的外层。bash shell是Linux中最常用的登录shell之一,但也有其他的shell可供选择,比如zsh,csh,ksh等。chsh命令可以让用户从当前的shell切换到其他的shell。超级用户可以为已有的账户修改登录shell。

Linux chsh命令适用的Linux版本

chsh命令在大多数的Linux发行版中都是可用的,但是在一些Ubuntu和Debian的系统中,chsh的选项可能有所不同。如果要切换到一个新的shell,需要先确保该shell已经安装在系统中,并且在/etc/shells文件中列出。如果没有安装,可以使用包管理器来安装,比如在CentOS中可以使用yum或dnf,而在Ubuntu中可以使用apt或apt-get。例如,如果要安装zsh,可以在CentOS中使用以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo yum install zsh

或者在Ubuntu中使用以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo apt install zsh

Linux chsh命令的基本语法

chsh命令的基本语法如下:

chsh [选项] [shell] [用户名]

其中,所有的参数都是可选的。如果不指定shell,chsh会交互式地询问用户要切换到哪个shell。如果不指定用户名,chsh会修改当前用户的登录shell。如果指定了用户名,需要有超级用户的权限才能修改其他用户的登录shell。

Linux chsh命令的常用选项说明

chsh命令有以下几个常用的选项:

选项说明
-l显示可用的shell列表
-s设置指定的shell为用户的登录shell
-v显示chsh的版本信息并退出
-h显示帮助信息并退出

注意:不同的Linux系统中,chsh的选项可能有所差异,可以使用man chsh来查看具体的用法。

Linux chsh命令的实例

下面是一些使用chsh命令的实例:

实例1:查看当前的shell

如果不加任何参数,chsh会显示当前用户的登录shell,并询问是否要修改。例如:

[linux@bashcommandnotfound.cn ~]$ chsh
Changing shell for linux.
Password: 
Enter the new value, or press ENTER for the default
	Login Shell [/bin/bash]: 

可以看到,当前的shell是/bin/bash,如果要修改,可以输入新的shell的路径,如果不想修改,可以直接按回车键。

实例2:查看可用的shell

如果使用-l选项,chsh会显示系统中可用的shell列表。例如:

[linux@bashcommandnotfound.cn ~]$ chsh -l
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/bin/zsh
/usr/bin/zsh
/bin/csh
/usr/bin/csh
/bin/tcsh
/usr/bin/tcsh
/bin/ksh
/usr/bin/ksh

实例3:修改登录shell

如果使用-s选项,chsh会将指定的shell设置为用户的登录shell,不需要交互式地输入。例如,如果要将登录shell修改为zsh,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ chsh -s /bin/zsh
Changing shell for linux.
Password: 
Shell changed.

需要输入当前用户的密码来确认修改,修改成功后,需要重新登录才能生效。

实例4:修改其他用户的登录shell

如果指定了用户名,chsh会修改该用户的登录shell,但是需要有超级用户的权限才能执行。例如,如果要将用户alice的登录shell修改为csh,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo chsh -s /bin/csh alice
Changing shell for alice.
Shell changed.

需要输入超级用户的密码来执行该命令,修改成功后,用户alice需要重新登录才能生效。

实例5:显示版本信息和帮助信息

如果使用-v选项,chsh会显示版本信息并退出。例如:

[linux@bashcommandnotfound.cn ~]$ chsh -v
chsh (util-linux) 2.36.2

如果使用-h选项,chsh会显示帮助信息并退出。例如:

[linux@bashcommandnotfound.cn ~]$ chsh -h
Usage: chsh [options] [LOGIN]

Options:
  -h, --help                    display this help message and exit
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             new login shell for the user account
  -v, --version                 output version information and exit

Linux chsh命令的注意事项

使用chsh命令时,需要注意以下几点:

  • 如果要切换到一个新的shell,需要先确保该shell已经安装在系统中,并且在/etc/shells文件中列出,否则chsh会拒绝修改。
  • 修改登录shell后,需要重新登录才能生效,否则仍然使用原来的shell。
  • 修改其他用户的登录shell需要有超级用户的权限,否则chsh会报错。
  • 不同的Linux系统中,chsh的选项可能有所差异,可以使用man chsh来查看具体的用法。
0

评论区