1.什么是命令提示符

  命令提示符是CLI(command-line interface,命令行界面)在人机交互的过程中提示用户可以进行命令输入的特殊符号,在Linux中普通用户的prompt为“$”,root用户的prompt为“#”。当然前面会有一些特殊的字符串。

  比如:

  dodge@linux-uqf4:~>        doge为当前用户的用户名,linux-uqf4为主机名,~表示当前目录为的dodge的主目录(或者说家目录)。

2.命令提示符有什么用呢?

  命令提示符可以给我们提示,通过修改,你可以在命令提示副里增加任何你想要得字符串,比如说时间、用户名、主机名、shell的版本当前工作目录。哪怕是一句座右铭也是可以的。

3.如何修改命令提示符呢?

  Linux系统的 bash shell 环境下通常是由 PS1 这个 bash内置变量决定主命令提示符的显示格式,我们只需要将这个变量设置成我们需要的格式就能获得我们想要的视觉效果。

  你可以通过ehco查看PS1变量

dodge@linux-uqf4:~> echo $PS1
\[$(ppwd)\]\u@\h:\w>
dodge@linux-uqf4:~>

  首先,在命令提示符里显示hello world,

dodge@linux-uqf4:~> export PS1="hello world: "
hello world: ls
bin public_html 公共 模板 视频 图片 文档 下载 音乐 桌面
hello world:

  这里你可以吧“双引号中的hello world:换成任何你想要得字符串。

  当然,在bash中定义了一些转义字符,可以用来输出特定的内容。

  
PS1 变量中我们可以使用以下一些定义好的内容,我可以使用普通字符串和这些字符的组合输出我们需要的内容:

\d      :"Wed Sep 06" 格式的日期
\t :24小时制时间
\T :12小时制时间
\@ :带有 am/pm 的 12 小时制时间
\e :ASCII转义字符
\a :ASCII 响铃字符(也可以键入 \007)
\r :回车符
\n :换行符
\h :主机名
\H :完整的主机名
\j :在此 shell 中通过按 ^Z 挂起的进程数
\l :此 shell 的终端设备名(如 "ttyp1")
\s :shell 的名称(如 "bash")
\v :bash 的版本(如 2.04)
\V :Bash 版本(包括补丁级别)
\u :用户名
\w :当前工作目录(绝对路径)
\W :当前工作目录的主文件名部分
\! :当前命令在历史缓冲区的位置
\$ :如果当前用户的 UID 是 0(即root),则插入字符#;其他用户插入字符$
\\ :反斜杠
\[ :不可打印字符串的开头
\] :不可打印字符串的结束
\nnn :八进制转义字符

  你可以把上面的内容加入你的字符串中。

  比如,我想把刚才的“hello world:”变成“hello username:”

hello world: export PS1="hello \u: "
hello dodge: ls
bin public_html 公共 模板 视频 图片 文档 下载 音乐 桌面
hello dodge:

  这是我的一个组合  export PS1='[\u@\h \W]\$ '

  当然不仅仅是如何,命令行是可以高亮现实的,就是说,我们可以改变输出字体的颜色。

  比如说,如果输入如下命令

