首页 > 解决方案 > 'll' 不是内部或外部命令、可运行程序或批处理文件

问题描述

错误:'ll' 未被识别为内部或外部命令、可运行程序或批处理文件。

尝试获取有关当前工作目录中文件和目录的详细信息时出现此错误,我正在使用 cmd。

我的 dockerfile 包含以下代码:

FROM ubuntu

MAINTAINER my name <my email address>

RUN apt-get update

CMD ["echo","Hello World...! from my first docker image"]

我对 docker 很陌生,我已经尝试了下面链接中提到的所有内容,但对我没有任何帮助。 Linux 命令“将”不起作用

请如果有人可以帮助。谢谢。

标签: docker

解决方案


llls -alF是已指出的同一个 SO 问题中指定的别名(简写) 。在 Linux 中,您可以使用别名来缩短任何命令。别名的格式是alias_name='<full command>'.

一些 Linux 版本预装了一组默认别名,例如 alias rm='rm -i'mv='mv -i'. ll是其中之一。如果您收到此类错误,则需要添加alias ll='ls -alF'.

现在的问题是在哪里添加?
每个人都会建议将别名放入~/.bashrc. 但是如果你使用 bash shell,这个文件将是只读的。因此,它总是有可能被错过。你需要把它放在一个总是(最有可能)被阅读的地方。

我同意大多数人会建议您将其添加到其中,/etc/profile但除非您知道自己在做什么,否则您不应该在这里进行更改。但是您可以将这种解决方法作为一个小的 shell 脚本并将其放在扩展名下/etc/profile.d*.sh因为几乎所有 shell 都始终读取此目录。

因此解决方案是您需要创建一个包含别名的 sh 扩展名文件并将其放入/etc/profile.d/.

将所有这些应用到您的 Dockerfile 中,它可以重写为

FROM ubuntu
MAINTAINER my name <my email address>
RUN echo "alias ll='ls -alF'" > /etc/profile.d/alias.sh && apt-get update
CMD ["echo","Hello World...! from my first docker image"]

注意:默认情况下,alpine 图像似乎不会读取 /etc/profile.d,因此如果您使用它,请遵循这一点。


推荐阅读