我正在尝试将 ebtables 添加到一个小路由器盒中。我去为正确的架构编译了一个二进制文件,然后把它放在/sbin/. 当我这样做时/sbin/ebtables,外壳会说/bin/sh: /sbin/ebtables: not found,但我可以这样做ls -l /sbin/ebtables并且它完美地显示出来:
-rwxr-xr-x 1 admin admin 4808 Aug 4 10:36 /sbin/ebtables
Run Code Online (Sandbox Code Playgroud)
关于这里发生了什么的任何想法?
我注意到在 Ubuntu 上,如果我输入以下内容:
mc
Run Code Online (Sandbox Code Playgroud)
它没有安装,我收到以下消息:
The program 'mc' is currently not installed. You can install it by typing: sudo apt-get install mc
Run Code Online (Sandbox Code Playgroud)
但是在 Debian 中,这是不可用的。它只是给出了“-bash:/usr/bin/mc:没有这样的文件或目录”消息。如何在 Debian 的 bash 命令行中实现相同的功能?是的,我知道如果我想要包建议,我可以简单地使用apt-cache search进行正则表达式搜索。但是,我希望在输入程序名称时立即得到更简单的建议。
根据讨论,该功能由包command-not-found 提供。但是,即使在安装它并安装 bash-completion 包之后,这在 Debian bash shell 上也不可用。
通常,当我错误输入诸如 ls 之类的命令时(例如,我在输入 's' 之前按了 ENTER)时,终端显示后会有很长(~2s)的延迟:
bash: l: command not found...
Run Code Online (Sandbox Code Playgroud)
我可以理解输入错误密码后出现类似延迟的原因,为什么输入错误密码后会有很大的延迟?. 但是为什么在一个无法识别的命令之后延迟呢?是否FAIL_DELAY在/etc/login.defs也影响呢?
我有一台安装了 Python 2.6 作为默认 Python 的机器。然后,我安装了 Python 2.7,并手动创建了 /usr/bin/python 作为新安装的符号链接。
然后,我遇到了 command-not-found 的问题。我正在尝试重新安装它:
sudo apt-get remove command-not-found
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
/usr/bin/python does not match the
python default version. It must be
reset to point to python2.6
Run Code Online (Sandbox Code Playgroud)
但我真的希望 Python 2.7 成为默认值。我该如何解决这个烂摊子?
我已经通过Python安装2.7.8make和make install,然后通过点子GET-PIP。我必须注意,我在我通过设置的代理后面工作
http_proxyftp_proxyhttps_proxy在
~/.zshrc/root/.basrc现在我可以跑了 pip
但我无法使用 sudo 通过用户的 shell 运行它
sudo pip
sudo: pip: command not found
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?
所以我正在运行 Debian 测试,我安装了这个command-not-found包,因为我只是喜欢 Ubuntu 中的这个功能。所以我安装了它,当我重新启动我的终端时,它说我需要更新可用包的缓存。所以我做了。我尝试了以下命令:
sudo update-command-not-found
sudo /usr/sbin/command-not-found
su and update-command-not-found
su and /usr/sbin/update-command-not-found
Run Code Online (Sandbox Code Playgroud)
但它只是退出,什么也不做。没有输出。根本不值一提。我试了一下,它说我需要再次更新缓存。
我在谷歌上没有看到任何关于这个的点击,所以我问你:
我只是尝试在 ssh 会话中运行此命令,本地是 Debian Wheezy KDE,远程是 Fedora 21 Gnome:
ps aux | grep xscreensaver
Run Code Online (Sandbox Code Playgroud)
这是输出:
bash: grep: command not found...
Run Code Online (Sandbox Code Playgroud)
以前没见过,请问是什么原因?
我就在更新系统前几个小时,但没有看到任何标记为删除的软件包。系统上只有两个用户,只有我在上面安装或删除软件。
编辑#1
这是复制的命令和输出,注意第二次没有空格:
[root@Hostname ~]# ps aux | grep xscreensaver
bash: : command not found...
[root@Hostname ~]# ps aux | grep xscreensaver
bash: grep: command not found...
Run Code Online (Sandbox Code Playgroud) 我有一个 shell 脚本
echo "Type your command"
read command
echo "You typed $command"
$command
Run Code Online (Sandbox Code Playgroud)
所以它运行一个命令很简单。我的问题是如果输入是错误的,假设lw终端说,command not found那么我如何将这些信息检索到我的 shell 脚本并打印到终端Try again wrong command。我是否必须将命令的输出重定向到某个文件并读取或是否有任何类型的陷阱信号传递给我的脚本。这是您关于如何以最有效的方式执行此操作的建议。
我使用 Fedora 23。在较旧版本的 Fedora(或者可能是 Ubuntu)中,当找不到命令时,我曾经在命令行 (Bash) 中获取软件包建议。我喜欢这个。
$ glmark2
Command not found
Command glmark2 is provided by package glmark2.
Would you like to install it? (y/n)
Installed package glmark2.
Run Code Online (Sandbox Code Playgroud)
如何在 Fedora 23 中获得此功能?
因此,当未找到命令时,“您的意思是:”列表是通过什么方式填充的?什么程序可以找到这些替代命令?什么意思:“(主),(宇宙)……”?我可以更改哪个程序找到这些吗?
bash ×4
debian ×2
fedora ×2
ubuntu ×2
autocomplete ×1
command ×1
command-line ×1
embedded ×1
grep ×1
python ×1
router ×1
shell ×1
shell-script ×1
sudo ×1