Mac如何修改终端中$符号前后的名称
由于Mac系统默认的**的MacBook Pro
这个名称过于冗长且不美观,于是我便搜索寻找办法修改主机名称,对于我这种有强迫症的人来说还是很有必要的,特此记录。
在/etc/bashrc
文件中,找到了 PS1 系统变量的存在:
if [ -z "$PS1" ]; then
return
fi
PS1='\h:\W \u\$ '
if
与fi
是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 是计算机名称,这个名称在隔空传送时是有用的,我们依靠它判断传递对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效