Sử dụng zsh làm shell mặc định trên máy Mac

Kể từ macOS Catalina, máy Mac sẽ sử dụng zsh làm shell đăng nhập và shell tương tác mặc định. Bạn cũng có thể đặt zsh làm tùy chọn mặc định trong các phiên bản macOS cũ hơn.

Theo mặc định, máy Mac sẽ sử dụng zsh hoặc bash làm trình thông dịch dòng lệnh cho shell đăng nhập và shell tương tác:

  • zsh (shell Z) là shell mặc định cho tất cả tài khoản người dùng mới tạo, kể từ macOS Catalina.

  • bash là shell mặc định của macOS Mojave trở về trước.

zsh có độ tương thích cao với shell Bourne (sh) và gần như tương thích hoàn toàn với bash, dù có một chút khác biệt. Để biết thêm về zsh và hệ thống hoàn thành dòng lệnh toàn diện, hãy nhập man zsh

Cách thay đổi shell mặc định

Cho dù tài khoản người dùng được cấu hình sử dụng zsh (khuyến nghị), bash hay một shell khác, bạn có thể thay đổi shell mặc định từ dòng lệnh hoặc trong phần cài đặt Người dùng & Nhóm.

Từ dòng lệnh

Trong Terminal, hãy nhập $ chsh -s path, với path là một trong những đường dẫn shell được liệt kê tại /etc/shells, chẳng hạn như /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh hoặc /bin/tcsh.

Từ phần cài đặt Người dùng & Nhóm

Trên macOS Ventura hoặc phiên bản mới hơn:

  1. Chọn menu Apple  > Cài đặt hệ thống, rồi bấm vào Người dùng & Nhóm trong thanh bên.

  2. Giữ phím Control và bấm vào ảnh hoặc tên người dùng trong danh sách người dùng bên phải, sau đó chọn Tùy chọn nâng cao.

  3. Nhập tên người dùng và mật khẩu khi được nhắc.

  4. Chọn một shell từ menu “Shell đăng nhập”, sau đó bấm vào OK để lưu thay đổi.

Trong các phiên bản macOS cũ hơn:

  1. Chọn menu Apple  > Tùy chọn hệ thống, sau đó bấm vào Người dùng & nhóm.

  2. Bấm vào biểu tượng khóaNo alt supplied for Image, sau đó nhập tên người dùng và mật khẩu của bạn.

  3. Giữ phím Control và bấm vào tên người dùng trong danh sách người dùng bên trái, sau đó chọn Tùy chọn nâng cao.

  4. Chọn một shell từ menu “Shell đăng nhập”, sau đó bấm vào OK để lưu thay đổi.

Cách sử dụng một shell khác mà không cần thay đổi cài đặt mặc định

Nếu bạn không muốn Terminal sử dụng shell đăng nhập mặc định trong cửa sổ và tab Terminal mới:

  1. Mở Terminal, sau đó chọn Terminal > Cài đặt (hoặc Tùy chọn).

  2. Từ bảng Cài đặt chung, chọn “Lệnh (đường dẫn hoàn chỉnh)”.

  3. Trong trường liền kề, nhập một trong những đường dẫn shell được liệt kê trong /etc/shells, chẳng hạn như /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh hoặc /bin/tcsh.

Nếu sử dụng shell bash khi macOS được cấu hình sử dụng một shell khác, bạn sẽ nhận được thông báo rằng shell tương tác mặc định hiện đã trở thành zsh. Để tắt cảnh báo trên, bạn có thể thêm lệnh này vào ~/.bash_profile hoặc ~/.profile:

export BASH_SILENCE_DEPRECATION_WARNING=1

Cách chuyển đổi sang hồ sơ zsh và lời nhắc

Khi đang sử dụng hồ sơ bash, chẳng hạn như đặt biến môi trường, tên hiệu hoặc đường dẫn biến số, bạn nên chuyển sang sử dụng shell tương đương với zsh. Ví dụ:

  • .zprofile tương đương với .bash_profile và chạy khi đăng nhập, bao gồm cả đi qua SSH

  • .zshrc tương đương với .bashrc và chạy cho mỗi phiên Terminal mới

Nếu đang sử dụng .profile (hồ sơ tuân thủ POSIX), bạn có thể làm cho zsh tự động đọc cài đặt bằng cách thêm lệnh này vào .zprofile:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

Bạn cũng có thể di dời một số cài đặt từ hồ sơ bash sang hồ sơ zsh mà không cần phải sửa đổi. Ví dụ: để đặt biến môi trường: export MY_SETTING=1.

zsh nhận diện bộ chỉ định lời nhắc khác với bash và có cú pháp gọn gàng hơn để chỉ định dữ liệu đầu ra có màu, loại bỏ nhu cầu sử dụng chuỗi thoát ANSI phức tạp. Ví dụ: sau đây là một cú pháp lời nhắc bash mặc định từ .bash_profile:

export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "

Cách chuyển đổi lời nhắc bash trên thành lời nhắc zsh khi sử dụng .zprofile hoặc .zshrc:

export PS1="%10F%m%f:%11F%1~%f \$ "

Xem trang zsh man để biết thêm chi tiết.

Cách kiểm thử tập lệnh shell

Để kiểm thử tập lệnh bằng shell tương thích Bourne trong macOS Catalina trở lên, bạn cần phải thay đổi /var/select/sh thành /bin/bash, /bin/dash hoặc /bin/zsh. Nếu bạn chuyển /var/select/sh thành shell nào khác không phải bash, hãy lưu ý rằng tập lệnh sử dụng cú pháp bash có thể sẽ không hoạt động bình thường.

Có thể sử dụng zsh để mô phỏng sh bằng cách thực hiện lệnh zsh --emulate sh.

Apple không đề xuất hay chứng thực thông tin về các sản phẩm không do Apple sản xuất hoặc các trang web độc lập không chịu sự kiểm soát hay kiểm tra của Apple. Apple không chịu trách nhiệm về việc lựa chọn, hiệu suất hay việc sử dụng trang web hoặc sản phẩm của bên thứ ba. Apple không đưa ra tuyên bố nào về tính chính xác hay độ tin cậy của trang web bên thứ ba. Liên lạc với nhà cung cấp để biết thêm thông tin.

Ngày đăng: