bash:命令未找到消息

问题描述 投票:0回答:1

我刚刚安装了 Debian 12,安装时没有来自 netinst ISO 的错误消息,并且 bash 找不到某些命令。

lm@debian:~$ sudo sh -c 'echo $PATH'
[sudo] password for lm: 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


lm@debian:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/lm/.local/bin

这些都是简单的命令,例如 systemcntl、reboot、甚至 dpkg。 因此,需要手动改进它们的路径。例如,我新安装了 rfkill 软件包,但找不到它。

Preparing to unpack .../rfkill_2.38.1-5+b1_amd64.deb ...
Unpacking rfkill (2.38.1-5+b1) ...
Setting up rfkill (2.38.1-5+b1) ...
Processing triggers for man-db (2.11.2-2) ...
root@debian:/home/lm# rfkill
bash: rfkill: command not found
root@debian:/home/lm# sudo rfkill
ID TYPE      DEVICE      SOFT      HARD
0 wlan      phy0   unblocked unblocked
1 bluetooth hci0   unblocked unblocked
root@debian:/home/lm# 

为什么它找不到该命令,如果它必须在 /usr/bin 中,它已包含在路径中并且我有超级用户权限?

下一个命令也一样:

root@debian:/home/lm# rfkill unblock 0
bash: rfkill: command not found
root@debian:/home/lm# sudo rfkill unblock 0
root@debian:/home/lm#

这个月我已经重新安装了这个发行版 6 次(各在 3 台机器上安装了 2 次),但结果相同。

我该如何解决这个问题?

linux bash path command debian
1个回答
1
投票

你的问题不太容易理解,但据我了解,这是一个环境问题。我什至会说这不是问题而是误会

/usr/sbin//sbin 只能通过提升的权限访问,这就是为什么在标准用户中找不到启动 rfkill 命令的原因。

@Grobu 是对的,如果你不能以 root 身份运行命令,那就是你没有 root 用户环境。 此行确认您仍然拥有 lm 用户环境:

root@debian:/home/lm#
切换用户环境使用

su -
例如:

test@debian:/home/test$ su root@debian:/home/test# rfkill unblock 0 bash: rfkill: command not found
但是

test@debian:/home/test$ su - root@debian:/root# rfkill unblock 0 root@debian:/root#
使用 sudo 命令不会出现问题,因为该命令是在 root 用户的环境下启动的。

无法以标准用户身份启动 rfkill 命令。

如果您希望能够从其他用户访问 rfkill 命令,您没有太多选择:

    使用须藤
© www.soinside.com 2019 - 2024. All rights reserved.