pwd

pwd是“print working dictionary”缩写,即打印当前目录。

参数

参数 作用
-L 默认会带这个参数,显示逻辑路径
-P 如果当前目录路径是软连接文件,则会显示软链接文件对应的原文件

环境变量

想获取当前路径也可以通过环境变量来获取

1
2
# 注意这里PWD大写
echo $PWD

常用命令

1
2
3
4
5
# 及其常用
pwd

# 其实也不怎么常用~~
pwd -P

PS1

其实在bash的命令提示符就能看到当前用户、目录信息,那么这个东西能不能自定义呢?当然是可以的,就是通过PS1环境变量来实现。

1
2
3
4
# 命令行中可以通过命令获得PS1结果
echo $PS1
# 默认值为
'[\u@\h \W]\$ '

格式控制详解

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
'[\u@\h \W]\$ '
# '[', ']'表示普通字符,对应样式中的'[', ']'
# '\u'代表当前bash的用户名
# '\h'代表当前的主机名(只显示第一个名字)
# '\W'代表当前工作目录名称
# '\$'是提示字符,当前用户为root用户时,会显示为'#',为普通用户时,会显示为'$'
# ' '是空格字符,样式中也显示为空格

# 其他转义字符
# '\d': 日期
# '\t': 24小时格式时间 HH:MM:SS
# '\T': 12小时格式时间
# '\A': 12小时格式时间 HH:MM
# '\H': 完整的主机名称
# '\v': 当前BASH的版本信息
# '\w': 当前完整的工作目录名称,家目录在显示时会以'~'代替


# 颜色设置
# '\e[?m': 设置颜色,?处填写数字代表颜色
# '\e[m': 取消颜色设置
# '\[\e[?m\]': 这部分放在字符串左边用来控制其后显示的字符串的前景色
# '\[\e[?;?m\]': 同上,第一个?号表示前景色,第2个?表示背景色

# 综上字符显示的控制格式为: '\[ \e[A;F;Bm \]',此设置会对其后字符串生效
# A代表加粗、下划线样式,编号0-8
# F代表字体颜色值,编号30-37
# B代表背景颜色值,编号40-47
# 如果不想有某样式,直接省略即可

编号对应格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 字体样式A:编号0-7
# 0 关闭所有属性
# 1 高亮显示
# 2 所有字符都有下划线
# 3 斜体
# 4 用户输入输出带有下划线
# 7 反显,有字符的地方有背景

# 字体F、背景B颜色
# F B Color
# 30 40 black
# 31 41 red
# 32 42 green
# 33 43 yellow
# 34 44 blue
# 35 45 purple-red
# 36 46 green-blue
# 37 47 white

常用 PS1 格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 初始情况
PS1='[\u@\h \W]\$ '
# 去掉中括号>>>
PS1='\u@\h \W\$ '
# 字体颜色变为紫红色并高亮显示
PS1='\[\e[1;35m\]\u@\h \W\$ '
# 仅让\u@\h(用户名@主机名第一个名字)紫红色高亮显示
PS1='\[\e[1;35m\]\u@\h\[0m\] \W\$ '
# 在此基础上让当前目录字体(非高亮)显示黄色
PS1='\[\e[1;35m\]\u@\h\[\e[0m\] \[\e[33m\]\W\$ '
# 在主机名之后加冒号(无颜色设置)并将当前目录替换成完整目录 'W'-> 'w'
PS1='\[\e[1;35m\]\u@\h\[\e[0m\]:\[\e[33m\]\w\$ '
# 让当前目录颜色不要影响到$的颜色
PS1='\[\e[1;35m\]\u@\h\[\e[0m\]:\[\e[33m\]\w\[\e[0m\]\$ '
# 让$显示为蓝色,且不影响到后面的命令
PS1='\[\e[1;35m\]\u@\h\[\e[0m\]:\[\e[33m\]\w\[\e[0m\]\[\e[34m\]\$\[\e[0m\] '

如果想PS1的设置永久有效,可以在/etc/profile或.bashrc文件里进行设置,然后打开一个新的终端就会看到新设置的提示符生效了。