Linux &引用;不能';t找不到引用控制台的文件描述符";Windows上的Ubuntu bash

Linux &引用;不能';t找不到引用控制台的文件描述符";Windows上的Ubuntu bash,linux,windows,bash,ubuntu,terminal,Linux,Windows,Bash,Ubuntu,Terminal,我是新来的,这是我的第一篇文章 我对Windows上Ubuntu上的Bash有问题。如果我在Mac终端上键入“open(filename)”,它会用正确的程序打开文件,但如果我尝试在Windows bash上使用它,它会说:“找不到引用控制台的文件描述符” 我也尝试过xdg open和gnome open,但它们都不起作用。有人能解释一下如何解决这个问题以及open命令是如何工作的吗? 提前谢谢 这是因为open是一个特定于Mac的命令,它在Linux(ubuntu)下不可用,Macopen可以

我是新来的,这是我的第一篇文章

我对Windows上Ubuntu上的Bash有问题。如果我在Mac终端上键入“open(filename)”,它会用正确的程序打开文件,但如果我尝试在Windows bash上使用它,它会说:“找不到引用控制台的文件描述符”

我也尝试过xdg open和gnome open,但它们都不起作用。有人能解释一下如何解决这个问题以及open命令是如何工作的吗?

提前谢谢

这是因为
open
是一个特定于Mac的命令,它在Linux(ubuntu)下不可用,Mac
open
可以执行一个文件(如果该文件是可执行的),或者将该文件打开到文本编辑器(如果它是文档或文本文件)或打开一个目录

您可以使用
xdg open
代替open,它可以独立于应用程序(如pdf、图像等)执行相同的操作。它将打开一个新的虚拟终端(我在Linux上尝试过)

例如:

xdg open~/Pictures/wallps/myPic.jpg


xdg open~/Docs/holidays.pdf
对于linux,请使用xdg openopen适用于Mac OSopen在linux中是openvt(开放虚拟终端)的别名

为了简化它,您可以将以下行附加到~/.bashrc或~/.zshrc,具体取决于您使用的shell

alias o="xdg-open" # o stands for open 
下一次,你可以像下面那样键入,以减少一些键盘笔划


在Linux上,
open
命令是
openvt
的别名,它在新的虚拟终端中运行命令。虚拟终端由控制台打开。控制台只喜欢响应真实的终端(不是模拟终端),因此控制台没有给模拟终端它的控制权。试着运行你的jpg,pdf。。。查看器的命令直接在终端中执行。(在一个真正的Linux CTRLT3+终端中尝试sudo openvt-f-s-c7--echo hi

正如其他人所指出的,在Mac上,open会做你认为它会做的事情。我不是Mac用户,所以我不能扩展这一段


然而,Windows有自己版本的这些命令:
start-example.txt
打开记事本,
start-example.docx
运行Word,你明白了。
然而,Windows是Windows,所以
start
可以像:
start“my file.txt”一样智能
打开一个名为
my file.txt的命令提示窗口

要在Windows bash上打开一个文件在Ubuntu中写入,您可以键入-:

nano filename.txt

上面的命令将允许您在文件中写入/编辑,之后,您可以使用ctrl+x,然后按“y”保存。使用-,检查/查看文件内容:

cat filename.txt


有道理。但是在Linux和Ubuntu上有类似的命令叫“xdg open”因此,我认为有一种方法可以在Windows bash@hcheung上实现它。我刚刚安装了xdg utils软件包,但它可以在bash中打开文件和文件夹。有什么方法可以通过Windows程序打开文件吗?我已经10多年没有使用Windows了!希望有人能帮助我。我的Linux操作系统上有一个
/bin/open
应用程序。确实有一个
open
cmd for Linux。您可以尝试使用批处理文件命令
start
。但是,这是
cmd
的内部命令。因此您需要将其包装为
cmd/c start”““filename”
对我不起作用:/上述命令出现了什么错误?顺便说一句,您可能需要将路径从Windows转换到Linux,或者从Linux转换到Windows。
open(1)
在Linux上是不推荐使用的
openvt(1)别名
.Off-topic:我也这样定义我的远程命令!
s
显示正在运行的作业
p
打印最新的输出
o
显示文件或者,将
open
定义为别名或函数,以使所有正常脚本在OS X和Linux上都能正常工作。也许Windows应该找出不打扰用户的方法s