Linux_Linux命令行提示符配置

2023-05-16

源址:http://liuhongjiang.github.io/hexotech/2013/01/16/shell-prompting/

linux下shell提示符可以任意配置的。

首先看看bash的配置文件,一般在用户的HOME目录下有这样几个文件1

  • .bash_history :记录了您以前输入的命令,
  • .bash_logout :当您退出 shell 时,要执行的命令,
  • .bash_profile :当您登入 shell 时,要执行的命令,
  • .bashrc :每次打开新的 shell 时,要执行的命令。

这些文件是每一位用户的设置。系统级的设置存储在’/etc/profile’、‘/etc/bashrc’及目录’/etc/profile.d’下的文件中。但您得习惯用各自的配置文件:编辑不需要’root’权限,还可以使您的设置更有个性。当系统级与用户级的设置发生冲突时,将采用用户的设置。

每次当您打开一个控制台(console)或 xterm 时,最先看到的就是提示符(prompt),类似于:


1
  

account@hostname ~ $
  

在默认设置下,提示符将显示您的用户名、主机名(默认是’localhost’)、当前所在目录(在Unix中,‘~’表示您的home目录)。 按照传统,最后一个字符可以标识您是普通用户($),还是’root’(#)。 您可以通过 $PS1$PS2 变量来设置提示符,$PS2是当在多行内输入一个命令时,换行后,出现的提示符。命令


1
2
3
4
  

andrew@ubuntu:~/lhj-github/tech$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
andrew@ubuntu:~/lhj-github/tech$ echo $PS2
>
  

将显示当前的设定。其中可用字符的含义在 man bash 的’PROMPTING’部分有说明,PROMPTING部分的翻译


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  

提示符(PROMPTING)
    在 交互执行时, bash 在准备好读入一条命令时显示主提示符 PS1,在需要更多的输入来完成一条命令时显示 PS2。 Bash 允许通过插入一些反斜杠转义的特
    殊字符来定制这些提示字符串,这些字符被如下解释:
        \a     一个 ASCII 响铃字符 (07)
        \d     日期,格式是 "星期 月份 日" (例如,"Tue May 26")
        \D{format}
               format 被传递给 strftime(3),结果被插入到提示字符串中;空的 format 将使用语言环境特定的时间格式。花括号是必需的
        \e     一个 ASCII 转义字符 (033)
        \h     主机名,第一个 ‘.’ 之前的部分
        \H     主机名
        \j     shell 当前管理的作业数量
        \l     shell 的终端设备名的基本部分
        \n     新行符
        \r     回车
        \s     shell 的名称, $0 的基本部分 (最后一个斜杠后面的部分)
        \t     当前时间,采用 24小时制的 HH:MM:SS 格式
        \T     当前时间,采用 12小时制的 HH:MM:SS 格式
        \@     当前时间,采用 12小时制上午/下午 (am/pm) 格式
        \A     当前时间,采用 24小时制上午/下午格式
        \u     当前用户的用户名 the username of the current user
        \v     bash 的版本 (例如,2.00)
        \V     bash 的发行编号,版本号加补丁级别 (例如,2.00.0)
        \w     当前工作目录
        \W     当前工作目录的基本部分
        \!     此命令的历史编号
        \#     此命令的命令编号
        \$     如果有效 UID 是 0,就是 #, 其他情况下是 $
        \nnn   对应八进制数 nnn 的字符
        \\     一个反斜杠
        \[     一个不可打印字符序列的开始,可以用于在提示符中嵌入终端控制序列
        \]     一个不可打印字符序列的结束

    命令编号和历史编号通常是不同的:历史编号是命令在历史列表中的位置,可能包含从历史文件中恢复的命令 (参见下面的 HISTORY 历史章节),而命令编 号
    是 当 前 shell 会话中执行的命令序列中,命令的位置。字符串被解码之后,它将进行扩展,要经过 parameter expansion, command substitution, arith‐
    metic expansion 和 quote removal, 最后要经过 shell 选项 promptvars 处理 (参见下面的 shell 内建命令(SHELL BUILTIN COMMANDS) 章节中,对 命 令
    shopt 的描述)。
  

例如一个默认的$PS1设置如下:


1
2
3
4
5
6
7
8
  

andrew@ubuntu:~/lhj-github/tech$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
``` 

前面这部分`${debian_chroot:+($debian_chroot)}`是ubuntu一种特殊的运行程序的方式,可以参考[^3][^4],和我们要讲的内容没有什么关系。后面这部分`\u@\h:\w\$`就是shell prompting的配置了,可以根据上面的内容翻译出来。我现在的这个配置,显示出来就像这个样子了:

``` bash
andrew@ubuntu:~/lhj-github/tech$
  

当然还可以配置颜色,首先来看ascii字符颜色表23

|— | 前景 | 背景 | 颜色 | | - | - | - | |30 | 40 | 黑色 |31 | 41 | 紅色 |32 | 42 | 綠色 |33 | 43 | 黃色 |34 | 44 | 藍色 |35 | 45 | 紫紅色 |36 | 46 | 青藍色 |37 | 47 | 白色 {: .mytable}


|— | 代码 | 意义 | - | - | |0 | OFF |1 | 高亮显示 |4 | underline |5 | 闪烁 |7 | 反白显示 |8 | 不可见 {: .mytable}

然后就可以设置prompting的颜色了,最简单的方法是在HOME目录下的.bashrc文件添加以下配置(这种方法只会影响当前用户), 例如我现在的设置为


1
  

export PS1="\w\e[32m\$ \e[0m"
  

前面部分\e[32m是设置提示符的颜色,后面的\e[0m是恢复后面命令行输入输出的颜色,如果不用这个的话,所有的输入输出都会受到影响。

当然也可以配置一个多个属性的,只需要用分号隔开就可以了,这是一个例子:


1
  

export PS1="\w\e[32;40;4;1;7m\$ \e[0m"
  

我使用的是ubuntu server 64 12.04,shell用的是bash,在配置的过过程中,唯独只有闪烁功能好像没有起作用,如果有朋友解决了这个问题麻烦给我说一下。

在学习这个的过程中,我还找到了一篇关于提示符配置的不错的博文,大家也可以阅读一下。

python 输出有颜色的字符

也可以使用python输出有颜色的字符,下面是例子代码


1
2
  

print '\033[43;32m{0}\033[0m'.format("yellow background, green font")
print '\033[42;31m{0}\033[0m'.format("green background, red font")
  

  1. linux shell简介(3)↩

  2. http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=54256↩

  3. http://www.chinaunix.net/old_jh/6/54256.html↩

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux_Linux命令行提示符配置 的相关文章

  • Word to PDF Converter v3.0 算法分析及注册机

    Word to PDF Converter v3 0算法分析及注册机 详细过程 1 xff0c 主程序在C Program Files doc2pdf DOC2PDF dll xff0c PEID查壳为ASProtect 1 23 RC1
  • Debian11连不上网络问题

    有时候可以连上 xff0c 有时候就连不上 连不上的时候 xff0c 使用ifconfig命令 xff0c 只能看到回环接口 xff0c 看不到分配的网络IP地址 最后终于解决了 xff0c 记录一下 xff0c 以防之后出现同样的问题 1
  • 安全策略调整步骤

    1 修改防火墙 xff0c 保留22 SSHD 8081 APACHE 80 关闭端口443 HTTPS 3306 MYSQL 8080 8088 53 123 2 针对PHP的BUG和安全漏洞 xff0c 只有升级版本一途 xff0c 经
  • 获取微信openid(或昵称头像)的授权登录及其代理

    lt php 本页用于微信授权登录及其代理 64 version V2 0 64 author ty1921 lt ty1921 64 gmail com gt 64 param backurl 传get参数backurl xff0c 则授
  • 常用的PHP文件头和HTML5文件头(含移动端)

    lt php PHP Header Created by ty1921 64 gmail com Ver V1 Date 2017 8 18 1 session session start 2 display errors ini set
  • VB+PHP实现在线修改Windows服务器的配置文件

    本文仅供记录 存档备案用 用途 xff1a 某电话转接系统 xff0c 需要每天修改配置文件 并重启服务端程序 原理 xff1a WEB用于展示修改界面 xff0c 提交 保存配置文件的相关数据 VB端用于定时轮训WEB上保存的数据 xff
  • 按键精灵的5级开发认证,笔试题参考

    4题是抄的 xff0c 只是为了过级 最后得93分 xff0c 可能代码还是不够最优 xff0c 有看出的大大希望能不吝指点 1 写一个脚本 xff0c 要求启动时 xff0c 记录 xff08 录制 xff09 当前鼠标的移动轨迹 xff
  • Linux for Ubuntu用gdebi安装deb文件

    在bantu中安装deb文件有时很不方便 xff0c 通常默认用的安装器并效果并不理想 xff0c 有时用命令吧 xff0c 太多又繁琐 所以有个软件叫GDebi xff0c 可以更加有效的帮助安装deb 首先安装gdebi程序 xff0c
  • Xshell连接后又断开问题(Disconnected from remote host)

    Last login Fri Nov 1 12 36 08 2019 from 10 0 1 25 Connection closed by foreign host Disconnected from remote host 20 0 0
  • ubuntu-16.04.6安装教程

    下载Ubuntu16 04 xff08 1 xff09 下载地址 xff1a http releases ubuntu com 16 04 记得要下载iso文件如 ubuntu 16 04 desktop amd64 iso xff0c 3
  • Hive安装详细步骤

    一 下载hive 下载hive 地址 xff1a http mirror bit edu cn apache hive 二 安装mysql 执行以下几个命令安装8 0版本mysql 1 下载MySQLyum源 xff08 8 0版本的 xf
  • LL(1)文法的语法分析java实现

    java代码如下 xff1a package 文法分析器 import java io BufferedReader import java io FileInputStream import java io InputStreamRead
  • CSDN,我的良师益友

    鲁迅曾说过 xff1a 不是缺乏天才 xff0c 而是缺乏培养天才的土壤 对于中国的 IT 行业来说 xff0c 从来不缺乏技术英雄 xff0c 缺少的是铸就技术英雄的平台 而 CSDN 就给了我们这样一个平台和机会 xff0c 所以我们是
  • 构造中小型园区网实训案例

    构造中小型园区网实训案例 一 实验工具与实验拓扑规划1 实验工具2 实验拓扑 二 需求分析三 数据规划四 实施步骤步骤1 xff1a 配置所有终端步骤2 xff1a 配置所有接入层交换机步骤3 xff1a 配置网关路由器AR1 公网路由器A
  • 软件工程复习

    第一章 xff1a 课程概述 1 1 软件危机 1 1 1 计算机软件的四个发展阶段 程序设计阶段 程序系统阶段 软件工程阶段 面向对象阶段 1 1 2 什么是软件危机 xff08 考点 xff09 软件危机是指在计算机软件的开发和维护过程
  • ArrayDeque底层实现

    一 什么是ArrayDeque 1 Deque与Queue 了解这个之前 xff0c 我们要先知道什么是Deque xff0c 它和Queue有什么区别 xff1a 在java中 xff0c Queue被定义成单端队列使用 xff0c De
  • Hive知识点汇总

    HIVE 一 Hive的优化 数据倾斜 xff1a shuffle之后Key的分布不均导致分配到Reduce端的数据不均匀 xff0c 出现个别Reduce的数据过大 xff0c 执行时间过长而出现的现象 1 数据倾斜产生的原因 xff1a
  • CentOS7安装与克隆

    CentOS7安装与克隆 一 新建虚拟机及其配置二 配置虚拟网络编辑器三 安装CentOS 7四 一些工具的安装五 虚拟机克隆六 虚拟机克隆后的配置七 配置ssh免密登陆八 批处理脚本与集群分发脚本1 将家目录配置进环境变量2 批处理脚本3
  • NGINX ./configure详解

    在 34 configure 34 配置中 xff0c with 34 表示启用模块 xff0c 也就是说这些模块在编译时不会自动构建 without 34 表示禁用模块 xff0c 也就是说这些模块在编译时会自动构建 xff0c 若你想N
  • Linux下Nginx安装使用

    一 下载解压nginx span class token comment 进入要放安装包的目录 span span class token builtin class name cd span opt software span class

随机推荐

  • java Collections类 详解

    目录 一 前言 二 Collections类简介 三 Collections类常用方法演示 1 static void reverse List list 代码演示 2 static void shuffle List list 代码演示
  • Activity onNewIntent注意事项

    数据上报发现 xff0c onNewIntent 以后 xff0c onResume和onPause可能不会执行 xff0c 直接执行onStop
  • Python+OpenCV实用案例应用教程:人脸检测和识别

    计算机视觉使很多任务成为现实 xff0c 其中两项任务就是人脸检测 xff08 在图像中定位人脸 xff09 和人脸识别 xff08 将人脸识别为特定的人 xff09 OpenCV实现了一些人脸检测和识别的算法 从安全到娱乐 xff0c 这
  • 基数排序 详细讲解

    1 基数排序 桶排序 介绍 基数排序 xff08 radix sort xff09 属于 分配式排序 xff08 distribution sort xff09 xff0c 又称 桶子法 xff08 bucket sort xff09 或b
  • CentOS7安装docker后服务启动不了

    问题排查 运行yum install docker后 xff0c 安装完成docker 运行 docker info 命令测试docker是否正常 则提示以下错误 xff1a Cannot connect to the Docker dae
  • Linux命令+shell脚本大全:处理损坏的包依赖关系

    有时在安装多个软件包时 xff0c 某个包的软件依赖关系可能会被另一个包的安装覆盖掉 这叫作 损坏的包依赖关系 xff08 broken dependency xff09 如果系统出现了这个问题 xff0c 先试试下面的命令 xff1a y
  • 世界上最简单的无锁哈希表

    英文原文 xff1a preshing xff0c 感谢 64 浅水清流 的热心翻译 如果其他朋友也有不错的原创或译文 xff0c 可以尝试推荐给伯乐在线 以下是译文 无锁哈希表 xff08 Lock Free Hash Table xff
  • nginx ssl及http自动跳转到https配置

    1 Nginx路径配置 如下请求地址 http x x x x 8080 api base test 此时 zo java这个应用接收到的地址是 xff1a http x x x x 8080 api base test location
  • 视图绑定.

    在大多数情况下 xff0c 视图绑定会替代 findViewById 视图绑定功能可按模块启用 要在某个模块中启用视图绑定 xff0c 请将 viewBinding 元素添加到其 build gradle 文件中 xff0c 如下例所示 x
  • 优秀程序员的故事

    A君默默的工作了3年 xff0c 从项目初立 xff0c 到遍地开花 工作不忙 xff0c 工资没长 新领导来了 xff0c 下个版本重新开发 xff0c A君继续维护老版本 新招了一批人 xff0c 加班加点干了半年多 直到版本发布 xf
  • Synchronized锁

    1 Synchronized基本特性回顾 应用场景 xff1a 多线程环境下保证线程的安全性 使用方式 xff1a 1 xff09 Synchronized加在普通方法上 xff0c 使用的是this锁 xff0c 也就是当前对象 2 xf
  • HC-05无底板蓝牙模块连接51单片机,配置,安卓连接传输数据测试程序

    买个蓝牙模块以为是HC 06 xff0c 没有底板 xff0c 测试半天反应 xff0c 后面才发现是HC 05 xff0c HC 05和HC 06的测试方法稍有不同 一 HC 05蓝牙模块连线 先上一个自己的接线 xff08 有点丑 xf
  • java.io.StreamCorruptedException: invalid stream header: 异常

    使用java的对象流出现java io StreamCorruptedException invalid stream header异常 原因是数据发送端发送对象到接收端 接收端对于同一个输入流创建了不同的对象输入流 xff0c 而后用不同
  • insmod: ERROR: could not insert module xxxxx.ko: Unknown symbol in module

    有可能是该模块的相关依赖没有加载 先执行命令 xff1a modinfo xxxx ko 查看 depends xff1a 所依赖的模块 先加载依赖模块 xff0c 然后加载xxxx ko模块
  • Mondo Rescue ---FATALERROR--- Failed to generate boot+data disks

    使用Mondo Rescue制作CentOS7的IOS镜像的时候报错 Mindi failed to create your boot 43 data disks Fatal error Failed to generate boot 43
  • 【Git】常用命令commit提交,push推送,merge,添加分支branch

    一 常用操作 xff1a 1 添加跟踪文件 git add 或 git add A 根据ignore的配置 xff0c 添加跟踪文件 xff0c 其中的 或 A表示添加所有更改过的文件 2 查看状态 git status 3 提交到本地 x
  • Python项目打包成wheel笔记

    详情参考 xff1a https setuptools readthedocs io en latest setuptools html Python项目可以使用命名 pip install 包名 安装Python包 xff0c 可以将自己
  • CentOS 网桥配置,静态IP配置

    1 网桥配置 CentOS 网络配置文件在以下目录 ls etc sysconfig network scripts 假设配置文件为ifcfg enp1s0 cp etc sysconfig network scripts ifcfg en
  • UEFI启动,安装CentOS7报错tsc: Fast TSC calibration failed

    安装CentOS7系统报错 tsc Fast TSC calibration failed 多的不说 xff0c 选择Boot启动时有 USB SanDisk和UEFI xff1a SanDisk xff0c Partition 4 xff
  • Linux_Linux命令行提示符配置

    源址 xff1a http liuhongjiang github io hexotech 2013 01 16 shell prompting linux下shell提示符可以任意配置的 首先看看bash的配置文件 xff0c 一般在用户