如何执行在Linux上运行的应用程序.docx
- 文档编号:9860380
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:13
- 大小:445.17KB
如何执行在Linux上运行的应用程序.docx
《如何执行在Linux上运行的应用程序.docx》由会员分享,可在线阅读,更多相关《如何执行在Linux上运行的应用程序.docx(13页珍藏版)》请在冰点文库上搜索。
如何执行在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应用程序!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 执行 Linux 运行 应用程序