![我如何编辑命令?](https://linux22.com/image/1026459/%E6%88%91%E5%A6%82%E4%BD%95%E7%BC%96%E8%BE%91%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我正在尝试编辑 clear 命令。我尝试进入 bin 目录,然后执行:“gedit clear”,但最终失败,因为我无法编辑文件,否则可能会损坏它。
我正在尝试使用“clear”命令清除屏幕,然后在清除后制作一些 ASCII 艺术。我可以做到这一点,但只能使用我在 中创建的函数.bashrc
。我想让它做同样的事情,但不使用不同的名称。我希望能够输入默认值clear
,它就会执行我所做的操作。
如果我遗漏了什么,请见谅。我是个菜鸟。
答案1
假设您已在某处有一个脚本,可以为您绘制定义或随机的 ASCII 艺术。假设此脚本位于此处:/usr/local/bin/ascii_art.sh
,并设置为可执行。
然后创建一个alias
(或者~/.bashrc
——~/.bash_aliases
您喜欢):
alias clear='\clear; /usr/local/bin/ascii_art.sh'
现在,当您运行clear
命令时,它首先执行默认二进制文件clear
,然后使用 ASCII 艺术执行您的脚本。
alias
您还可以通过编写更短的程序(例如),使事情变得更容易cl
。
或者您可以创建一个键绑定(例如Ctrl+ B)来运行您的别名 - 将以下内容添加到~/.bashrc
:
bind -x '"\C-b": clear'
答案2
如果您确实想要编辑命令,您需要找到源代码,修改它,然后编译它。
通常,我会首先探索创建一个新脚本(甚至一个函数)的选项,该脚本可以执行您想要执行的操作。如果它可以执行您想要的操作,请将此新脚本放入一个目录中,并预先设置一个包含清除内容的目录。
$ which clear
/usr/bin/clear
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
...例如/usr/local/bin
。
答案3
您不能编辑二进制文件,而应该编辑ncurses的(clear
是 ncurses 包的一部分)源代码,然后编译并安装它(请参阅 ncurses 源代码中的 INSTALL 文件)。或者,如果您需要在运行 clear 之前/之后添加额外的命令,请使用 shell 脚本编写自己的脚本/使用别名。