Shell是Linux系统的用户界面,提供了用户和内核进行交互操作的接口。
Shell有分为多种类型,Bash shell是其中之一,也是Cent OS默认使用的shell类型。
如何查看当前shell类型
[root@oracle ~]# echo ${SHELL}/bin/bash
显示当前系统所有的shell
[root@oracle ~]# cat /etc/shells/bin/sh/bin/bash/sbin/nologin/bin/dash/bin/tcsh/bin/csh/bin/ksh
其中,比较特殊 /sbin/nologin 不登录, 一般用于后台自动运行的程序,例如在/etc/passwd中我们会看到有很多后台程序都属于这一类。
bin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/sbin/nologinuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologin
再看看提示符[root@oracle ~]
这是默认显示的样式,当然可以通过修改一个变量$PS1来自定义
[root@oracle ~]# echo $PS1[\\u@\\h \\W]\\$
\\ u 用户名
\\ h hostname主机名简称
\\ W 当前工作目录或路径,~ 表示当前的登录用户的家目录
\\ $ 提示符类型 #表示管理员 $表示普通用户
修改格式和颜色,有时候可以起到警示作用,格式为 [\\e[F;B;Sm]
F字段 表示字体,编号 30~37 黑、红、绿、黄、蓝、紫、青、白
B字段 表示背景色,编号40~47 黑、红、绿、黄、蓝、紫、青、白
S字段 表示显示的样式,0 表示关闭颜色;1 表示粗体;4 表示加下划线;5表示闪烁;7表示前后背景色互换; 8 表示隐藏
例如
[root@oracle ~]# PS1=\"\\[\\e[1;5;41;33m\\][\\u@\\h \\W]\\\\$\\[\\e[0m\\]\"
当然,还有很多特殊符号来控制和修改提示符的显示样式,包括追加系统时间、bash版本信息等。
\\e 控制符\\033 \\u 当前用户
\\h 主机名简称 \\H 主机名
\\w 当前工作目录 \\W 当前工作目录基名
\\t 24小时时间格式 \\T 12小时时间格式
! 命令历史数 # 开机后命令历史数
甚至可以加入
可执行命令
[root@oracle ~]# PS1=\"[`tty` \\t \\u@\\h \\W]\\$\"[/dev/pts/0 22:24:29 root@oracle ~]$
PS1=\"[`tty` `cat /etc/centos-release` \\t \\u@\\h \\W]\\$\"[/dev/pts/0 CentOS release 6.8 (Final) 22:28:06 root@oracle ~]$pwd/root
最后,为了保存到系统设定永久生效,可以考虑在 /etc/profile.d目录下自定义配置文件, 例如 env.sh
[root@oracle ~]# echo \'PS1=\"\\[\\e[1;36m\\][\\u]@h \\W]\\\\$\\[\\e[0m\\]\"\' >> /etc/profile.d/env.sh[root@oracle ~]# logoutConnection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(192.168.97.185) at 21:58:11.Type `help\' to learn how to use Xshell prompt.Connecting to 192.168.97.185:22...Connection established.To escape to local shell, press \'Ctrl+Alt+]\'.Last login: Mon Apr 20 16:38:00 2020 from 192.168.128.7
通过和退出会话前的对比,可以看到配置生效。