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 是计算机名称,这个名称在隔空传送时是有用的,我们依靠它判断传递对象。

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

上一篇:Linux 命令 基本使用(一)


下一篇:Linux下快速拷贝单个大文件的秘诀