我正在寻找一种方法来编辑常见Linux命令(passwd,cd,rm,cat)的源代码
例如每次(任何用户)调用“ cat”命令时,它都会执行其常规功能,但之后还会在“ stdout”上打印“ done”。
答案 0 :(得分:1)
如果您只是想像示例中那样“增强”命令,则可以创建例如/opt/bin/cat.sh
:
/bin/cat && echo "done"
,然后:
更改默认的PATH
(在Ubuntu中的/etc/bash.bashrc
中)如下:
PATH=/opt/bin:$PATH
或将cat
重命名为例如cat.orig
并将cat.sh
移至/bin/cat
。
(如果您选择后者,则脚本需要调用cat.orig
而不是cat
。)
如果要实际更改行为,则需要在此处查看源: https://ftp.gnu.org/gnu/coreutils/ 然后构建它们并替换它们。
所有这些当然都假定您具有root权限,并且可以查看要如何更改任何用户的行为。
答案 1 :(得分:1)
除非您有充分的理由,否则如何修改源的答案不是。有许多原因使您不应该这样做,但是一个重要的原因是您应该避免修改任何可能会收到更新的信息的来源。该更新会破坏您的代码,甚至不会删除您的代码,您还有很多工作要做。
或者,您可以使用Alias之类的东西进行快速自定义,并编写脚本来调用和依赖可用的命令,而不必担心其实现。我已经过度解释了,但这是因为我是作为一个只有Linux经验很少但在开发方面拥有更多经验的人来找您的,我所说的内容超出了操作系统CLI的功能,并进一步涉及了以下方面的一般概念:开发。