linux 执行 程序 linux循环执行命令
各位老铁们好,相信很多人对linux 执行 程序都不是特别的了解,因此呢,今天就来为大家分享下关于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的应用程序下载意味着文件所有者有读写权限,而组用户和其他用户只有读权限。
例如,为每个人赋予一个文件的执行权限,使用 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)来启动应用程序并执行其他任务,比如设置变量以及为其他用户分配进程。例如,应用程序可能需要一个 Java™ Virtual Machine(JVM)来执行。那样的话,shell脚本可以设置适当的环境变量,然后执行 Java命令来运行 Java Archive(JAR)或类文件。这同样适用于使用 Perl、Python、甚至 C#的应用程序。(当然,C#编译的应用程序可以在 Linux上运行)
从命令行或者 shell提示符执行应用程序的一个常用方法是使用./命令。如果您在 Linux中使用句号(.)和正斜杠(/),就意味着告诉环境您想要以可执行文件运行该文件。例如,运行一个名为 myapp的可执行文件,您可以使用./myapp命令。同样地,您可以在文件名之前加上语言环境,比如:
sh php python perl java
但更多情况下,套装应用程序使用 shell脚本,以#!符号设置环境变量提供该语言的运行时可执行路径,比如#!/usr/bin/python。您也应该熟悉这种方法。
清单 1使用 catalina.sh默认脚本通过./方法启动 Apache Tomcat应用程序服务器。然后,使用 sh方法启动服务器。因为默认端口是 8080,标准用户不需要对其进行特别修改就可以启动该服务。
Linux运行可执行文件的简单方法linux运行可执行文件
Linux是一种操作系统,能够让用户利用命令行或者图形界面完成常用操作。Linux系统允许用户安装、运行和删除文件、文件夹和应用程序。在Linux系统中,可执行文件是一种特殊的文件类型,它能够直接打开可执行的程序,因此掌握如何使用Linux系统运行可执行文件非常重要。下面介绍如何使用Linux系统快速运行可执行文件。
首先,安装Linux系统,这可以在任何基于Linux的发行版上完成,如Ubuntu或CentOS。接下来,需要以用户身份或者root身份登录Linux系统,并转到可执行文件的存储位置。在Linux终端中输入:`cd` `directory_name`,即可前往存储该文件的位置( `directory_name`是存储目录的名称)。
接下来,查看系统中的该可执行文件的权限,可以使用`ls-l`命令。然后查看文件权限,若其仅有 `-rwxr-xr-x`的权限,说明系统拥有可运行该文件的所有权限。
最后,就可以使用Linux系统运行该可执行文件了。通常可使用`./`命令运行可执行文件,其中 `./`是活动位置符号,而`filename.out`则是需要运行的文件名,如`./filename.out `。
另外,也可以使用 `chmod`命令修改可执行文件的权限,其中 `+x`是标识添加可运行该文件的权限,下面是一个示例 `chmod+x filename.out`。
最后,使用以上命令运行可执行文件,即可完成Linux系统运行可执行文件的工作,可快速获得正确的结果。当然,要想在Linux系统中更好地运行可执行文件,也需要掌握其他常用的Linux命令,像 `cd` `ls` `rm` `mv` `cp` `sudo` `more` `cat` `chmod`等。
因此,使用Linux系统运行可执行文件的方法很简单,只需登录系统,然后转到存储文件的位置,使用上述命令运行即可。若用户能够熟练掌握Linux常用命令,并熟悉如何在其中运行可执行文件,将会大大提高用户的效率。
linux time命令详解
linux系统下time命令是什么呢?下面是time命令的具体介绍:
1、time命令简介:
time命令用于量测特定指令执行时所需消耗的时间及系统资源等资讯。例如 CPU时间、记忆体、输入输出等等。需要特别注意的是,部分资讯在 Linux上显示不出来。这是因为在 Linux上部分资源的分配函式与 time指令所预设的方式并不相同,以致于 time指令无法取得这些资料。
2、语法:
time [options] COMMAND [arguments]
3、参数:
-o或--output=FILE:设定结果输出档。这个选项会将 time的输出写入所指定的档案中。如果档案已经存在,系统将覆写其内容。
-a或--append:配合-o使用,会将结果写到档案的末端,而不会覆盖掉原来的内容。
-f FORMAT或--format=FORMAT:以 FORMAT字串设定显示方式。当这个选项没有被设定的时候,会用系统预设的格式。
4、time指令可以显示的资源
Time Resources:
E执行指令所花费的时间,格式是:[hour]:minute:second。请注意这个数字并不代表实际的 CPU时间。
e执行指令所花费的时间,单位是秒。请注意这个数字并不代表实际的 CPU时间。
S指令执行时在核心模式(kernel mode)所花费的时间,单位是秒。
U指令执行时在使用者模式(user mode)所花费的时间,单位是秒。
P执行指令时 CPU的占用比例。其实这个数字就是核心模式加上使用者模式的 CPU时间除以总时间。
Memory Resources:
M执行时所占用的实体记忆体的最大值。单位是 KB
t执行时所占用的实体记忆体的平均值,单位是 KB
K执行程序所占用的记忆体总量(stack+data+text)的平均大小,单位是 KB
D执行程序的自有资料区(unshared data area)的平均大小,单位是 KB
p执行程序的自有堆叠(unshared stack)的平均大小,单位是 KB
X执行程序间共享内容(shared text)的平均值,单位是 KB
Z系统记忆体页的大小,单位是 byte。对同一个系统来说这是个常数
IO Resources:
F此程序的主要记忆体页错误发生次数。所谓的主要记忆体页错误是指某一记忆体页已经置换到置换档(swap file)中,而且已经分配给其他程序。此时该页的内容必须从置换档里再读出来。
R此程序的次要记忆体页错误发生次数。所谓的次要记忆体页错误是指某一记忆体页虽然已经置换到置换档中,但尚未分配给其他程序。此时该页的内容并未被破坏,不必从置换档里读出来
W此程序被交换到置换档的次数
c此程序被强迫中断(像是分配到的 CPU时间耗尽)的次数
w此程序自愿中断(像是在等待某一个 I/O执行完毕,像是磁碟读取等等)的次数
I此程序所输入的档案数
O此程序所输出的档案数
r此程序所收到的 Socket Message
s此程序所送出的 Socket Message
k此程序所收到的信号( Signal)数量
Command Info:
C执行时的参数以及指令名称
x指令的结束代码( Exit Status)
-p or--portability:这个选项会自动把显示格式设定成为:
real%e user%Usys%S:这么做的目的是为了与 POSIX规格相容。
-v or--verbose:这个选项会把所有程序中用到的资源通通列出来,不但如一般英文语句,还有说明。对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用。