找回密码
 注册
关于网站域名变更的通知
查看: 262|回复: 1
打印 上一主题 下一主题

如何更改登录的shell

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-24 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
6 c" ~/ }/ |- {# T, f
1 我想知道我机器安装了哪些shell?
. V8 T7 ^7 C  u3 {0 ~( e
) b5 \* L' B- x) O( J* Q两种方法可以查看:
! B: J$ O) D( L7 R6 U2 j5 G, N第一种: 7 m% O: W( P3 \) S0 t
[rocrocket@wupengchong ~]$ chsh -l  
) \- d) G4 a) Y- d5 X/bin/sh " @8 F: L8 c: {+ I
/bin/bash
, c# O0 m  x4 ]/ j' ~: g2 n! o/sbin/nologin
7 O6 j6 s$ x+ O% A# x# }/ ]/bin/zsh   }) r4 R0 b7 ?; Q' G& C
第二种: 8 y7 j  m9 s% x- i5 b3 t
[rocrocket@wupengchong ~]$ cat /etc/shells  
: I1 J8 N  J3 y6 ^/bin/sh
  W7 F  x$ r% b8 t9 q5 X" S. A/bin/bash
- U% K/ Z/ q5 z9 I5 e4 I6 T5 s/sbin/nologin 4 V$ C' C& E0 b8 P9 Q6 W
/bin/zsh
" @2 j& x% t7 |8 f+ @  M, d5 ?  S1 k其实chsh -l也是来查看这个文件。 0 X* v9 u- A" {: q, w- b+ K( N, J. }
+ |) E8 Y- ~) z1 s; f" L
2 我想知道我当前正在使用的shell是哪个阿?
  x! O0 X: N/ f- ?; G" @[rocrocket@wupengchong ~]$ echo $SHELL
) U2 ~+ Z: Y. n! l/bin/bash
" K* Q+ y- f* k+ V) l注意SHELL一定要是大写。可以看到,我目前使用的shell是/bin/bash ( o9 N4 b$ c5 Q9 P0 h$ ~/ B
3 执行了zsh之后,我查看当前shell类型仍然是/bin/bash呢? 0 A" ?9 k" G) U1 u" m
请注意,我们虽然执行了zsh,但是所谓“当前的shell”是一个大环境的概念,是针对一个已登录的用户而言的。而我们执行zsh只是启动了一个zsh的解释器程序而已,并没有改变大环境。如果想改变“当前的shell”,那么还是要使用chsh才可以。 & Q( d6 n. q9 |/ s! E# h+ `2 }+ J
4 我想把我的shell改成zsh!
- X/ J. {! c2 K[rocrocket@wupengchong ~]$ chsh -s /bin/zsh   F% W+ B0 H  e! ?- n2 h) I4 {2 S
Changing shell for rocrocket. / u9 x4 O2 w: t6 S5 E
Password: ; {* i1 D  o! C' A
Shell changed.
* V- U" O9 S: l' X& r[rocrocket@wupengchong ~]$
, B9 f( {1 \; s) e- R使用chsh加选项-s就可以修改登录的shell了! . B  j* ^4 u! F/ M, J, s  a
你会发现你现在执行echo $SHELL后仍然输出为/bin/bash,这是因为你需要重启你的shell才完全投入到zsh怀抱中去。 ; A+ k0 w" e6 o) Q) v7 ]3 y; G
5 chsh -s到底是修改了哪里?
' N/ j6 v9 b9 ?$ F0 c秘密告诉你吧。chsh -s其实修改的就是/etc/passwd文件里和你的用户名相对应的那一行。现在我来查看下: " l; V0 z0 `/ O: T
[rocrocket@wupengchong ~]$ cat /etc/passwd|grep ^rocrocket
/ \% t/ f, y# Z7 D% a* Z6 r5 Q7 v; Yrocrocket:x:500:500:rocrocket,China:/rocrocket/PSB/home:/bin/zsh 7 Q, ^' v) A6 I
看!你可以发现输出内容的最后部分已经变成了/bin/zsh了!下次你重启的时候,linux就会读取这一命令来启动你的shell了!
2 l/ B. n9 g& V: A/ U' L( C% Z0 U( A好了,我要恢复正常工作,把shell修改会我熟悉的/bin/bash了! & t6 d% z' |* G
[rocrocket@wupengchong ~]$ chsh -s /bin/bash % k5 n% \/ J# U8 [% e
Changing shell for rocrocket. 7 }7 u* z) N, L9 Y9 u
Password:
4 ~6 Q- @; D! m, Q' Z5 hShell changed.
% n) v" @+ Q' Z. v+ q$ O
6 N/ q  c5 E# b6 `! n
; |# {/ j( F2 ~1 l) |

该用户从未签到

2#
发表于 2020-3-25 17:48 | 只看该作者
如何更改登录的shell
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 20:00 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表