V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pxiphx891
V2EX  ›  Apple

为什么 macOS 执行 man 这么慢?

  •  
  •   pxiphx891 · 2022-01-19 17:31:38 +08:00 · 1506 次点击
    这是一个创建于 820 天前的主题,其中的信息可能已经有所发展或是发生改变。

    第一次特别慢,第二次就好了

    7 条回复    2022-01-21 23:28:48 +08:00
    jorneyr
        1
    jorneyr  
       2022-01-19 18:02:39 +08:00
    MBP 14 ,闪电的速度
    ynyounuo
        2
    ynyounuo  
       2022-01-19 18:48:41 +08:00
    首先确定自己用的是 /usr/bin/man ,最好可以在无 config 的情况下测试( zsh -f )
    如果确定是,可以再把 SIP 关了或者仅关闭 DTrace Restrictions 然后用 dtruss 看看你运行 man 的细节
    notgoda
        3
    notgoda  
       2022-01-19 19:42:44 +08:00 via iPhone
    @ynyounuo v 友 请教如何在 zsh 下把 mac 自带的 BSD 命令替换成 gnu 命令? 以下是我用的步骤无法生效 , 能帮忙看下哪里改错了吗? 万分感谢

    我是 zsh 下执行以下脚本 , 用 bash xxx.sh
    #!/usr/bin/env bash
    print_usage() {
    cat <<- EOF
    use gnu tools without prefix "g" on mac, for example, "cat" rather than "gcat"
    EOF
    exit 0
    }
    if [[ $1 =~ -h|--help ]]; then
    print_usage
    fi
    gnu_bin_path=/usr/local/gnubin
    if [[ ! -d $gnu_bin_path ]]; then
    mkdir $gnu_bin_path
    fi
    for i in /usr/local/opt/*/libexec/gnubin/*
    do
    ln -s $i $gnu_bin_path
    done
    echo "finish"


    然后增加 PATH=/usr/local/gnubin/:$PATH
    export PATH

    到.zprofile


    添加这段脚本在~/.zprofile 中:

    join_str() {
    sep="$1"
    shift
    first_word="$1"
    shift
    printf "%s" "$first_word" "${@/#/$sep}"
    }

    manpath=(/usr/local/opt/**/libexec/gnuman/)
    joined_manpath=`join_str : ${manpath[@]}`
    MANPATH=$joined_manpath:$MANPATH
    export MANPATH
    unset manpath
    unset joined_manpath

    @ynyounuo
    @jorneyr
    ynyounuo
        4
    ynyounuo  
       2022-01-20 01:15:23 +08:00 via iPhone   ❤️ 1
    @notgoda 为什么要替换?替换成 gnu coreutils 的版本很多东西编译可能都会出问题,brew 自带的以 g prefix 做链接的方式不是挺好的吗?

    非要替换那就把 brew coreutils 本身安装的 bin path 放到最前就好了吧,我怀疑你虽然在 .zprofile 定义了 PATH 但是别处 source 的 export 把 /usr/bin 之类的提前了,或者你通过那个脚本自定义的 PATH 出了问题

    首先确定 PATH 是你定义的 coretutils 所在 PATH 靠前,其次确定你自定义的那个 PATH 确实存在软链过去的 coreutils 的可执行文件
    clrss
        5
    clrss  
       2022-01-20 13:36:18 +08:00
    Terminal 显示当前命令, 会发现第一次执行时, 在运行 xcodebuild.

    具体在干嘛不清楚.
    notgoda
        6
    notgoda  
       2022-01-21 20:56:12 +08:00
    @ynyounuo 谢谢 v 友, 那我还是不替换了, 另外我 m1 air 手动下载 universal binary https://github.com/paradiseduo/tcping 后 提示 /usr/local/bin/不存在, 是不是要先自己手动在 usr/local 建个 bin 目录? mac 系统 arm 架构也是放这个目录吗 ? 还是放在其他目录? 刚从 windows 和 linux 换到用 mac ,谢谢
    mac@MacBook-Air ~ % mv tcping /usr/local/bin/
    mv: rename tcping to /usr/local/bin/: No such file or directory
    notgoda
        7
    notgoda  
       2022-01-21 23:28:48 +08:00
    @ynyounuo 大佬 , mac OS 同样是在终端执行 sudo mkdir -p -m 775 /usr/local/bin 创建目录?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   941 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:11 · PVG 05:11 · LAX 14:11 · JFK 17:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.