『忘了再学』Shell基础 — 14、环境变量(二)
提示:
在Linux系统中,环境变量分为两种。一种是用户自定义的环境变量,另一种是系统自带的环境变量。
而在系统自带的环境变量中,PATH环境变量、PS1环境变量、LANG语系变量需要进行说明一下。
本篇文章主要说明系统自带的环境变量中的PS1环境变量。
1、PS1变量的作用
PS1变量:命令提示符设置。也就是[root@localhost ~]# 内容的设置。
PS1是一个很有意思的变量,是用来定义命令行提示符的,可以按照我们自己的需求来定义自己喜欢的提示符。
2、PS1变量的查看
- 直接查看PS1变量,如下:
[root@localhost ~]# echo $PS1
[\u@\h \W]\$
- 通过
set命令查看,如下图:
SP2变量是定义换行之后的命令提示符的显示。
2、PS1可以支持的选项
我们先解释一下系统命令提示符的组成[root@localhost ~]# ,我们之前说过root位置代表当前登陆的用户,localhost位置代表当前主机名的简写主机名,~位置表示当前所在目录,第四列就是命令提示符。
而通过PS1变量我们得知上面的显示组成是如下选项:[\u@\h \W]\$。
所以下面我们罗列出PS1支持的选项:
\d:显示日期,格式为星期 月 日。\H:显示完整的主机名。如默认主机名localhost.localdomain。\h:显示简写主机名。如默认简写主机名localhost。\t:显示24小时制时间,格式为HH:MM:SS。\T:显示12小时制时间,格式为HH:MM:SS。\A:显示24小时制时间,格式为HH:MM。\@:显示12小时制时间,格式为HH:MM am/pm。\u:显示当前用户名。\v:显示Bash的版本信息。\w:显示当前所在目录的完整名称。\W(大写):显示当前所在目录的最后一个目录。\#:执行的第几个命令。\$:提示符。如果是root用户会显示提示符为#,如果是普通用户会显示提示符为$。
注意:
在PS1变量中,如果是可以解释的符号,如
\u、\h等,则显示这个符号的作用。如果是不能解释的符号,如@或“空格”,则原符号输出。
总结:
# 默认的提示符显示
# [用户名@简写主机名 所在目录最后一级] 提示符
[root@localhost ~ ] # echo $PS1
[\u@\h \W]\$
3、PS1环境变量的配置
其实我们在使用Linux系统的时候,还是比较习惯的默认的系统命令提示符的配置,也就是PS1变量的默认配置,一般我们是不做任何修改的,因为我们习惯了,修改了之后你会不舒服。如有需要,则看一下。
设置PS1环境变量,如下:
#修改提示符为
#[用户名@当前时间 当前所在完整目录] 提示符
[root@localhost ~ ] # PS1='[\u@\t \w]\$ (空格)'
# (空格)是因为习惯,看着舒服,不是必须。
#切换下当前所在目录
#因为家目录是看不出来区别的
[root@04:46:40 ~ ] # cd /usr/local/src/
[root@04:47:29 /usr/local/src] #
#提示符按照我们的设计发生了变化
这里一定要注意,PS1变量的值要用单引号包含,因为需要把PS1变量的选项中的特殊符号转变成普通的字符串(主要是$符号),否则设置不生效。系统默认也是单引号设置的,你照着写就可以了。
扩展:再举个例子。
#可以同时给SP1设置更多的选项
[root@localhost ~ ] # PS1='[\u@\@ \h \# \W]\$ '
[root@04:53 上午 localhost 31 src] #
#\@:显示12小时制时间,格式为HH:MM am/pm。
#\#:会显示执行了多少个命令。
PS1变量可以自由定制,不过说实话,默认的提示符已经使用习惯了,如果换一个还是非常别扭的,推荐默认的提示符就很好。
4、总结
我们上边在命令行中直接定义PS1变量的值是临时生效的,一旦重启电脑就会消失,如果需要永久生效,需要写入到对应的配置文件中的。
对应的配置文件为/etc/bashrc,该文件也是一个环境变量的配置文件。
如下图:

