为什么 macOS 执行 man 这么慢?

2022-01-19 17:31:38 +08:00
 pxiphx891

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

1597 次点击
所在节点    Apple
7 条回复
jorneyr
2022-01-19 18:02:39 +08:00
MBP 14 ,闪电的速度
ynyounuo
2022-01-19 18:48:41 +08:00
首先确定自己用的是 /usr/bin/man ,最好可以在无 config 的情况下测试( zsh -f )
如果确定是,可以再把 SIP 关了或者仅关闭 DTrace Restrictions 然后用 dtruss 看看你运行 man 的细节
notgoda
2022-01-19 19:42:44 +08:00
@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
2022-01-20 01:15:23 +08:00
@notgoda 为什么要替换?替换成 gnu coreutils 的版本很多东西编译可能都会出问题,brew 自带的以 g prefix 做链接的方式不是挺好的吗?

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

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

具体在干嘛不清楚.
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
2022-01-21 23:28:48 +08:00
@ynyounuo 大佬 , mac OS 同样是在终端执行 sudo mkdir -p -m 775 /usr/local/bin 创建目录?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/829282

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX