1 | chsh
|
2 | ===
|
3 |
|
4 | 用来更换登录系统时使用的shell
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **chsh命令** 用来更换登录系统时使用的shell。若不指定任何参数与用户名称,则chsh会以应答的方式进行设置。
|
9 |
|
10 | ### 语法
|
11 |
|
12 | ```shell
|
13 | chsh(选项)(参数)
|
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
|
68 | Changing shell for rocrocket.
|
69 | Password:
|
70 | Shell 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
|
78 | rocrocket: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
|
87 | Changing shell for rocrocket.
|
88 | Password:
|
89 | Shell changed.
|
90 | ```
|
91 |
|
92 |
|