printf '\e[1;31mHello world\e[0m\n'

  就会在命令行中输出以行红色的hello world

  我们来解析一些,首先拿出中间的hello world  ,再去掉最后的\n 转义换行。还剩下”\e[1;31m     \e[0m“

  前面的\e[1;31m 告诉命令行我要输出行红色的字,高亮显示。

   \e[0m告诉命令行,不用再输出红色的字了,该干吗干吗去吧!!

  由此可见命令行会把一些特殊的字符串序列理解成为字符输出的一些属性。

  下面我们来看一看如何,定义这些特殊的字符序列:

  

\[\e[属性;字体颜色m\]                                             #设置属性和字体颜色:
\[\033[属性;字体颜色m\] #同上 \[\e[属性;字体颜色;背景色m\] #设置属性和字体颜色和背景色
\[\033[属性;字体颜色;背景色m\] #同上 \[\e[0m\]                               #结束字符颜色输出,恢复默认颜色设置

字符颜色和背景色定义如下

前景   背景    颜色
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色

字符属性属性定义如下

代码     行为
0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见

这样我就可以通过如下命令让我的命令提示符高亮显示出来。

export PS1='[\[\e[1;37m\]\u@\h \W\[\e[0m\]]\$ '

如果每次运行命令行都要输入这样一天命令,显得特别不人性化。所以我们可以在系统登陆的时候让他自动加载不久行了么。

linux启动时,先加载/etc/profile   -->   /etc/profile  -->   /etc/profile.d/*.sh   -->   ~/.bash_profile   -->   ~/.bashrc   ->   [/etc/bashrc]

所以我们可以把命令放在~/.bashrc 里,这样就可以了。

Linux如何修改命令提示符的更多相关文章

  1. day 03Linux修改命令提示符

    day 03Linux修改命令提示符 昨日回顾 1.选择客户机操作系统: Microsoft Windows # 一次只能安装一台电脑 Linux(推荐) VMware ESX # 服务器版本VNwa ...

  2. Linux命令:修改文件权限命令chmod、chgrp、chown详解

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...

  3. Linux下修改进程名称

    catalog . 应用场景 . 通过Linux prctl修改进程名 . 通过修改进程argv[]修改进程名 . 通过bash exec命令修改一个进程的cmdline信息 1. 应用场景 . 标识 ...

  4. linux查看修改线程默认栈空间大小(ulimit -s)

    linux查看修改线程默认栈空间大小 ulimit -s 1.通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M 2.通过命令 ulimit -s 设置大 ...

  5. 【修改端口号】linux下修改apache,nginx服务端口号

    一.linux下修改apache端口号 yum安装后,apache配置文件: /etc/httpd/conf/httpd.conf 找到apache目录下的 httpd.conf, 使用vi 打开,找 ...

  6. ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 2、linux 如何修改只读文件 3、ubuntu安装

    1.ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 答案:需要超级用户权限 sudo 2.linux 如何修改只读文件 答案:可以使用chmod命令,为改文件提供其他的权限.u ...

  7. linux系统修改CST时区

    ================================================= [root@tzyyserveryg ~]# date -R Fri, 28 Nov 2014 08 ...

  8. 嵌入式 Linux下修改MAC地址

    Linux下修改MAC地址 方法一: 1.关闭网卡设备ifconfig eth0 down2.修改MAC地址ifconfig eth0 hw ether MAC地址3.重启网卡ifconfig eth ...

  9. linux vi修改后如何保存

    linux vi修改后如何保存 按ESC键去到命令模式,然后: :w?? 保存文件但不退出vi :w file 将修改另外保存到file中,不退出vi :w! 强制保存,不推出vi :wq 保存文件并 ...

随机推荐

  1. SELECT INTO 和 INSERT INTO SELECT

    做数据库开发的过程中难免会遇到有表数据备份的,而SELECT INTO……和INSERT INTO SELECT…… 这两种语句就是用来进行表数据复制,下面简单的介绍下: 1.INSERT INTO ...

  2. ubuntu win7双系统设置开机启动顺序

    ctrl+alt+t打开命令终端 sudo chmod +w /boot/grub/grub.cfg (赋予该文件写权限) sudo gedit /boot/grub/grub.cfg 将set de ...

  3. 170707、springboot编程之监控和管理生产环境

    spring-boot-actuator模块提供了一个监控和管理生产环境的模块,可以使用http.jmx.ssh.telnet等拉管理和监控应用.审计(Auditing). 健康(health).数据 ...

  4. 170509、文本编辑器编写的shell脚本在linux下无法执行的解决方法

    今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式 ...

  5. asp.net SessionState模式的配置及使用

    由于项目dll文件变动比较频繁,而保存登陆的状态又保存在Session中,所以导致用户经常无故掉线(PS:dll变动的时候导致Session).有一种方法可以长期保存session,那就是sessio ...

  6. NSString 属性为啥用copy 不用strong

     copy不能修改,strong可以修改,防止字符串被意外修改.demo: ——————————————————code 你要的 demo—————————————————— @property (n ...

  7. jquery 获取对象

    jquery 获取对象 1.引用this作为对象时,必须以$(this)的形式变为对象目标,否则,无法识别,会报错“ has no method”

  8. 【我的Android进阶之旅】解决sqlcipher库:java.lang.IllegalStateException: get field slot from row 0 col 0 failed.

    一.背景 最近维护公司的大数据SDK,在大数据SDK里面加入了ANR的监控功能,并将ANR的相关信息通过大数据埋点的方式记录到了数据库中,然后大数据上报的时候上报到大数据平台,这样就可以实现ANR性能 ...

  9. busybox,alphine,ubuntu,centos/fedore操作系统

    在docker 中搜索busybox   docker search busybox 之后我们运行一下这个系统 Alpine操作系统 3.ubuntu 之前一直都安装过,这里不再多叙述 当时用apt- ...

  10. Atom+Nuclide(Windows)开发ReactNative

    1 安装Atom,Nucilde 首先需要到官网下载Atom: 然后安装Nuclide, 重新打开Atom,会看到Nucilde的界面且菜单项会多出一个Nucilde 2 创建ReactNative ...