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 是計算機名稱,這個名稱在隔空傳送時是有用的,我們依靠它判斷傳遞對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM