Linux中与DOS中的“start”命令相当的命令是什么?

25

我正在编写一个KSH脚本,需要在单独的命令提示符窗口中运行一个可执行文件。

9个回答

27

16

我认为你的意思是类似于 xterm -e your.sh &

不要忘记最后的&


3
在Windows中,我可以执行start abcd.pdf来在注册的查看器中打开PDF文件。在Linux中有类似的方法吗? - Jus12
3
@Jus12:xdg-open abcd.pdf - Hubro
只是要強調最後的 & 的重要性,在Python中,如果沒有它,下一行的程式碼將不會被執行。因此,如果你正在自動化,那麼這個 & 就是最重要的東西,如果你想等到它完成再繼續執行下去,就不要加上它,但如果你不想等待就加上它,這就是我觀察到的,@vartec 強調了非常重要的部分。 - Muneeb Ahmad Khurram

15

也许并不是启动了一个单独的窗口,而是可以使用"&"在后台运行一些可执行文件。

例如:

./myexecutable &

意味着您的脚本不会等待 myexecutable 完成,而是立即继续执行。也许这正是您想要的。


8

xdg-open 是 MS Windows 命令行 start 命令的良好替代品: xdg-open 文件 使用默认应用程序打开该文件或 URL xdg-open . 在默认文件管理器中打开当前文件夹


4

最有用的终端会话程序之一是screen。

screen -dmS title executable

您可以通过运行以下命令列出所有的屏幕会话:
screen -ls

您可以通过运行以下命令连接到您创建的屏幕会话(还允许多个同时/同步会话)

screen -x title

这将在当前窗口中打开模拟终端,其中正在运行的executable。您可以通过按C-a C-d来分离屏幕会话,并且可以重新连接多次。


3
如果你真的想让你的程序在一个新的终端窗口中启动,你可以像这样做: xterm yourtextmodeprogram 或者 gnome-terminal -e yourtextmodeprogram 或者 konsole -e mc
问题是你不能指望特定的终端模拟器被安装,所以(再次强调:如果你真的想这样做)你需要寻找常见的终端模拟器,然后执行遇到的第一个。
正如Joachim所提到的:正常的方法是将命令放在后台运行(如果你想深入了解,请阅读有关shell作业控制的文章)。
还有一些情况,你想启动一个持久的shell,即当你关闭终端窗口时,shell会话仍然存在。有两种方法可以做到这一点:
批处理:nohup command-to-run &
交互式:screen

2

如果你想要一个新的Windows,只需启动终端应用程序的新实例:在KDE中是

konsole -e whatever

我相信Gnome终端有类似的选项。

2
一些人建议使用“&”在后台启动它,但要注意这仍会将您启动的应用程序的所有控制台输出发送到您启动它的终端。此外,如果关闭初始终端,则加载的程序将结束。
如果您正在使用像KDE或GNOME这样的桌面环境,我建议检查alt+f2启动应用程序(gnome-open是GNOME的一个应用程序,我不知道KDE应用程序的名称),看看是否可以将启动命令作为参数传递给它们。
另外,如果您的意图是启动一个守护进程,您应该检查nohup文档。

1
我使用以下命令并成功运行:nohup <your command> &。不要忘记输入最后一个&。例如,我运行了一个监听5000端口的Python代码:nohup python3 -W ignore mycode.py &,然后通过netstat -tulnp | grep :5000确认它是否正常运行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接