UNPKG

2 kBMarkdownView Raw
1chsh
2===
3
4用来更换登录系统时使用的shell
5
6## 补充说明
7
8**chsh命令** 用来更换登录系统时使用的shell。若不指定任何参数与用户名称,则chsh会以应答的方式进行设置。
9
10### 语法
11
12```shell
13chsh(选项)(参数)
14```
15
16### 选项
17
18```shell
19-s<shell 名称>或--shell<shell 名称>:更改系统预设的shell环境。;
20-l或--list-shells:列出目前系统可用的shell清单;
21-u或--help:在线帮助;
22-v或-version:显示版本信息。
23```
24
25### 参数
26
27用户名:要改变默认shell的用户。
28
29### 实例
30
31 **查看系统安装了哪些shell的两种方法:**
32
33第一种:
34
35```shell
36[rocrocket@localhost ~]$ chsh -l
37/bin/sh
38/bin/bash
39/sbin/nologin
40/bin/zsh
41```
42
43第二种:
44
45```shell
46[rocrocket@localhost ~]$ cat /etc/shells
47/bin/sh
48/bin/bash
49/sbin/nologin
50/bin/zsh
51```
52
53其实`chsh -l`也是来查看这个文件。
54
55 **查看当前正在使用的shell:**
56
57```shell
58[rocrocket@localhost ~]$ echo $SHELL
59/bin/bash
60```
61
62注意SHELL一定要是大写。可以看到,目前使用的shell是`/bin/bash`
63
64 **把我的shell改成zsh:**
65
66```shell
67[rocrocket@localhost ~]$ chsh -s /bin/zsh
68Changing shell for rocrocket.
69Password:
70Shell changed.
71[rocrocket@localhost ~]$
72```
73
74使用chsh加选项`-s`就可以修改登录的shell了!你会发现你现在执行`echo $SHELL`后仍然输出为`/bin/bash`,这是因为你需要重启你的shell才完全投入到zsh怀抱中去。`chsh -s`其实修改的就是`/etc/passwd`文件里和你的用户名相对应的那一行。现在来查看下:
75
76```shell
77[rocrocket@localhost ~]$ cat /etc/passwd|grep ^rocrocket
78rocrocket:x:500:500:rocrocket,China:/rocrocket/PSB/home:/bin/zsh
79```
80
81你可以发现输出内容的最后部分已经变成了`/bin/zsh`了,下次重启的时候,linux就会读取这一命令来启动shell了!
82
83 **把shell修改回/bin/bash:**
84
85```shell
86[rocrocket@localhost ~]$ chsh -s /bin/bash
87Changing shell for rocrocket.
88Password:
89Shell changed.
90```
91
92