我已经阅读了一些帖子,例如是否有放置自定义 Linux 脚本的标准位置?,我应该把我的 bash 脚本放在哪里,但我仍然收到一个错误,我的脚本没有在 bash 中找到。
我已经把我的脚本(命名Wandering_Echo)在/usr/local/Custom_Programs
和符号链接成/bin
,/usr/local/bin
和/usr/local/sbin
,但是当我尝试运行sudo Wandering_Echo
,我得到这个错误:
sarah@LesserArk:/usr/local/Custom_Programs$ sudo Wandering_Echo ?
sudo: Wandering_Echo: command not found
不确定我做错了什么,因为它在超级用户 bin 目录中。
Wandering_Echo 使用 BTRFS 执行一些低级文件系统操作,因此它需要 root 才能运行。编辑 0: Wandering_Echo 确实以普通用户身份运行,而不是以终端的超级用户身份运行。
编辑 1:
sarah@LesserArk:/usr/local/Custom_Programs$ ls -l /usr/local/bin/Wandering_Echo /usr/local/Custom_Programs/Wandering_Echo
lrwxrwxrwx 1 root root 14 Aug 14 15:22 /usr/local/bin/Wandering_Echo -> Wandering_Echo
-rw-r--r-- 1 root root 96 Aug 14 13:09 /usr/local/Custom_Programs/Wandering_Echo
&
sarah@LesserArk:~$ sudo bash -c 'echo $PATH'
[sudo] password for sarah:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
有两个问题:
lrwxrwxrwx 1 root root 14 Aug 14 15:22 /usr/local/bin/Wandering_Echo -> Wandering_Echo
如果您访问符号链接,则其目标值将作为相对于符号链接的父文件夹的路径(如果以 开头,则作为绝对路径/
)。所以这个符号链接不是指向/usr/local/Custom_Programs/Wandering_Echo
而是指向自身,这不是那么有用。删除它并使用
sudo ln -s /usr/local/Custom_Programs/Wandering_Echo /usr/local/bin/Wandering_Echo
正确创建它。也检查其他符号链接。
-rw-r--r-- 1 root root 96 Aug 14 13:09 /usr/local/Custom_Programs/Wandering_Echo
正如您在评论中已经写的那样,此处缺少执行标志。用
sudo chmod u+x /usr/local/Custom_Programs/Wandering_Echo
使其仅对 root 可执行。替换u+x
用a+x
,以使其可执行于所有用户。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句