首页 > 其他分享 >转 oh-my-zsh终端用户名设置(PS1)

转 oh-my-zsh终端用户名设置(PS1)

时间:2023-05-14 23:23:32浏览次数:73  
标签:blue PROMPT bold oh my fg PS1 zsh

原帖来至:https://www.jianshu.com/p/bf488bf22cba

 

zsh安装,参考 oh-my-zsh

默认的 PS1 为

PS1='[\u@\h \w]\$'

网上对这个的处理大多是打开.bashrc然后修改PS1或者重新定义修改PS1

oh-my-zshshellzsh,明显不能在 .bashrc 中改

不信可以在终端输入

echo $PS1

或者

echo $PROMPT

可以看到其定义为

${ret_status} %{$fg[cyan]%}%~%{$reset_color%} $(git_prompt_info)

这和.bashrcPS1的定义是不同的,根本无从下手。

于是又有人说那就在.zshrc中改,我试过,发现改了以后终端的显示会不正常,比如linux的指令都有返回值,一般为0,其他表示运行错误之类。

oh_my_zsh是可以用符号提醒用户的上一个指令是否执行成功的,如果在.zshrc重新定义PS1,这个功能将会失效。所以只能用特别的方式。

解决办法:按照1中链接的安装方式,oh_my_zsh的主题和设置会被复制到主目录下,只要在终端输入

cd ~/.oh-my-zsh/themes

然后输入

echo $ZSH_THEME

查看自己主题,我的是robbyrussell,然后输入

vim robbyrussell.zsh-theme

可以看到

local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT='${ret_status} %{$fg[cyan]%}%~%{$reset_color%} $(git_prompt_info)'

ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"

PROMPT就是设置显示的用户名

由于oh_my_zsh时常会有版本更新,为了避免我们修改的跟更新的版本有冲突,建议不要修改robbyrussell.zsh-theme,而是将其拷贝出来,命名为自己的主题文件,比如叫做myrobbyrussell.zsh-theme,然后只对myrobbyrussell.zsh-theme进行修改。

修改后将 ~/.zshrc 中的

ZSH_THEME="robbyrussell"

改为

ZSH_THEME="myrobbyrussell"

这样就能避免冲突了。

参考设置

PROMPT='%{$fg[green]%}%m@%{$fg[magenta]%}%(?..%?%1v)%n:%{$reset_color%}%{$fg[cyan]%}%~#'
PROMPT='%{$fg_bold[red]%}-> %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}~#:'
PROMPT='%{$fg_bold[red]%}-> %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$fg[magenta]%}%(?..%?%1v)%{$reset_color%}~#: '    
PROMPT='%{$fg_bold[red]%}-> %{$fg_bold[magenta]%}%n%{$fg_bold[cyan]%}@%{$fg[green]%}%m %{$fg_bold[green]%}%p%{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$fg[magenta]%}%(?..%?%1v)%{$fg_bold[blue]%}? %{$fg[yellow]%}# '  
codeinfo
%T 系统时间(时:分)
%* 系统时间(时:分:秒)
%D 系统日期(年-月-日)
%n 你的用户名
%B - %b 开始到结束使用粗体打印
%U - %u 开始到结束使用下划线打印
%d 你目前的工作目录
%~ 你目前的工作目录相对于~的相对路径
%M 计算机的主机名
%m 计算机的主机名(在第一个句号之前截断)
%l 你当前的tty
%n 登录名


作者:andyJi
链接:https://www.jianshu.com/p/bf488bf22cba
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:blue,PROMPT,bold,oh,my,fg,PS1,zsh
From: https://www.cnblogs.com/sidianok/p/17400527.html

相关文章

  • MySQL学习日志十三,索引
    一、索引的作用1.提高查询速度2.确保数据的唯一性3.可以加速表和表之间的连接,实现表与表之间的参照完整性4.使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间5.全文检索字段进行搜索优化.二、分类1.主键索引(PrimaryKey)2.唯一索引(Unique)3.常规......
  • MySQL学习日志十二,事务
    一、事务要么都成功,要么都失败四个特性:原子性:不可再分割的工作单位,一个事务中要么都完成,要么都不完成一致性:从一致的状态转换到另一个一致的状态,事务前后的数据保持一致隔离性:屏蔽其他的事务,专注自己的事务,互不干扰持久性:存储在数据库的数据是永久的,事务一旦提交就不......
  • MySQL学习笔记:mycat2原理与实现
    mycat2官网:MyCat2(mycatone.top)参考学习视频这可能是B站唯一把数据库中间件Mycat2讲的如此深入透彻的教程!_哔哩哔哩_bilibili什么是mycat2?Mycat是开源社区在阿里Cobar基础上进行二次开发的数据库中间件,也是目前最流行的基于java语言编写的数据库中间件;是一个开源的分布式数据......
  • LabVIEW数据库Mysql数据库操作;增加-删除-更新-查询;数据管理程序,完整案例,可移植。
    LabVIEW数据库Mysql数据库操作;增加-删除-更新-查询;数据管理程序,完整案例,可移植。ID:9299673612213945......
  • Mybatis-Plus使用技巧
    selectOne和selectListselectOne如果没有数据会得到nullselectList如果没有数据会得到长度为0的list自动填充任何使用wrapper的时候,自动填充都是失效的,必须带实体类,可以new一个更新字段为null默认情况:全局配置默认值为not_null,传递的参数中某个字段为null,则默认不会对为nu......
  • MySQL学习日志十一,常用函数,聚合函数及分组过滤,数据库级别的MD5加密
    点我跳转到菜鸟的函数总结在这里举几个例子吧--数学运算SELECTABS(-52)--取绝对值SELECTCEILING(5.4160)--向上取整SELECTFLOOR(4631.449613)--向下取整SELECTRAND()--返回一个0-1之间的随机数SELECTSIGN(-4510)--判断数字的正负,正数返回1,负数返回-1一堆......
  • 【MySQL--08】复合查询
    【MySQL--08】复合查询在之前我们对表的查询都是对一张表进行查询,再实际开发中这还远远不够。我们仍然使用雇员信息表scott_data.sql--使用source加上sql文件路径就可以讲表加入到数据库内--mysql>source/home/Lxy/mysql/mysql/lesson8/scott.sqlQueryOK,0rowsaffected......
  • Mybatis开发项目操作步骤
    1.创建项目(IDEA中)2.导入依赖(配置pom文件)3.创建并编写MyBatis配置文件(mybatis-config.xml)4.数据库配置信息(jdbc.properties)5.日志配置信息(log4j.properties)6.创建表(数据库表)7.创建实体映射(entity实体)8.定义别名9.创建Dao层10.创建xxDao接口文件11.创建xxDaoMapper.xml配......
  • MySQL学习日志十,子查询和嵌套查询
    子查询where(这个值是计算出来的)先执行where里面的语句,之后执行外面的语句本质:where里面嵌套一个子查询语句查询参加高等数学考试的学生(学号,姓名。科目编号,成绩),降序排列--方式一:连接查询SELECTs.studentno,studentname,r.subjectno,studentresultFROMstudentsINNER......
  • 03-面试必会-Mysql篇
    1.Mysql查询语句的书写顺序Select[distinct]<字段名称>from表1[<join类型>join表2on<join条件>]where<where条件>groupby<字段>having<having条件>orderby<排序字段>limit<起始偏移量,行数>2.Mysql查询语句的执行顺序(8)Select(9)di......