如何执行在Linux上运行的应用程序.docx

上传人:b****8 文档编号:23872975 上传时间:2023-05-21 格式:DOCX 页数:13 大小:445.17KB
下载 相关 举报
如何执行在Linux上运行的应用程序.docx_第1页
第1页 / 共13页
如何执行在Linux上运行的应用程序.docx_第2页
第2页 / 共13页
如何执行在Linux上运行的应用程序.docx_第3页
第3页 / 共13页
如何执行在Linux上运行的应用程序.docx_第4页
第4页 / 共13页
如何执行在Linux上运行的应用程序.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

如何执行在Linux上运行的应用程序.docx

《如何执行在Linux上运行的应用程序.docx》由会员分享,可在线阅读,更多相关《如何执行在Linux上运行的应用程序.docx(13页珍藏版)》请在冰豆网上搜索。

如何执行在Linux上运行的应用程序.docx

如何执行在Linux上运行的应用程序

如何执行在Linux上运行的应用程序关键字:

Linux

先决条件

要充分理解本文,必须具备Windows环境下桌面应用程序的工作经验,我认为读者对如何使用Linux桌面有一个基本的了解。

使用一个运行的Linux计算来机探讨本文的概念和示例是很有帮助的。

概述

有时候第一次在Linux上运行一个应用程序需要一点额外工作。

有些应用程序,比如服务器服务,可能无法安装为服务,因此您需要从命令行启动这些应用程序。

对于启动这些应用程序的用户帐户而言,需要在应用程序文件中设置执行许可标志(x)。

运行用户空间应用程序

Linux在内核空间或用户空间运行进程。

用户空间是操作系统的区域,应用程序通常在此运行。

简单地说,每个用户帐户有其自己的用户空间,应用程序在这个领域内运行。

默认情况下,只有root用户有权访问内核空间。

root用户是Linux中的超级用户,相当于Windows中的管理员帐户。

在root用户帐户下运行应用程序可能会引起安全风险,是不可取的。

很多服务器服务需要root权限启动服务。

然而,服务启动后,root帐户通常会将其移至服务帐户。

严格地说,Linux中的服务帐户才是标准的用户帐户。

主要区别是服务帐户仅用于运行一个服务,而不是为任何实际登录的用户准备的。

设置权限

您可以使用chmod命令在一个文件中设置执行权限。

在Linux中,umask设置通常用来防止下载的文件被执行,也有充分的理由相信,因为它有助于维护Linux计算机的安全性。

大多数Linux发行版具有一个值为022的umask设置,这意味着,默认情况下一个新文件权限设置为644.权限的数字表示形式采用读(4)、写

(2)、执行

(1)的格式。

因此,默认权限为644的应用程序下载意味着文件所有者有读写权限,而组用户和其他用户只有读权限。

例如,为每个人赋予一个文件的执行权限,使用chmoda+x命令。

a表示所有人,加号(+)表示添加,而x表示执行。

同样地,如果应用程序是一个服务器服务,您应该确保只有授权帐户才有权执行此服务。

如果一个应用程序能够在标准用户帐户权限下运行,但只有特定组中的用户才需要使用它,您可以将该组所有者权限设置为可执行,然后将这些用户添加到该组中。

更具体地说,您可以在一个可执行文件中设置访问控制列表(ACL)权限,赋予特定用户或组权限来运行该应用程序。

使用setfacl实用工具设置ACL权限。

对于这些需要以root用户启动进程的应用程序,比如服务器服务,您有几个选择。

总结了允许用户执行需要root权限的服务器服务的各种选项。

选项描述

作为root用户不推荐用于服务器服务。

当用户已经知道root密码而且应用程序泄露不是首要关注问题时,可用于应用程序。

允许标准用户以另一个用户方式,比如

SetUID由于安全问题,不推荐使用。

SetUID

sudo授予一个用户或组成员权限以执行root密码。

在一个文件上为用户所有者、组所有者或其他人(所有人)

root用户,执行一个文件。

sudo很常用,并且被认为是一个很好的实践。

可能额外需要root权限的文件。

该用户不需要知道

带有文件权限的标准用户帐户

设置执行权限。

这是授予那些不需要root权限来执行应用程序的用户的常用方法。

带有ACL权限的标准用户帐户使用较少,但是如果您不想授予一个用户sudo访问

或者更改文件的权限,这也是一个可行的解决方案。

在一个文件上使用setfacl命令,您可

以授予一个特定用户或用户组执行该文件的权力。

从命令行运行

VirtualMachine

Java命令来运

C#的应用程序。

在管理Linux服务器时,从命令行运行应用程序是一项基本的任务。

很多应用程序使用shell脚本(类似于Windows批处理文件.bat)来启动应用程序并执行其他任务,比如设置变量以及为其他用户分配进程。

例如,应用程序可能需要一个Java?

(JVM)来执行。

