linux 执行程序?shell脚本执行
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:这个选项会把所有程序中用到的资源通通列出来,不但如一般英文语句,还有说明。对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用。
linux 中怎样执行脚本
首先脚本需要有执行权限
chmodu+xfile.sh
执行脚本有三种方法:
1../file.sh
特点:开启bash子进程来执行,也就是开启额外的进程来进行,不影响原进程的变量、配置等
2.bashfile.sh
特点:和./file.sh相同
3.sourcefile.sh或者.file.sh
特点:在原bash进程中执行脚本。
第三种方法主要用于在脚本中切换用户su、切换目录cd等命令。
source和.命令是相同的。
你可以搜索source
补充,如何查看脚本运行是否开启了bash子进程
vim file.sh
写入
#!/bin/bash
#echo$$命令会输出bash进程ID
echo$$
保存并赋予可执行权限chmod u+x file.sh
在你的shell中输入,echo$$屏幕输出4176
./file.sh屏幕输出3600
bash file.sh屏幕输出3984
source file.sh屏幕输出4176和你直接在shell中输出的一样,说明是在同一个bash进程
linux怎么运行c程序
CC是Linux操作系统下一个非常重要的源代码编译工具,有着许多重要的选项,支持许多不同语言的编译,如C、C++、Ada、Fortran、Objective、Perl、Python、Ruby以及Java等,甚至Linux的许多内核和许多其他自由软件以及开放源码应用程序都是用C语言编写并经gcc编译而成的.
1.编译单个源文件
[例如]在屏幕上打印"Hello,Linux."
[源代码]
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char**argv)
{
printf("Hello,Linux.\n");
exit(0);
}
将源文件保存为hello.c,开始进行编译
$gcc-o hello hello.c
编译成功完成后,在当前路径下,生成一个名为hello的文件,然后执行
$./hello
在屏幕上,你将会看到打印结果:Hello,Linux.
说明:在默认情况下,编译成功完成后,会在当前路径下,生成一个名为a.out的文件,然后执行$./a.out便可打印结果,但通常可以通过选项-o来指定自己的可执行程序名称;
2.编译多个源文件
3.使用外部函数库
4.使用共享函数库和静态函数库
5.gcc选项详细描述
1.7.2 gcc/egcs的主要选项
表 1-3 gcc命令的常用选项
选项解释
-ansi只支持 ANSI标准的 C语法。这一选项将禁止 GNU C的某些特色,
例如 asm或 typeof关键词。
-c只编译并生成目标文件。
-DMACRO以字符串“1”定义 MACRO宏。
-DMACRO=DEFN以字符串“DEFN”定义 MACRO宏。
-E只运行 C预编译器。
-g生成调试信息。GNU调试器可利用该信息。
-IDIRECTORY指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY指定额外的函数库搜索路径DIRECTORY。
-lLIBRARY连接时搜索指定的函数库LIBRARY。
-m486针对 486进行代码优化。
-o FILE生成指定的输出文件。用在生成可执行文件时。
-O0不进行优化处理。
-O或-O1优化生成代码。
-O2进一步优化。
-O3比-O2更进一步优化,包括 inline函数。
-shared生成共享目标文件。通常用在建立共享库时。
-static禁止使用共享连接。
-UMACRO取消对 MACRO宏的定义。
-w不生成任何警告信息。
-Wall生成所有警告信息。