有哪些方式可以知道,某个命令是不是系统自带的,比如 ls 、cat 、grep 这些命令是系统自带的,这主要来自我们的经验,exa fzf ripgrep 不是系统自带的,需要自行安装,也是来自我们的经验。
我想知道有没有什么方法可以知道某个命令是不是系统本来就有的,或者有什么网站可供查询。
因为选择使用系统自带的命令,更适合作为可分享的脚本代码
1
hahasong 2022-09-17 18:08:22 +08:00 2
/bin /sbin /usr/bin /usr/sbin 是系统自带的
|
2
kkocdko 2022-09-17 18:22:29 +08:00
@hahasong 不对哦,自行安装上的也在这些目录里。
“系统自带”包含 shell build-in 命令(只要有 shell 就有),core-utils 和发行版镜像中自带的程序。 1. shell build-in 的命令可以用 type 查询。 [kkocdko@fedora apps]$ type cd cd is a shell builtin [kkocdko@fedora apps]$ type gcc gcc is /usr/bin/gcc 2. 类似 cat ,du 这些命令属于 core-utils: https://www.gnu.org/software/coreutils/ 3. 至于发行版自行决定自带的程序,那就只能拆一下常见发行版的镜像,看看 /usr/bin 里有什么,然后导出个列表。 |
4
kkeep 2022-09-18 02:19:27 +08:00 via Android
which
|
5
kkeep 2022-09-18 02:20:05 +08:00 via Android
有意思,但是更多的是让客户端装吧
|
6
bao3 2022-09-18 09:28:14 +08:00 via iPhone 1
1# 3# 的回答是对的,仅限于 Unix 类系统,不适用于 Linux 类系统。
标准的 Unix 类 OS 都遵循 1# 3# 的规范,但这里要单独去看 Linux ,因为 Linux 太开放了,入门也太简单,所以 Linux 使用者很大一部分是乱放文件位置,或者从源编译时编译的配置文件也不遵守这个原则。 用户自己安装的程序一定是放在 /use/local/ 下的 bin 、lib 、etc 这些。同样也是 Linux 不在这个规则,所以你搜到的很多 Linux/VPS 不光软件会放在 /usr/bin ,用户安装的软件配置文件都可能放在 /etc …… 我看 2# 还在用 fodra linux 作为评论基础,这个就…… 反正他讲的是没错,但适用规则有误。 |
7
ihipop 2022-09-18 10:10:05 +08:00 via Android
自行安装里面也分通过包管理器安装或者自行编译安装。
如果自带说的是装机就有,那没有一个标准的,哪怕同一个发行版,不同的发行大小都可能不带一样的东西。 |