『忘了再学』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.变量定义 变量正确定义. 格式:变量名=" ...
随机推荐
- js技术之截取substring(int,int)
案例:把所有单词以空格为分割并将首字母转为大写 <!DOCTYPE html><html lang="en"><head> <meta c ...
- C++ | 虚拟地址空间
在 x86 32位系统下,进程的虚拟地址空间为 232 (4G)大小,其中在windows系统下4G地址空间中0x00000000-0x7FFFFFFF 是用户地址空间,0x80000000-0xFF ...
- 前端每日实战:134# 视频演示如何用 CSS 和 GSAP 创作一个树枝发芽的 loader
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/LJmpXZ 可交互视频 此视频是可 ...
- M1芯片使用cocoapods 报错[!] Oh no, an error occurred
[解决方式] 命令行1(编译): sudo arch -x86_64 gem install ffi 命令行2(安装): arch -x86_64 pod install 原出处:https://gi ...
- re模块补充与其他模块介绍
注:昨日写了re单个模块几个重要的点需要补充 一.re模块补充 1.findall独有的优先级别展示 res = re.findall('abc', 'abcabcabcabc') print(res ...
- [转载] go get 拉取第三方包过慢、卡住解决方案
修改go env,选用国内的代理地址下载.
- Python 中的鸭子类型和猴子补丁
原文链接: Python 中的鸭子类型和猴子补丁 大家好,我是老王. Python 开发者可能都听说过鸭子类型和猴子补丁这两个词,即使没听过,也大概率写过相关的代码,只不过并不了解其背后的技术要点是这 ...
- ctx.createCircularGradient is not a function
正确 const grd = ctx.createCircularGradient(75, 50, 50) grd.addColorStop(0, 'red') grd ...
- [.NET Core]ASP.NET Core中如何解决接收表单时的不支持的媒体类型(HTTP 415 Unsupported Media Type)错误呢?
[.NET Core]ASP.NET Core中如何解决接收表单时的不支持的媒体类型(HTTP 415 Unsupported Media Type)错误呢? 在ASP.NET Core应用程序中,接 ...
- js 修改页面样式的两种方式
1. element.style 行内样式操作 代码示例 : <!DOCTYPE html> <html lang="en"> <hea ...