如何在终端下以后台模式运行Linux程序

Gary Newell 的头像

·

·

·

17,938 次阅读
Linux Terminal Window.

Linux终端窗口

这是一个简短但是非常有用的教程:它向你展示从终端运行Linux应用程序的同时,如何保证终端仍然可以操作。

在Linux中有许多方式可以打开一个终端,这主要取决于你的发行版的选择和桌面环境。

使用Ubuntu的话,你可以使用CTRL + ALT + T组合键打开一个终端。你也可以点击超级键(Windows键)打开一个终端窗口。在键盘上,打开Ubuntu Dash,然后搜索”TERM”。点击”Term”图标将会打开一个终端窗口。

其他诸如XFCE, KDE, LXDE, Cinnamon和MATE的桌面环境,你将会在菜单中发现“终端”这个应用。还有一些发行版会把终端图标放在菜单项,或者在面板上放置终端启动器。

你可以在终端里面输入一个程序的名字来启动一个应用。举例,你可以通过输入”firefox”启动火狐浏览器。

从终端运行程序的好处是可以使用额外的选项。

举个例子,如果你输入下面的命令,一个新的火狐浏览器将会打开,而且默认的搜索引擎将会搜索引号之间的词语:

firefox -search "Linux.About.Com"

你会发现,如果你运行火狐浏览器,应用程序打开后,控制权将会回到终端(重新出现了命令提示符),这将意味着你可以继续在终端工作。

通常情况下,如果你通过终端运行一个程序,程序打开后,并且直到那个程序关闭结束,你都将不会获得终端的控制权。这是因为你是在前台打开程序的。

想要从终端运行一个程序,并且立即将终端的控制权返回给你,你需要以后台进程的方式打开程序。

为了以后台进程的方式打开一个程序,只需要添加符号(&)到命令中,如下面所示:

libreoffice &

在终端中仅仅提供程序的名字,应用程序可能运行不了。如果程序不存在于一个设置在PATH 环境变量的文件夹中,你需要指定完整的路径名来运行程序。

/path/to/yourprogram &

如果你并不确定一个程序是否存在于Linux文件系统中,使用find或者locate命令来查找该应用程序。

找一个文件的语法如下:

find /path/to/start/from -name programname

举个例子,可以使用下面的命令寻找Firefox的位置:

find / -name firefox

输出会很快滚动出很多,所以你可以以管道的方式控制输出的多少:

find / -name firefox | more
find / -name firefox | less

find命令将会返回因权限拒绝而发生错误的文件夹数量,这些文件夹你没有权限去搜索。

你可以使用sudo命令提升你的权限。如果sudo没有安装,你需要切换到拥有权限的用户:

sudo find / -name firefox | more

如果你知道你想寻找的文件在你的当前文件夹中,你可以一个点代替先前的斜线,如下:

sudo find . -name firefox | more

你可能不需要sudo来提升权限。如果你在home文件夹中寻找文件,sudo就不需要。

一些应用程序需要提升用户权限来运行,你可能得到一个缺少权限的错误,除非你使用一个具有足够权限的用户,或者使用sudo提升你的权限。

下面是一个小花招。如果你运行一个程序,而且它需要提升权限来运行,输入下面命令来提升权限重新执行:

sudo !!

via: http://linux.about.com/od/commands/fl/How-To-Run-Linux-Programs-From-The-Terminal-In-Background-Mode.htm

作者:Gary Newell 译者:su-kaiyao 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

17 条回复

  1. 微博评论 的头像
    微博评论

    后台运行Linux程序

    来自杭州
  2. 来自 - 日本 的 Chrome/Linux 用户 的头像
    来自 – 日本 的 Chrome/Linux 用户

    還以為會提到screen/tmux,看完略失望

  3. 微博评论 的头像
    微博评论

    请问sudo !!是什么意思?

    来自泉州
  4. 来自 - 广西来宾 的 Chrome/Windows 用户 的头像
    来自 – 广西来宾 的 Chrome/Windows 用户

    !!是上一个命令

    来自来宾
  5. 微博评论 的头像
    微博评论

    回复@stonerzju:不试不知道哦

    来自安庆
  6. 来自 - 四川成都 的 Firefox/Linux 用户 的头像
    来自 – 四川成都 的 Firefox/Linux 用户

    建议在根目录建立一个指向/dev/null的符号链接 nul,然后gedit 1> /nul 2>&1 &。这样写可以在终端忽略程序的输出信息。

    来自成都
  7. 来自 - 四川成都 的 Firefox/Linux 用户 的头像
    来自 – 四川成都 的 Firefox/Linux 用户

    不建议在sudo上用!!,执行什么命令应该明确写清楚,甚至参数都要用长格式。因为sudo执行权限高,一旦看错选错,执行了不该执行的命令,那才麻烦。特别是多开终端的情况下。

    来自成都
  8. 微博评论 的头像
    微博评论

    用screen

    来自杭州
  9. 微博评论 的头像
    微博评论

    &

    来自杭州
  10. linux 的头像
    linux

    赞同这个意见!

    来自北京
  11. linux 的头像
    linux

    符号链接不是必要的,只是方便。

    来自北京
  12. linux 的头像
    linux

    这篇是小白级的,screen和tmux之前也有文章介绍。哎作为 Linux 技术普及,各种文章得一遍遍发。

    来自北京
  13. 微博评论 的头像
    微博评论

    咱都用screen

  14. 微博评论 的头像
    微博评论

    回复@stonerzju: 快点!! [江南style]

    来自北京
  15. 微博评论 的头像
    微博评论

    回复@Mr_PingPing:速度!![嘻嘻]//@Mr_PingPing:回复@stonerzju: 快点!! [江南style]

  16. 微博评论 的头像
    微博评论

    回复@Mr_PingPing:速度!![嘻嘻]

  17. w1748587889 的头像
    w1748587889

    ming ling  you dian shao

    来自兰州

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注