运行linux catalina.shh脚本提示beep!

13年05月20日
13年05月20日
13年05月20日
13年05月20日
13年05月20日
13年05月20日
13年05月20日
13年05月20日
本栏热门推荐【shell脚本】 该脚本是用来新建一个目录,要传入一个参数,sh ifmkdir.sh 123 运行后 提示语法错误_百度知道
提问者采纳
修改了下,你看看是否可以运行了:#!/bin/shdd=$1if [ &$dd& = && ];then
echo &you did not input anything!&
exit 1fiif [ -d $dd ]then
echo &the directory is exist!&
&-- 这句按语义该在if分支
&-- 这边加个exit好点else
echo -n &do you create it now [y..n]?&fi
&-- 这边少加了fi,初学者常见错误read mmif [ &$mm& = &y& ] || [ &$mm& = &Y& ]then
echo & create it now!&
mkdir $ddfi
&-- 同上if [ $? != 0 ]then
echo & it is not OK!&
exit 1else
提问者评价
谢谢你帮我大忙了
其他类似问题
shell脚本的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何执行在Linux上运行的应用程序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
3页免费3页1下载券23页1下载券1页免费3页1下载券 5页4下载券4页1下载券10页1下载券2页免费20页1下载券
喜欢此文档的还喜欢56页免费38页免费41页免费20页免费41页免费
如何执行在Linux上运行的应用程序|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢您现在的位置:&&>>&&>>&&>>&&>>&正文
如何执行在Linux上运行的应用程序
&&& 先决条件
&&& 要充分理解本文,必须具备 环境下桌面应用程序的工作经验,我认为读者对如何使用 Linux 桌面有一个基本的了解。使用一个运行的 Linux 计算来机探讨本文的概念和示例是很有帮助的。
&&& 有时候第一次在 Linux 上运行一个应用程序需要一点额外工作。有些应用程序,比如服务,可能无法安装为服务,因此您需要从命令行启动这些应用程序。对于启动这些应用程序的用户帐户而言,需要在应用程序文件中设置执行许可标志 (x)。
&&& 运行用户空间应用程序
&&& Linux 在内核空间或用户空间运行进程。用户空间 是操作系统的区域,应用程序通常在此运行。简单地说,每个用户帐户有其自己的用户空间,应用程序在这个领域内运行。
&&& 默认情况下,只有 root 用户有权访问内核空间。root 用户 是 Linux 中的超级用户,相当于
中的管理员帐户。在 root 用户帐户下运行应用程序可能会引起风险,是不可取的。
&&& 很多服务需要 root 权限启动服务。然而,服务启动后,root 帐户通常会将其移至服务帐户。严格地说,Linux 中的服务帐户 才是标准的用户帐户。主要区别是服务帐户仅用于运行一个服务,而不是为任何实际登录的用户准备的。
&&& 设置权限
&&& 您可以使用 chmod 命令在一个文件中设置执行权限。在 Linux 中,umask 设置通常用来防止的文件被执行,也有充分的理由相信,因为它有助于维护 Linux 计算机的性。
&&& 大多数 Linux 发行版具有一个值为 022 的 umask 设置,这意味着,默认情况下一个新文件权限设置为 644.权限的数字表示形式采用读 (4)、写 (2)、执行 (1) 的格式。因此,默认权限为 644 的应用程序意味着文件所有者有读写权限,而组用户和其他用户只有读权限。
&&& 例如,为每个人赋予一个文件的执行权限,使用 chmod a+x 命令。a 表示所有人,加号 (+) 表示添加,而 x 表示执行。同样地,如果应用程序是一个服务器服务,您应该确保只有授权帐户才有权执行此服务。
&&& 如果一个应用程序能够在标准用户帐户权限下运行,但只有特定组中的用户才需要使用它,您可以将该组所有者权限设置为可执行,然后将这些用户添加到该组中。
&&& 更具体地说,您可以在一个可执行文件中设置访问控制列表 (ACL) 权限,赋予特定用户或组权限来运行该应用程序。使用 setfacl 实用工具设置 ACL 权限。
&&& 对于这些需要以 root 用户启动进程的应用程序,比如服务器服务,您有几个选择。总结了允许用户执行需要 root 权限的服务器服务的各种选项。
&&& 选项 描述
&&& 作为 root 用户 不推荐用于服务器服务。当用户已经知道 root 密码而且应用程序泄露不是首要关注问题时,可用于应用程序。
&&& SetUID 由于安全问题,不推荐使用。SetUID 允许标准用户以另一个用户方式,比如 root 用户,执行一个文件。
&&& sudo 很常用,并且被认为是一个很好的实践。sudo 授予一个用户或组成员权限以执行可能额外需要 root 权限的文件。该用户不需要知道 root 密码。
&&& 带有文件权限的标准用户帐户 在一个文件上为用户所有者、组所有者或其他人(所有人)设置执行权限。这是授予那些不需要 root 权限来执行应用程序的用户的常用方法。
&&& 带有 ACL 权限的标准用户帐户 使用较少,但是如果您不想授予一个用户 sudo 访问或者更改文件的权限,这也是一个可行的解决方案。在一个文件上使用 setfacl 命令,您可以授予一个特定用户或用户组执行该文件的权力。
&&& 从命令行运行
&&& 在管理 Linux 服务器时,从命令行运行应用程序是一项基本的任务。很多应用程序使用 shell 脚本(类似于 Windows 批处理文件 .bat)来启动应用程序并执行其他任务,比如设置变量以及为其他用户分配进程。例如,应用程序可能需要一个 ? Virtual Machine (JVM) 来执行。那样的话,shell 脚本可以设置适当的环境变量,然后执行
命令来运行 Java Archive (JAR) 或类文件。这同样适用于使用 Perl、Python、甚至
的应用程序。(当然, 编译的应用程序可以在 Linux 上运行)
&&& 从命令行或者 shell 提示符执行应用程序的一个常用方法是使用 ./ 命令。如果您在 Linux 中使用句号 (。) 和正斜杠 (/),就意味着告诉环境您想要以可执行文件运行该文件。例如,运行一个名为 myapp 的可执行文件,您可以使用 ./myapp 命令。同样地,您可以在文件名之前加上语言环境,比如:
&&& python
&&& 但更多情况下,套装应用程序使用 shell 脚本,以 #! 符号设置环境变量提供该语言的运行时可执行路径,比如 #!/usr/bin/python.您也应该熟悉这种方法。
&&& 清单 1 使用 catalina.sh 默认脚本通过 ./ 方法启动 Apache Tomcat 应用程序服务器。然后,使用 sh 方法启动服务器。因为默认端口是 8080,标准用户不需要对其进行特别修改就可以启动该服务。
&&& 清单 1. 从命令行执行应用程序
&&& 考虑启动一个典型 Hypertext Transfer Protocol (HTTP) Web 服务器。在 Linux 中,任何低于 1024 的端口被认为是一个权限端口,只有 root 可以打开权限端口。因为,默认情况下,Web 服务器运行于端口 80,root 需要启动该进程。然而,如上所述,以 root 用户运行一个服务被认为是不安全的。正确的步骤是以 root 启动 该服务,然后将其转移到一个标准用户或者服务帐户。
&&& 幸运的是,许多服务器服务由脚本来执行这一操作。如果您从头开始构建 Apache Web 服务器,您将会发现它以 root 用户启动,然后将 httpd 线程转交给 apache 用户。
&&& 清单 2 启动一个默认的 Apache 2 Web 服务器编译。安装流程也做了一些事情,包括使 apachectl 命令可执行。因为该流程需要使用端口 80,使用 root 用户权限启动。然而,ps 命令显示 httpd 流程在 apache 用户帐户下运行。
&&& 清单 2. 启动 Apache Web 服务器
&&& 在后台运行应用程序
&&& 一些安装的软件可能不像 Apache Web 服务器那样用户友好。您很可能需要在流程启动后以后台方式运行它,除非您正在进行故障排除,或者想要看看应用程序到底怎么了。如果您没有这么做,shell 关闭后应用程序将终止。运行服务器服务时,可不希望每次关闭终端 shell 或者退出时服务都会停止!
&&& 如果在后台运行一个应用程序,即使关闭了 shell 窗口,应用程序也会继续运行。您可以通过在执行命令结尾附加一个 (&) 符号来启动应用程序。例如,您可以使用 vi 编辑器打开文件,然后使用 vi /etc/sysconfig/network & 命令在后台运行该文件,因为 & 可以打开 /etc/sysconfig/network 文件并将其保留在后台。即使在退出后,您也可以使用 nohup 实用工具支持进程继续运行。例如,nohup vi /etc/sysconfig/network &.
&&& 清单 3 在 Vim 编辑器中打开一个用来编辑的文件,然后将其放在后台。
&&& 清单 3. 在后台运行应用程序
&&& 您可以输入 jobs 命令来查看您在后台上运行的所有应用程序。为在后台上运行的每个任务分配了一个序列号,从 1 开始。 清单 3 中的任务序列号是 1.24940 是进程 ID (PID)。您可以使用 fg 命令和特定的任务号将应用程序移到前台。在本例中,进程没有被用户所使用,因此显示为 Stopped.但是,命令 fg 1 打开终端并回到编辑文件的活动进程。
&&& 从桌面运行应用程序
&&& 在 Linux 中从桌面运行图形用户界面 (GUI) 应用程序与在 Windows 中没多大区别。通常,您需要了解特定的桌面环境下应用程序在菜单中是如何分组的。Linux 有足够的桌面应用程序,可用于各种任务。有一些应用程序是 Linux 本机固有的,还有另外一些应用程序可能是在一个常用运行时环境中使用
开发的跨平台应用程序,比如,。NET Framework 应用程序。您会发现,使用一个 Wine 这样的虚拟环境,您甚至可以在 Linux 上运行您最喜爱的 Windows 应用程序。
&&& Linux 本机应用程序
&&& 您很有可能会为您最喜爱的基于 Windows 的应用程序找到一个替代的 Linux 应用程序。在桌面上运行 Linux 本机应用程序比较直观。与 Windows 一样,您通常可以在菜单中找到这些已组织的应用程序,当您想要一个 Windows 应用程序时,只需单击并运行即可。
&&& 对于那些需要 root 权限的应用程序,将会提示您输入 root 密码,然后才开始运行。这在概念上类似于 Windows 中的 Run as Administrator 选项。否则,您运行的所有程序都会位于您所登录帐户的用户空间中。
&&& 在 Windows 中,您可以创建桌面快捷键。Linux 也有类似的快捷键 launcher,您可以将它放在面板或桌面上。单击 launcher 时,快捷键将执行程序。
&&& 图 1 显示 GNOME Desktop 上 Mozilla Firefox Web 浏览器的两个 launcher.一个 launcher 位于面板上,另一个位于桌面上。
&&& 图 1. 查看桌面或面板上的 launcher
&&& 许多 Windows 应用程序都是使用 .NET Framework 开发的。Mono 是 .NET 的一个开源实现,可在很多平台上运行(包括 )。事实上,Mono 网站称其为 C# 和 Common Language Runtime (CLR) 的一个实现,与
是二进制兼容的。此项目目前由 Xamarin 支持。
&&& 在 Linux 上,您可以执行使用 .NET framework(或 Mono)开发的应用程序,就像在 Windows 上一样。但是,记住 Linux umask 和默认文件权限。您仍然需要提供文件的执行权限,这样 Linux 才会允许执行可执行文件。
&&& 在 Mono(可以安装在您的 Linux GNOME 桌面上)上开发的一些跨平台应用程序,比如 F-Spot,同本机 GNOME 应用程序一同位于菜单中。F-Spot 是一个管理照片的开源应用程序。尽管它是 C# 应用程序,但是在 GNOME 桌面上表现为一个本机应用程序。为应用程序创建一个 launcher 后,就可以像在 Windows 中那样单击并运行。
&&& 图 2 演示了基于 Mono 的应用程序 F-Spot 的位置,以及为其创建桌面或面板 launcher 的方法。
&&& 图 2. 为 F-Spot 创建一个 launcher
&&& Wine 使您可以在 Linux 和其他操作系统上运行 Windows 软件。有了 Wine,您就可以像在 Windows 中那样安装和运行应用程序。Wine 仍然在积极的发展中,而且并不是所有的 Windows 程序都可以使用 Wine.如果您的应用程序是为 Windows 操作系统编译的,您就会发现它可以使用 Wine 来充分运行,前题是它是一个桌面应用程序而不是一个服务器应用程序。一定要检查 Wine 文档关于在 Linux 上运行该应用程序的可行性,因为 Wine 并不完全支持所有的应用程序。
&&& 当您在 Linux 中使用 Wine 时,在您帐户主目录下有一个模拟 Windows 环境的隐藏文件夹,如 清单 4 所示。
&&& 清单 4. 模拟 Windows 环境的 Wine 的隐藏文件夹
&&& 使用 Wine 安装一个应用程序之后,您通常可以在桌面菜单中找到它,然后以在 Windows 中同样的方式来运行。
&&& 例如,Camstudio 是一个开源工具,用于记录和管理屏幕视频。目前还没有 Linux 操作系统的版本。但是,使用 Wine 就可以在 Linux 桌面安装 Windows 版本。与 Wine 相关的应用程序通常分组为 Applications & Wine & Programs,如 图 3 所示。
&&& 图 3. 使用 Wine 在 Linux 上运行一个 Windows 应用程序
&&& 结束语
&&& 在管理一个 Linux 服务器时,您肯定会遇到从桌面和命令行执行软件的问题。了解如何设置适当的权限和用户帐户后,您就可以安全地运行这些应用程序。使用长期运行的进程,比如服务器服务,您可以从命令行执行,并在后台进行适当设置。如果您的应用程序适合于从桌面运行,也可以那样做,有时候甚至可以是 Windows 应用程序!
【责编:anna】
?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]
相关产品和培训
 友情推荐链接
 专题推荐
 ? ? ? ? ? ? ? ? ? ?
 今日更新
?&?&?&?&?&?&?&?&?&?&
 认证培训
 频道精选
 Windows频道导航
                      请帮忙详细解释:在unix 系统如何自动在早上8:00和下午5:00运行*.sh脚本?_百度知道
请帮忙详细解释:在unix 系统如何自动在早上8:00和下午5:00运行*.sh脚本?
unix没碰过,linux行不?linux下面有个汕宫膘辉捉禾冰痛捕腊文件,可以写入系统的计划,意思就是可以设置在什么时间干什么事,等等我给你代码让你参考下,也有一段时间不看这个了
其他类似问题
按默认排序
其他1条回答
使用阂卣躲普艽磐娥氐翻吮crontab命令就可以: 增加如下任务:0 8 * * * x.sh0 17 * * * x.sh 其中的x.sh就是指你的*.sh脚本
unix的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 catalina.sh 的文章

 

随机推荐