linux shell 提示符
当我们打开或者登陆到一个终端的时候都会显示一长串提示符
void@void-ThinkPad-E450:~$
提示符一般包含当前登陆的用户名 ,主机名,以及当前工作路径路径,最后都是以 $ 或者 # 号结束,普通用户以 $ 号结束,只有root用户以 #结束。
因为包含了当前工作路径,所以当我们切换工作路径的时候,提示符也是会变化的,当我们切换到一个很深层次的路径或者目录名称很长很长的时候提示符也会变得很长,导致我们需要输入command的时候输入光标已经到了终端最右边。
void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$
我们 可以通过改变PS1变量来控制主提示符的内容,PS1是一个bash的内建变量,使用echo 可以看到PS1的定义
void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$
\d 用”Week Month Date"的格式显示日期
\H 主机名
\u 当前用户的用户名
\t 用"HH:MM:SS"的24小时格式显示当前时间
\v bash 的版本号
\w 当前工作目录
\$ 如果当前是root用户则显示字符#,否则西那时字符$
我们可以通过改变变量PS1的值来改变提示符的显示内容
void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$
void@void-ThinkPad-E450:~/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia/libcedarx/xmetadataretriever/include$PS1='\u@\h\$'
void@void-ThinkPad-E450$
void@void-ThinkPad-E450$cd ../../../
void@void-ThinkPad-E450$pwd
/home/void/Homlet-Tina-H2_H3/package/allwinner/tina_multimedia
void@void-ThinkPad-E450$
PS1='\u@\h\$'
以上 命令将 主提示符设置成只显示用户名@主机名$,这样切换工作路径到任何地方都不会影响主提示符的显示,但是这种设置方法只对当前终端有效,如果要对当前用户有效则需要修改~/.bashrc
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
修改最后一个 PS1的定义保存退出。
最新文章
- Lind.DDD.LindMQ的一些想法
- redis 缓存技术与memcache的区别
- 关于java连接mysql数据库的几个问题的解决方法。
- Python-08-Socket
- 【C语言】二维指针做形参
- CodeSign error: code signing is required for product type Application in SDK iOS
- Static Classes and Static Class Members
- SQL常用函数
- Ubuntu为已经安装的PHP7单独编译mysqli
- 苹果新的编程语言 Swift 语言进阶(十五)--协议
- 通信(二):进程间通信之socket
- Unity3D制作红色射线
- FileReader实现图片预览,并上传(js代码)
- 玩游戏 学Flex布局
- [CTSC2010]珠宝商 SAM+后缀树+点分治
- 2017-2018 第一学期201623班《程序设计与数据结构》-第9&;10周作业问题总结
- python测试开发django-11.模型models详解
- 调用WebAPI接口地址返回序列化的JSON对象中的属性都加了个k__BackingField关键字的解决办法
- mysql的length与char_length的区别
- 剑指Offer面试题:9.打印1到最大的n位数