是的,它可以是全局命令。

是的,它可以是全局命令。

检查此页面:https://www.veracrypt.fr/en/Uninstalling%20VeraCrypt.html

正如文档中提到的:

...
要在 Linux 上卸载 VeraCrypt,您必须以 root 身份运行以下命令:veracrypt-uninstall.sh。
...

当我在主目录中输入命令时sudo veracrypt-unistall.sh,它执行了它应该执行的操作(卸载 veracrypt)。然而据我所知,如果我们想运行一个shell脚本,我们必须与该脚本位于同一目录中。

现在这里有两种可能性:
一是脚本已经在 中~,或者
二是 shell 脚本 ( veracrypt-uninstall.sh) 本身是一个命令,存储在诸如:/bin或 之类的地方/usr/bin

另一方面,我在我的主目录中没有找到任何名为“veracrypt-uninstall.sh”的 shell 脚本,那么怎么办呢?

更新:
$ echo $PATH
输出: /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/sbin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin

答案1

是的,它可以是全局命令。

没有区别:可执行文件就是可执行文件。可执行文件用什么语言编写并不重要(某些语言可以做一些其他语言不能做的事情,但它们仍然是可执行文件)。在 Unix 中,可执行文件不应该有文件扩展名:.sh末尾的扩展名只是文件的一部分,没有什么特别的。然而,拥有它可以告诉调用者它是用什么语言编写的,并且在不更新所有调用者的情况下无法更改语言。

通过查找变量来搜索脚本和程序$PATH。键入echo $PATH以获取系统搜索位置的列表(sudo echo $PATH,当您是 root 时它搜索的位置)。它与搜索非脚本时的位置相同(因为它们都是可执行文件)。

运行本地程序(在同一目录下)

要运行同一目录中的某些内容,您需要执行以下操作./«script-name»,除非有人危险地添加.到了PATH.

答案2

不确定您使用的是哪种 Gnu/linux,但这里有一些通用的方便助手。

echo $PATH- 将为您提供正在查看的脚本和二进制文件的所有路径。请记住,在 sudo 下运行某些内容是作为不同的人执行的,因此“ sudo echo $PATH”可能会产生不同的结果。

在某些操作系统上,root 可以访问用户无法访问的命令。

whereis veracrypt-unistall.sh如果已知的话,可能sudo whereis veracrypt-unistall.sh会显示路径,有些系统也有which命令。

which veracrypt-unistall.sh

如果您安装了 top 或 htop,在脚本运行时将其打开将允许您在命令列中看到完整路径

相关内容