zoukankan      html  css  js  c++  java
  • 在 Mac 上将 zsh 用作默认 Shell

    从 macOS Catalina 版开始,您的 Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell。您还可以在较低版本的 macOS 中将 zsh 设置为默认 Shell。

     

    默认情况下,您的 Mac 使用 zsh 或 bash 作为登录 Shell 和交互式 Shell 的命令行解释器:

    • 从 macOS Catalina 版开始,zsh (Z shell) 是所有新建用户帐户的默认 Shell。
    • bash 是 macOS Mojave 及更低版本中的默认 Shell。

    zsh 与 Bourne Shell (sh) 高度兼容,并且与 bash 基本兼容,但存在一些差别。要进一步了解 zsh 及其全面的命令行完成系统,请在“终端”中输入 man zsh
      

    如何更改默认 Shell

    无论您的用户帐户是配置为使用 zsh(推荐)、bash 还是其他 Shell,您都可以从“用户与群组”偏好设置或命令行中更改默认 Shell。

    从“用户与群组”偏好设置中更改

    1. 选取苹果菜单  >“系统偏好设置”,然后点按“用户与群组”。 
    2. 点按锁形图标 ,然后输入您的帐户名称和密码。
    3. 在左侧的用户列表中,按住 Control 键点按您的用户名,然后选取“高级选项”。 
    4. 从“登录 Shell”菜单中选取一个 Shell,然后点按“好”以存储更改。

    从命令行中更改

    在“终端”中,输入 $ chsh -s path,其中的 path 是 /etc/shells 中列出的某个 Shell 路径,例如 /bin/zsh、/bin/bash、/bin/csh、/bin/dash、/bin/ksh、/bin/sh 或 /bin/tcsh。
      

    如何在不更改默认 Shell 的情况下使用其他 Shell

    如果您不希望“终端”在新的“终端”窗口和标签页中使用默认的登录 Shell,请按照以下步骤操作:

    1. 打开“终端”,然后选取“终端”>“偏好设置”。
    2. 从“通用”面板中,选择“命令(完整的路径)”。 
    3. 在提供的栏位中,输入 /etc/shells 中列出的某个 Shell 路径,例如 /bin/zsh、/bin/bash、/bin/csh、/bin/dash、/bin/ksh、/bin/sh 或 /bin/tcsh。

    如果您调用 bash Shell,而 macOS Catalina 已配置为使用另一个 Shell,则您将看到一条信息,提示默认的交互式 Shell 现在是 zsh。要消除这个警告,您可以将以下命令添加到 ~/.bash_profile 或 ~/.profile 中:

    export BASH_SILENCE_DEPRECATION_WARNING=1
    


    如何切换到 zsh 描述文件和提示符

    如果您正在使用 bash 描述文件(例如,为了设置环境变量、别名或路径变量),则您应改为使用作用与它相同的 zsh 描述文件。例如:

    • .zprofile 的作用与 .bash_profile 相同,并且在登录时运行(包括通过 SSH 运行)
    • .zshrc 的作用与 .bashrc 相同,并针对每个新的“终端”会话运行

    如果您正在使用 .profile(一个兼容 POSIX 的描述文件),则您可以将以下命令添加到 .zprofile,以便 zsh 自动读取这个描述文件的设置:

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

    另外,您无需进行任何修改,就可以将 bash 描述文件中的某些设置转移到 zsh 描述文件。例如,要设置环境变量,您可以使用以下命令:export MY_SETTING=1

    zsh 能够识别一组不同于 bash 所能识别的提示符指定符,并且用于指定彩色输出的语法更简洁,让您无需使用复杂的 ANSI 转义序列。例如,下面显示了 .bash_profile 中默认 bash 提示符的语法:

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

    要在使用 .zprofile 或 .zshrc 时将这个 prompt 提示符转换为 zsh 提示符,请使用以下命令:

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

    请参阅 zsh man 页面,以了解更多详细信息。


    如何测试 Shell 脚本

    要在 macOS Catalina 中使用与 Bourne 兼容的 Shell 来测试脚本兼容性,您可以将 /var/select/sh 更改为 /bin/bash、/bin/dash 或 /bin/zsh。如果您将 /var/select/sh 更改为 bash 之外的 Shell,请注意,使用 bashisms 的脚本可能无法正常工作。

    您可以运行命令 zsh --emulate sh 来让 zsh 模拟 sh。
      

    有关非 Apple 制造的产品或非 Apple 控制或测试的独立网站的信息仅供参考,不代表 Apple 的任何建议或保证。Apple 对于第三方网站或产品的选择、性能或使用不承担任何责任。Apple 对于第三方网站的准确性和可靠性不作任何担保。联系供应商以了解其他信息。

    发布日期: 2020 年 02 月 11 日
    漫思
  • 相关阅读:
    分层图最短路(DP思想) BZOJ2662 [BeiJing wc2012]冻结
    动态规划 BZOJ1925 地精部落
    线性DP SPOJ Mobile Service
    线性DP codevs2185 最长公共上升子序列
    数位DP POJ3208 Apocalypse Someday
    线性DP POJ3666 Making the Grade
    杨氏矩阵 线性DP? POJ2279 Mr.Young's Picture Permutations
    tarjan强连通分量 洛谷P1262 间谍网络
    树链剖分 BZOJ3589 动态树
    二分图 BZOJ4554 [Tjoi2016&Heoi2016]游戏
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/15246756.html
Copyright © 2011-2022 走看看