当前位置: 首页 > news >正文

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

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

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

tc@box:/$

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

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

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

 例如:

tc@box:~$ echo $0

sh

tc@box:~$ echo $PS1

\u@\h:\w\$

在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"

复制代码

http://www.lryc.cn/news/181412.html

相关文章:

  • vue-引入使用main.js全局常量
  • 【C语言】【动态内存管理】malloc,free,calloc,realloc
  • Linux性能优化--性能工具-系统CPU
  • Ipython和Jupyter Notebook介绍
  • 数列极差(c++题解)
  • 面试题:熟悉设计模式吗?谈谈简单工厂模式和策略模式的区别
  • Windows + Git + TortoiseGit + Github
  • MySQL数据库索引练习
  • mysql面试题10:MySQL中有哪几种锁?表级锁、行级锁、页面锁区别和联系?
  • ctfshow—1024系列练习
  • javaWeb学生信息管理
  • 玩转gpgpu-sim 04记—— __cudaRegisterBinary() of gpgpu-sim 到底做了什么
  • S-Clustr(影子集群)僵尸网络@Мартин.
  • 认识PostgreSQL
  • 基本的五大排序算法
  • 封装api的理解
  • Unity实现设计模式——命令模式
  • 四、YApi的安装和配置
  • JAVA学习(2)-全网最详细~
  • MySQL学习笔记27
  • 数据结构与算法之字典: Leetcode 76. 最小覆盖子串 (Typescript版)
  • 2023-10-03 VsCode诡异消失事件
  • elementPlus表格组件el-table实现只能同时选择一行,全选按第一行处理
  • 栈的应用场景(三)
  • leetCode 45.跳跃游戏 II 贪心算法
  • 【MATLAB-基于直方图优化的图像去雾技术】
  • 读书笔记|《数据压缩入门》—— 柯尔特·麦克安利斯 亚历克斯·海奇
  • Pandas进阶修炼120题-第五期(一些补充,101-120题)
  • NPDP产品经理知识(产品创新管理)
  • Flutter+SpringBoot实现ChatGPT流实输出