【问题标题】:Mac terminal : trying to add to /etc/shellsMac 终端:尝试添加到 /etc/shells
【发布时间】:2017-12-03 11:01:48
【问题描述】:

这个有效

$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

但是这个没有:

sudo -s 'echo /usr/local/bin/zsh >> /etc/shells'
/bin/bash: echo /usr/local/bin/zsh >> /etc/shells: No such file or directory

【问题讨论】:

    标签: macos terminal zsh


    【解决方案1】:

    sudo 将字符串作为完整的命令。您应该使用 shell 来解释您的命令,如下所示:

    sudo sh -c 'echo /usr/local/bin/zsh >> /etc/shells'
    

    这会以 root 权限执行shsh 将字符串解释为一个 shell 命令,包括 >> 作为输出重定向。

    【讨论】:

      【解决方案2】:

      您真正需要sudo 的唯一事情是打开受保护的文件进行写入。您可以使用tee 命令追加到文件中。

      echo /usr/local/bin/zsh | sudo tee -a /etc/shells > /dev/null
      

      【讨论】:

        猜你喜欢
        • 2018-12-18
        • 2018-07-16
        • 1970-01-01
        • 1970-01-01
        • 2020-01-20
        • 1970-01-01
        • 2014-12-13
        • 1970-01-01
        • 2018-09-24
        相关资源
        最近更新 更多