注意看图中SP1变量的配置,是加双引号的,需要在\$之前再加上一个\,才能正常显示\$。
『忘了再学』Shell基础 — 14、环境变量(二)的更多相关文章
- 『忘了再学』Shell基础 — 11、变量定义的规则和分类
目录 1.定义变量的规则 2.变量的分类 1.定义变量的规则 在定义变量时,有一些规则需要遵守 变量名称可以由字母.数字和下划线组成,但是不能以数字开头.如果变量名是2name则是错误的. 在Bash ...
- 『忘了再学』Shell基础 — 21、变量的测试与内容置换
目录 1.什么是变量的测试与内容置换 2.变量的测试与内容置换 3.示例 例1: 例2: 例3: 1.什么是变量的测试与内容置换 我们之前说过,在Shell中,一个变量未定义,和一个变量为空值的输出效 ...
- 『忘了再学』Shell基础 — 13、环境变量(一)
目录 1.用户自定义的环境变量 (1)环境变量设置 (2)查询自定义环境变量 (3)删除自定义环境变量 2.系统自带的环境变量--PATH环境变量 (1)PATH环境变量 (2)PATH环境变量的作用 ...
- 『忘了再学』Shell基础 — 22、主要的环境变量配置文件说明
目录 1.source命令 2.Linux系统中环境变量配置文件 (1)登录时生效的环境变量配置文件 (2)/etc/profile环境变量配置文件 (3)/etc/profile.d/*.sh环境变 ...
- 『忘了再学』Shell基础 — 10、Bash中的特殊符号(二)
提示:本篇文章接上一篇文章,主要说说()小括号和{}大括号的区别与使用. 8.()小括号 ():用于一串命令执行时,()中的命令会在子Shell中运行.(和下面大括号一起说明) 9.{}大括号 {}: ...
- 『忘了再学』Shell基础 — 4、Bash基本功能(history命令)
目录 1.history历史命令 2.设置命令历史记录的条数 3.清空历史命令 4.历史命令的调用 5.命令与文件的补全 在Linux系统中默认的Shell就是Bourne-AgainShell(简称 ...
- 『忘了再学』Shell基础 — 23、其他环境变量配置文件
目录 1.注销时生效的环境变量配置文件 2.其他配置文件 3.Shell登录信息相关文件 (1)/etc/issue文件说明 (2)/etc/issue.net文件说明 (3)/etc/motd文件说 ...
- 『忘了再学』Shell基础 — 5、Bash基本功能(命令的别名和常用快捷键)
目录 1.给命令设置别名 (1)设置别名的命令格式 (2)命令别名永久生效 (3)别名的优先级 2.Bash常用快捷键 1.给命令设置别名 Linux系统的命令别名我们之前已经说过了,这里再过一边. ...
- 『忘了再学』Shell基础 — 12、用户自定义变量
目录 1.变量定义 2.变量调用 3.变量的修改 4.查看变量 (1)-u选项说明: (2)-x选项说明: (3)set命令说明: 5.变量删除 1.变量定义 变量正确定义. 格式:变量名=" ...
随机推荐
- printf()函数压栈a++与++a的输出
printf()中a++与++a的输出问题 在C语言中有个很常用的函数printf(),使用时从右向左压栈,也就是说在printf("%d %d %d %d\n",a,a++,++ ...
- 前馈控制+PID
参考来源: 北京交通大学 硕士学位论文 基于脉冲串控制的含位置反馈和前馈补偿的位置控制算法的研究 赵旺升
- web入门+书籍推荐
如果你想建立一个自己的网站,你可以从网上搜到许多的教程:比如 wordpress gitpages 等等. 如果你想了解这个框架是怎么工作的,你可以了解以下下面的三个基本概念: 服务器, 数据库, 前 ...
- es6-Set与Map
se5中的set与map 在est5中开发者使用对象属性来模拟.set多用于检查键的存在,map多用于提取数据. { let set = Object.create(null) set.foo = t ...
- c++实现中介者模式--虚拟聊天室
内容: 在"虚拟聊天室"实例中增加一个新的具体聊天室类和一个新的具体会员类,要求如下: 1. 新的具体聊天室中发送的图片大小不得超过20M. 2. 新的具体聊天室中发送的文字长度不 ...
- java中如何知道一个字符串中有多少个字,把每个字打印出来,举例
9.6 About string,"I am ateacher",这个字符串中有多少个字,且分别把每个字打印出来. public class Test { static i ...
- three车辆自由转弯(vue 极品飞车)
//最近没有时间整理代码,就这样吧 <template> <div> <div id="map"></div> </div&g ...
- 安装scrapy速度慢解决方案
使用终端pip安装scrapy龟速 解决方案: 使用清华源下载 清华园链接 https://mirrors.tuna.tsinghua.edu.cn/help/pypi/ win+R打开cmd 输入p ...
- FreeRTOS+CubeMX编程实践
一.关于FreeRTOS 1.什么是FreeRTOS? FreeRTOS是一个轻量级的操作系统.FreeRTOS提供的功能包括:任务管理.时间管理.信号量.消息队列.内存管理.记录功能等,可基本满足较 ...
- 帝国CMS 给简介字段添加一键排版按钮
帝国CMS后台->管理数据表->选择数据表>打开smalltext字段输入表单替换html代码 添加如下代码: <script> function format() { ...