Cho dù bạn muốn zsh Prompt sử dụng màu khác, hiển thị chi tiết bổ sung hay áp dụng giao diện tối giản để tận dụng tối đa không gian, macOS đều cho phép bạn làm điều đó. Tìm hiểu cách tùy chỉnh zsh Prompt trong Terminal để làm cho nó nổi bật bất kể nền tảng của bạn.
Khái niệm cơ bản về zsh Prompt
Khi bạn mở ứng dụng Terminal trên máy Mac, nó sẽ hiển thị một số thông tin hữu ích, như lần đăng nhập cuối cùng của bạn và command prompt. Theo mặc định, dấu nhắc thường trông như thế này:
Last login: Wed Feb 3 22:00:40 on console
alvin@MacBook-Air ~ %
zsh Prompt hiển thị một chuỗi văn bản bao gồm tên người dùng và model máy tính của bạn, như MacBook Air, MacBook Pro, Mac mini, v.v... Dấu ngã (~) cho biết vị trí của dấu nhắc trong thư mục home.
Nếu bạn điều hướng đến một thư mục khác trong hệ thống file của mình thông qua Terminal, tên của thư mục hiện tại sẽ được hiển thị thay vì dấu ngã.
Tạo cấu hình Z Shell để lưu trữ tất cả cài đặt
Thông thường, bạn phải mày mò các file hệ thống để thay đổi giao diện mặc định. Đó là vì các bản cập nhật macOS reset tất cả các file hệ thống về mặc định và bạn sẽ mất tất cả những thay đổi mình thực hiện. Vì vậy, bạn có thể tạo một file cài đặt cụ thể (được gọi là dotfile) cho cấu hình zsh của mình để lưu trữ tất cả các thay đổi và cài đặt bạn muốn trong zsh Prompt.
Theo mặc định, bạn sẽ không tìm thấy dotfile này trên macOS, vì vậy bạn sẽ phải tạo một dotfile. Bạn nên tạo một cấu hình .zshrc mới để lưu trữ tất cả các cài đặt, chẳng hạn như giao diện và hoạt động của zsh Prompt. Đây là cách tạo cấu hình zsh (dotfile):
1. Mở ứng dụng Terminal.
2. Nhập lệnh sau và nhấn phím Return:
touch ~/.zshrc
Lưu ý: Lệnh touch sẽ chỉ tạo file cấu hình .zshrc nếu nó chưa tồn tại. Nếu nó đã tồn tại, lệnh sẽ không làm gì cả.
Điều đó sẽ tạo một cấu hình .zshrc trong thư mục home của tài khoản người dùng. Bạn có thể nhìn thấy nó trong đường dẫn /User/<username>/ trong Finder nếu bạn đã bật xem các file hệ thống ẩn trên máy Mac của mình.
Sau đó, cấu hình zsh sẽ có sẵn cho các shell tương tác không đăng nhập mỗi khi bạn khởi chạy Terminal. Tuy nhiên, nó sẽ chỉ được sử dụng cho shell đăng nhập nếu các file dành riêng cho đăng nhập khác như .zprofile và .zlogin không có.
Tùy chỉnh zsh Prompt trong Terminal
Thông thường, zsh Prompt mặc định mang thông tin như tên người dùng, tên máy và vị trí bắt đầu trong thư mục chính của người dùng. Các chi tiết này được lưu trữ trong file hệ thống của zsh shell tại vị trí /etc/zshrc:
PS1="%n@%m %1~ %#"
Trong chuỗi biến này:
- %n là tên người dùng tài khoản của bạn.
- %m là tên model máy Mac của bạn.
- %1~ có nghĩa là đường dẫn thư mục làm việc hiện tại, trong đó ~ loại bỏ vị trí thư mục $HOME.
- %# có nghĩa là lời nhắc sẽ hiển thị # nếu shell đang chạy với đặc quyền root (admin) và % nếu không.
Để thực hiện bất kỳ thay đổi nào đối với zsh Prompt mặc định, bạn sẽ phải thêm các giá trị liên quan để lời nhắc xuất hiện khác với mặc định.
Mở Terminal, gõ lệnh sau và nhấn Return:
nano ~/.zshrc
Nếu file cấu hình .zshrc đã tồn tại trước đó thì có khả năng nó sẽ không trống. Tuy nhiên, nếu nó không tồn tại khi bạn chạy lệnh touch ở trên thì nó sẽ trống. Bạn có thể thêm một dòng mới có văn bản PROMPT='...' hoặc PS1='...' và bao gồm các giá trị có liên quan trong dấu chấm lửng.
Để sửa đổi đơn giản cho zsh Prompt, bạn có thể nhập các giá trị này vào cấu hình .zshrc:
PROMPT='%n:~$'
Nhấn Ctrl + O để xác nhận thực hiện những thay đổi đó đối với file, sau đó nhấn Ctrl + X để thoát trình chỉnh sửa Nano.
Mở cửa sổ Terminal mới bằng cách nhấn Cmd + T để xác nhận và xem những thay đổi bạn vừa thực hiện. zsh Prompt mới của bạn sẽ hiển thị tên người dùng, thư mục home của máy Mac và ký hiệu $ ở cuối. Bạn có thể thêm khoảng cách trong biến PROMPT ở trên giữa %n, ~ và $ nếu bạn thích các biến cách nhau trong Terminal.
Nếu bạn muốn có tên người dùng tùy chỉnh, hãy thay thế %n bằng lựa chọn ưa thích của bạn. Đây là một ví dụ:
PROMPT='customusername~$'
Bây giờ, nếu mở cửa sổ Terminal mới, bạn sẽ thấy như sau:
Nếu muốn thay đổi thủ công bất kỳ tham số nào khác, bạn có thể thực hiện bằng cách thay thế các biến mặc định bằng định dạng trong biến PS1 ở trên. Bạn có thể thêm hoặc xóa thông tin khỏi zsh Prompt cho phù hợp với sở thích của mình.
Nếu điều này nghe có vẻ quá phức tạp, hãy sử dụng trang web như Zsh Prompt Generator để giúp bạn tùy chỉnh Z shell của mình.
Thêm ngày và giờ vào zsh Prompt
Ngoài tên người dùng, bạn có thể thêm ngày hoặc giờ hiện tại để không cần phải rời mắt khỏi cửa sổ Terminal đang hoạt động để kiểm tra thông tin đó.
Khởi chạy Terminal và mở cấu hình .zshrc:
nano ~/.zshrc
Để đưa ngày vào lời nhắc, bạn có thể sử dụng %D để ngày xuất hiện ở định dạng yy-mm-dd hoặc %W để ngày xuất hiện ở định dạng mm/dd/yy. Sau đó, lời nhắc mới sẽ xuất hiện như thế này:
PROMPT='%n:%W:~$'
Mẹo: Bài viết đã sử dụng dấu hai chấm (:) trong biến PROMPT ở trên để thêm sự phân tách trực quan, nhưng bạn có thể sử dụng khoảng trắng hoặc bất kỳ thứ gì khác. Ví dụ, sử dụng dấu lớn hơn (>) để phân tách thời gian và thư mục hiện tại.
Nếu bạn muốn bao gồm thời gian hệ thống trong zsh Prompt, hãy thêm %T cho thời gian hiện tại ở định dạng 24 giờ, %t cho thời gian xuất hiện ở định dạng 12 giờ hoặc sử dụng %* để hiển thị thời gian ở dạng 24 giờ cùng với giây.
PROMPT='%n@%T>~$'
Hiển thị ngày và giờ ở bên phải zsh Prompt
Để hiển thị thông tin ở bên phải zsh Prompt, bạn cần thêm biến RPROMPT vào file zshrc. Ví dụ, để thêm ngày và giờ, hãy nhập thông tin sau:
RPROMPT='%D @ %T'
Prompt của bạn bây giờ sẽ trông như thế này:
Thêm màu vào văn bản trong zsh Prompt
Ngoài việc sửa đổi ứng dụng Terminal bằng màu sắc, bạn có thể thêm một số màu vào văn bản cho cấu hình zsh của mình trên máy Mac để có được hình ảnh đẹp mắt. Khởi chạy Terminal và mở cấu hình .zshrc:
nano ~/.zshrc
Z shell hỗ trợ màu sắc và sắc thái của màu xám cho văn bản nhắc nhở để bổ sung cho nền. Bạn có thể chọn màu nền trước (văn bản) từ các lựa chọn sau: Đen, trắng, vàng, xanh lá cây, đỏ, xanh lam, lục lam và đỏ tươi. Đây là cách sử dụng chúng:
PROMPT='%F{cyan}%n%f:~$'
Nếu muốn chọn một màu zsh cụ thể, bạn có thể chọn trong số 256 màu 8 bit mà Terminal hỗ trợ. Đây là cách sử dụng các giá trị số của màu sắc:
PROMPT='%F{51}%n%f:~$'
Bạn cần đặt các biến màu nền trước mặc định %F và %f giữa văn bản có liên quan mà bạn muốn tô màu.
Thêm hiệu ứng hình ảnh trong zsh Prompt
Nếu tô màu văn bản của prompt là chưa đủ, bạn có thể highlight zsh Prompt của mình để làm cho nó nổi bật giữa bức tường văn bản. Để bắt đầu, bạn có thể in đậm zsh Prompt:
PROMPT='%B%F{51}%n%f%b:~$'
Thêm %B vào đầu và đặt %b ở cuối giữa văn bản có liên quan sẽ làm cho nó được in đậm.
Tương tự, bạn có thể đặt %S ở đầu và %s ở cuối để highlight văn bản. Highlight sẽ có cùng màu mà bạn đã chọn để xuất hiện giữa các biến %S và %s.
PROMPT='%S%F{51}%n%f%s:~$'
Bạn cũng có thể gạch chân văn bản của zsh Prompt. Để thêm gạch chân vào prompt, bạn có thể thêm biến %U ở đầu và %u ở cuối văn bản liên quan.
PROMPT='%U%F{51}%n%f%u:~$'
Xóa chi tiết đăng nhập cuối cùng khỏi zsh Prompt
Việc ẩn hoặc vô hiệu hóa dòng trên cùng tiết lộ thời gian đăng nhập cuối cùng trong ứng dụng Terminal có thể giúp zsh Prompt của bạn trông rõ ràng hơn. Bạn có thể sử dụng lệnh sau để ẩn thông tin đó:
touch ~/.hushlogin
Lần tới khi mở Terminal, bạn sẽ không thấy bất cứ điều gì phía trên zsh Prompt.
Reset những tùy chỉnh zsh
Nếu cần một khởi đầu mới, bạn có thể làm như vậy bằng cách đặt biến PROMPT hoặc PS1 thành giá trị mặc định:
PROMPT="%n@%m %1~ %#"
Nếu bạn đã thêm thông tin vào bên phải zsh Prompt bằng RPROMPT, hãy xóa thông tin đó khỏi .zshrc.
Ngoài ra, bạn có thể xóa các biến PROMPT/PS1 và RPROMPT trong file .zshrc một cách an toàn. Đừng lo lắng, vì cài đặt trong file .zshrc chỉ áp dụng cho cấu hình người dùng hiện tại. Nếu bạn xóa cả hai, cài đặt mặc định được lưu trong file hệ thống của Z shell tại /etc/zshrc sẽ được sử dụng.
Bây giờ, bạn đã có đầy đủ thông tin chi tiết về cách tùy chỉnh zsh Prompt, hãy thử nghiệm một chút và biến nó thành của riêng bạn. Bạn có thể in đậm, gạch chân, rút ngắn và thậm chí đưa thêm thông tin vào đó. Và nếu bạn không hài lòng với những thay đổi, bạn luôn có thể nhanh chóng hoàn nguyên về giao diện mặc định.