Mac如何修改终端中$符号前后的名称

由于Mac系统默认的**的MacBook Pro这个名称过于冗长且不美观,于是我便搜索寻找办法修改主机名称,对于我这种有强迫症的人来说还是很有必要的,特此记录。

/etc/bashrc 文件中,找到了 PS1 系统变量的存在:

if [ -z "$PS1" ]; then
   return
fi
PS1='\h:\W \u\$ '
  • iffi是bash脚本的if语句
  • -z "$PS1"这句代码是查看PS1这个变量是否存在,若存在,return返回
  • -z是一个单目操作符,代表对变量为空不为空的判断,语法如下:
    -z $A:为空则为真,不空则为假
    

只要在.bashrc 或者.bash_profile 文件中,定义了 PS1 变量,就不会再执行下面的逻辑了。
在我的文件里,没有定义,那么这个名称是怎么形成的呢?

它其实执行了下面这行逻辑:

PS1='\h:\W \u\$ '

bash 脚本与众不同,字符串里面可以放置变量。在这个字符串里,只有最后面的$符号,还有中间的:,是一个字符,其它的都是变量,都有特殊的含义。

  • \h: 在这里是 hostname 的简写,代表仅取主机名称中的第一个名字,主面名可以是两段式,例如 liyi.macOS,那么这个小 h 就代表 liyi。
  • \W: 是工作目录名称的最后路径中的一段,如果是\w,则代表完整的工作目录名称。用户目录会以 ~代替。
  • \u: 代表是 username,是当前用户的用户名,这个名称可以在系统设置里,使用另外一个管理员帐号修改它。

如果要保留这个格式,还有一个简便的工具可以使用:scutil。
这个工具名疑是 Store Access Util 的简称。它提到了对 ComputerName, LocalHostName, HostName 系统变量的修改办法。

sudo scutil --set HostName LIYI #修改主机名
sudo scutil --set LocalHostName LIYI #修改本地主机名

ComputerName 是计算机名称,这个名称在隔空传送时是有用的,我们依靠它判断传递对象。

posted @   S!no  阅读(1241)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示