首页 > 系统相关 >Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)

Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)

时间:2023-10-19 12:06:28浏览次数:45  
标签:shell 主机名 命令行 Linux 格式 PS1 提示符


一、命令行提示符格式内容因shell类型而异

Linux终端命令行提示符内容格式则因shell的类型而异,例如CoreLinux默认的shell是sh,其命令行提示符为黑底白字,内容为:

tc@box:/$

Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)_笔记

其中,tc为当前用户名,box为主机名,/为当前目录路径,$表示当前用户类型是普通用户 。 

二、环境变量PS1存储了命令行提示符格式内容

Linux中的环境变量PS1记录了当前命令行提示符的格式和内容,我们可以用echo命令来查看。

 例如:

tc@box:~$ echo $0

sh

tc@box:~$ echo $PS1

\u@\h:\w\$

Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)_学习_02

在CoreLinux中,默认的shell是sh,它的默认格式是:\u@\h:\w\$,其中使用了很多转义字符,这些转义字符在命令行提示符中可以扩展为对应的系统参数,有各自的含义:

\u:扩展为当前用户名

\h:扩展为当前主机名(仅取主机的第一个名字)

\H :扩展为当前主机的完整名称

\w:扩展为完整的当前工作目录路径

\W:扩展为工作目录路径中的最后一个目录

\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
\t :扩展当前系统时间为24小时格式,如:HH:MM:SS
\T :扩展当前系统时间为12小时格式
\A :扩展当前系统时间为24小时格式:HH:MM
\v :扩展为当前shell的版本信息,有些shell不支持,例如sh
\# :扩展为下达的第几个命令
\$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$震

需要说明的是,并不是所有的shell都支持以上转义字符。

提示符这样设置的本义是充分利用命令行提示符的提示功能,让我们对自己所用的终端现状一目录了然,特别是\w,可以让我们直观地看到自己所在的工作目录,不用再输入pwd命令来查询当前工作目录了,这点在DOS上体现得特别明显。

三、通过环境变量$PS1改变命令行提示符内容

作为教学示例,有时我们不想显示自己系统的真实情况,比如用户名和主机名,那么我们可以使用export命令修改PS1的值来隐藏这些信息,例如:

tc@box:~$ export $PS1="user@myhost: \w $"

user@myhost: ~$

这样一来,不管我们的真实用户名和主机名是什么,从命令行提示符上看到的用户名就是user,主机名就是myhost,当前用户就是普通用户($).。

四、通过环境变量$PS1改变命令行提示符颜色

PS1中设置字符颜色的格式为:\[\e[F;Bm\] ……\e[m,其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。颜色表如下:

F       B          颜色

30    40    黑色
31    41    红色
32    42    绿色
33    43    黄色
34    44    蓝色
35    45    紫色
36    46    青色
37    47    白色

最后的 \e[m 表示结束颜色设置。

根据颜色表,套用入字符颜色设置格式中,就可以对linux终端命令行颜色进行个性化设置了。

例如要设置命令行提示符颜色为紫色字体,青色背景, 从命令行提示符上看到的用户名就是user,主机名就是myhost,当前用户就是普通用户($),可以使用以下命令:

PS1="\[\e[F35;46\]user@myhost: \w $\e[m"

Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)_命令行提示符_03



标签:shell,主机名,命令行,Linux,格式,PS1,提示符
From: https://blog.51cto.com/endurer/7934059

相关文章

  • Linux账号密码安全策略设置
    前言随着云计算厂商的兴起,云资源如ECS不再只有企业或者公司才会使用,普通人也可以自己买一台ECS来搭建自己的应用或者网站。虽然云计算厂商帮我们做了很多安全相关的工作,但并不代表我们的机器资源就绝对是安全的。要知道有很多事情是云计算厂商不能为我们做的,就比如账号密码的安全......
  • Linux I/O schedulers类型简介
    I/Oschedulersattempttoimprovethroughputbyreorderingrequestaccessintoalinearorderbasedonthelogicaladdressesofthedataandtryingtogroupthesetogether.WhilethismayincreaseoverallthroughputitmayleadtosomeI/Orequestswaitin......
  • Linux的Namespace,cgroup,chroot和docker的本质
    Linux的Namespace,cgroup,chroot和docker的本质-陈映峤的博客|LerkoBlog(chenyingqiao.github.io)chroot,即changerootdirectory(更改root目录)。在linux系统中,系统默认的目录结构都是以 /,即是以根(root)开始的。而在使用chroot之后,系统的目录结构将以指定的位......
  • Linux-expect(以交互形式输入命令,实现交互通信)
    1.expect简介expect是一种脚本语言,它能够代替人工实现与终端的交互,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。安装命令:yuminstallexpect; 2.expect使用场景(1)并根据预定标准回答其问题,回答“是”、“否”或将控制权交还给您(2)远程连接设备......
  • Linux-shell脚本使用ssh远程执行命令通过密码的方式登录
    1. sshpass简介sshpass是一个在非交互式ssh会话中自动输入密码的工具。它可以直接在命令行中指定密码,因此可以用于Shell脚本等自动化场景。在RedHat系统中,可以通过epel-release源安装sshpass。epel-release源是ExtraPackagesforEnterpriseLinux(EPEL)的缩写......
  • Linux-Shell 小数运算,四舍五入
    在shell中做小数运算,可以借助bc或者awk工具一、使用bc做小数运算,scale指定小数点位数1、加法运算(scale参数无效)#echo"5.999+5.001"|bc6.000#echo"5.111+5.1114"|bc10.2224运算结果小数点位数以加数中最大的为准 2、减法运算(scale参数无效)  同加法运算  运算......
  • 配置自定义服务为linux系统服务
    背景使用go语言写了一个测试环境部署上报的备份服务,以防因为主服务挂了影响部署操作。 想把这个backup服务设置了系统服务,如果因环境重启等异常,可以自动重启使用的环境的Centos71、首先需要创建一个systemdunit存储配置文件[Unit]Description=deployreportbackupse......
  • linux应急处置
    实战手把手教你,Linux服务器应急处置教学小编 CyberTorres 2023-10-0914:48 发表于广东收录于合集#linux1个#服务器1个#技术分享2个当你负责的服务器被黑了,怎么办?没遭遇过如此大风大浪的运维人员:哦,**!我该怎么办,点根香烟冷静一下。Wait!小编请您先切断网络,再......
  • 你是否还迷茫要不要学习Linux?
    近几年Linux这个词好像很流行,无论是现实工作中,还是在网络信息中均可以听到或者看到有关Linux相关的内容,可以说Linux无处不在。说到这,有人可能会问了,我对Linux比较感兴趣,但是没有接触过Linux,对它不了解,不知道是否适合自己,是否值得我花费时间和经历去深入学习,因此陷入一种比较迷茫的......
  • [ Linux ] 手动放行端口
    https://www.cnblogs.com/yeungchie/在云服务商的网页端操作防火墙会不生效,不清楚原因。可以用下面的命令来手动放行端口。iptables-tnat-IPREROUTING-ptcp--dport$port-mstate--stateNEW-jACCEPTiptables-PFORWARDACCEPT......