cd 命令不起作用

cd 命令不起作用

因此,每次我尝试导航到目录时,它都会显示此消息,但当我导航到我的桌面目录时,它就是这样

答案1

看起来@steeldriver 是正确的,您的示例在 cd 之前有一些不可见的东西。空格是无害的,如果它只是一个空格,让我们考虑一下您的选择。

在你的终端里,你看到我所看到的东西了吗?

$ type cd
cd is a shell builtin

我不确定“shell 内置”是指来自 /bin/sh 或类似 /bin/bash 或 /bin/dash 的 shell 的功能。我的第一猜测是它来自 shell,而不是 sh。确保您的环境指定了 $SHELL。

$ echo $SHELL
/bin/bash

如果您在会话中乱动,无论是使用“export ...”之类的命令交互,还是通过运行脚本或编辑 .bashrc,都可能导致您看到的问题。请检查您的 SHELL 变量。

可能,您会看到一些合法的 $SHELL。确保输出中提及了当前存在的文件。

$ ls -la /bin/bash
-rwxr-xr-x 1 root root 1099016 May 16 06:35 /bin/bash

也许你看到了破折号或者别的东西。

你能打开一个新终端看看是否发生了同样的事情吗?每个终端都会启动自己的 shell,问题可能看起来不同,或者根本不出现。如果问题相同,则意味着问题出在你的配置中或 shell 文件本身中。

假设您确实安装了 bash 包或任何其他 shell,实际上,在该终端中启动一个新 shell(-l 表示登录 shell):

$ bash -l

之后的问题还一样吗?

如果失败,我会使用命令行安装/重新安装 shell 程序。我有 bash 和 dash:

$ dpkg -l | grep bash
ii  bash                      
4.4-2ubuntu1.1              amd64        GNU Bourne Again SHell

$ dpkg -l | grep dash   
ii  dash                                                            
0.5.8-2.3ubuntu1            amd64        POSIX-compliant shell

在你的情况下,我会尝试重新安装

$ apt-get install --reinstall bash

或类似的东西。如果您损坏了 shell 文件,则此操作可能会在您注销并登录时修复它。

为什么要重新安装 dash?在 Ubuntu 中,尽管我将 BASH 作为 shell,但看起来 /sbin/sh 是由 dash 提供的:

$ dpkg -S /bin/sh
diversion by dash from: /bin/sh
diversion by dash to: /bin/sh.distrib
dash: /bin/sh

最后再说一句。如果有人试图入侵你的系统并控制它,他们可能会做的一件事就是尝试替换你的 shell。这也许可以解释你遇到的问题,尽管我承认提起这件事似乎有点夸张。

相关内容