那样的话,shell脚本可以设置适当的环境变量,然后执行行JavaArchive(JAR)或类文件。

这同样适用于使用Perl、Python、甚至

(当然,C#编译的应用程序可以在Linux上运行)

命令。

如果您在

从命令行或者shell提示符执行应用程序的一个常用方法是使用./

Linux中使用句号(。

)和正斜杠(/),就意味着告诉环境您想要以可执行文件运行该文件。

例如,运行一个名为myapp的可执行文件,您可以使用./myapp命令。

同样地,您可以在

文件名之前加上语言环境,比如:

sh

php

python

perl

java

但更多情况下,套装应用程序使用shell脚本,以#!

符号设置环境变量提供该语言的

运行时可执行路径,比如#!

/usr/bin/python.您也应该熟悉这种方法。

清单1使用catalina.sh默认脚本通过./方法启动ApacheTomcat应用程序服务器。

然后,使用sh方法启动服务器。

因为默认端口是8080,标准用户不需要对其进行特别修

改就可以启动该服务。

清单1.从命令行执行应用程序

(-/catsLina.ghstart

Using

/Dpt/ipichc-tcizcit-7.0^26

UsingCAIAllNA_HC'iiE:

/opt/apache-toiucdt-,0,26

Dsin7CATALINa__TMPDIR:

/opt/apache-tomcat-7.0.2S/temp

 

UaingfCUkSSP^Hi/opt/apacfic-tmumt:

-?

.0.26/bin/JMCcstrap.jar;

/opu/apache-tcnicau-7.0.26/bin/1hiic£l-]ulL,:

ar

*,/catalina-shstop

$3hCatalina.shatart

daliig:

/Dpt/ipaciit'toricAt'■;.O'.26

CJmingCAIAlIKi^HOME:

/opt/apacJie-CQEMt-7,[}□2€

UsingCATALINA_TMPDTR:

/opt/apache-tcmcat-7,0.26/temp

 

UsingCI^SPAIH;/opt/aEMClie-toflijtat-?

.0.2^/trn/bostatrap.jar:

考虑启动一个典型HypertextTransferProtocol(HTTP)Web服务器。

在Linux中,任

何低于1024的端口被认为是一个权限端口,只有root可以打开权限端口。

因为,默认情

况下,Web服务器运行于端口80,root需要启动该进程。

然而,如上所述,以root用户

运行一个服务被认为是不安全的。

正确的步骤是以root启动该服务,然后将其转移到一

个标准用户或者服务帐户。

幸运的是,许多服务器服务由脚本来执行这一操作。

如果您从头开始构建ApacheWeb

服务器,您将会发现它以root用户启动,然后将httpd线程转交给apache用户。

 

cd/iLsr/local/ipac&ez/bln

+apictiecEl3匸art

aux1

1^rep

apache

23094

0.0

0.3

117S4

1912

S

10:

41

0:

00

sbin/httpd

-Sr

sxa

且pa匚h吕

23095

0-0

C-3

117S4

s

o;oa

-t

爭匸a

apache

23D96

0.3

117S4

■X

s

10:

41

0:

00

/usr/shin/httpd

-t

3-ta

apache

23097

Q.a

0.3

11734

1312

7

s

10:

41

0:

00

/uar/flbin/httpd

-t

Eta

apa-die

23098

0-0

0.3

11784

1912

7

s

1D141

o:

aa

/ixBz/stin/httpd

-t

1

jlT

在后台运行应用程序

一些安装的软件可能不像ApacheWeb服务器那样用户友好。

您很可能需要在流程启

动后以后台方式运行它,除非您正在进行故障排除,或者想要看看应用程序到底怎么了。

果您没有这么做,shell关闭后应用程序将终止。

运行服务器服务时,可不希望每次关闭终端shell或者退出时服务都会停止!

如果在后台运行一个应用程序,即使关闭了shell窗口,应用程序也会继续运行。

您可

vi编辑器

&可以打开

nohup实用

以通过在执行命令结尾附加一个(&)符号来启动应用程序。

例如,您可以使用

打开文件,然后使用vi/etc/sysconfig/network&命令在后台运行该文件,因为

/etc/sysconfig/network文件并将其保留在后台。

即使在退出后,您也可以使用工具支持进程继续运行。

例如,nohupvi/etc/sysconfig/network&.

清单3在Vim编辑器中打开一个用来编辑的文件,然后将其放在后台。

清单3.在后台运行应用程序

-d

tvi/etc/sysc口n三iq/rLetwo工km{1]24号4口#jota[1]+Stopped輩J./etc/sysccnfig/nEtw|

Jr,尸

为在后台上运行的每个

您可以输入jobs命令来查看您在后台上运行的所有应用程序。

任务分配了一个序列号,从1开始。

清单3中的任务序列号是1.24940是进程ID(PID)。

您可以使用fg命令和特定的任务号将应用程序移到前台。

在本例中,进程没有被用户所使

用,因此显示为Stopped.但是,命令fg1打开终端并回到编辑文件的活动进程。

从桌面运行应用程序

在Linux中从桌面运行图形用户界面(GUI)应用程序与在Windows中没多大区别。

通常,您需要了解特定的桌面环境下应用程序在菜单中是如何分组的。

Linux有足够的桌面

应用程序,可用于各种任务。

有一些应用程序是Linux本机固有的,还有另外一些应用程

序可能是在一个常用运行时环境中使用C#开发的跨平台应用程序,比如,。

NETFramework

应用程序。

您会发现,使用一个Wine这样的虚拟环境,您甚至可以在Linux上运行您最

喜爱的Windows应用程序。

Linux本机应用程序

您很有可能会为您最喜爱的基于

序。

在桌面上运行Linux本机应用程序比较直观。

中找到这些已组织的应用程序,当您想要一个Windows

Windows的应用程序找到一个替代的Linux应用程

root密码,然后才开始运行。

选项。

否则,您运行的所有程序都

Windows一样,您通常可以在菜单应用程序时,只需单击并运行即可。

对于那些需要root权限的应用程序,将会提示您输入这在概念上类似于Windows中的RunasAdministrator会位于您所登录帐户的用户空间中。

在Windows中,您可以创建桌面快捷键。

Linux也有类似的快捷键launcher,您可以

将它放在面板或桌面上。

单击launcher时,快捷键将执行程序。

图1显示GNOMEDesktop上MozillaFirefoxWeb浏览器的两个launcher.—个

launCher位于面板上,另一个位于桌面上。

launCher

图1.查看桌面或面板上的

IAppH匚ation写PlacesSystem~[0¥電丿

 

Frrefox

一2&

Compifter

B8

tbosrsHome

Mono

许多Windows应用程序都是使用.NETFramework开发的。

Mono是.NET的一个开

linux)。

事实上,Mono网站称其为C#和Common

与.Net是二进制兼容的。

此项目目前由Xamarin支

源实现,可在很多平台上运行(包括

LanguageRuntime(CLR)的一个实现,持。

.NETframework(或Mono)开发的应用程序,就像在

在Linux上,您可以执行使用

Windows上一样。

但是,记住Linuxumask和默认文件权限。

您仍然需要提供文件的执行权限,这样Linux才会允许执行可执行文件。

在Mono(可以安装在您的LinuxGNOME桌面上)上开发的一些跨平台应用程序,比如

F-Spot,同本机GNOME应用程序一同位于菜单中。

F-Spot是一个管理照片的开源应用程

序。

尽管它是C#应用程序,但是在GNOME桌面上表现为一个本机应用程序。

为应用程序创建一个launcher后,就可以像在Windows中那样单击并运行。

图2演示了基于Mono的应用程序F-Spot的位置,以及为其创建桌面或面板

launcher的方法。

图2.为F-Spot创建一个launcher

&I圍Accessories

■■■—

3

lnlt!

TiieL

目Office

壬兰Pn>qramiin<;

Sauid&Video

.5/stemTools

*(/Vine

Wine

Windows软件。

有了

Wine使您可以在Linux和其他操作系统上运行Windows软件。

有了Wine,您就可

以像在Windows中那样安装和运行应用程序。

Wine仍然在积极的发展中,而且并不是所

有的Windows程序都可以使用Wine.如果您的应用程序是为Windows操作系统编译的,

您就会发现它可以使用Wine来充分运行,前题是它是一个桌面应用程序而不是一个服务

器应用程序。

一定要检查Wine文档关于在Linux上运行该应用程序的可行性,因为Wine

并不完全支持所有的应用程序。

当您在Linux

文件夹,如清单

中使用Wine时,在您帐户主目录下有一个模拟Windows环境的隐藏

4所示。

串cd/hcane/tboatZ«winc/drive_c/windoii

ccaccand

explorer.ese

Fonts

help

inf

Inatali&r

13.txt

MicrosoftntTET

notspad,exe

pvd.txt

regedit.exe

rundll,.,ex&

3vstex

使用Wine安装一个应用程序之后,您通常可以在桌面菜单中找到它,然后以在

Windows中同样的方式来运行。

Linux操

Wine就可以在Linux桌面安装Windows版本。

与Wine相Applications>Wine>Programs,如图3所示。

例如,Camstudio是一个开源工具,用于记录和管理屏幕视频。

目前还没有作系统的版本。

但是,使用关的应用程序通常分组为

结束语

在管理一个Linux服务器时,您肯定会遇到从桌面和命令行执行软件的问题。

了解如

何设置适当的权限和用户帐户后,您就可以安全地运行这些应用程序。

使用长期运行的进程,

比如服务器服务,您可以从命令行执行,并在后台进行适当设置。

如果您的应用程序适合于

从桌面运行,也可以那样做,有时候甚至可以是Windows应用程序!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1