更新时间:2022-01-22 10:23:27浏览次数:875+次
以下为你详细解释gcc、gcov、getenforce、getent命令的用法。
Linux gcc命令的用法及解释
Linux gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。
1、语法
gcc(选项)(参数)
2、选项
-o:指定生成的输出文件;
-E:仅执行编译预处理;
-S:将C代码转换为汇编代码;
-wall:显示警告信息;
-c:仅执行编译操作,不进行连接操作。
3、参数
C源文件:指定C语言源代码文件。
4、实例
常用编译命令选项:
假设源程序文件名为test.c。
无选项编译链接:
gcc test.c
将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。
选项 -o:
gcc test.c -o test
将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。
选项 -E:
gcc -E test.c -o test.i
将test.c预处理输出test.i文件。
选项 -S:
gcc -S test.i
将预处理输出文件test.i汇编成test.s文件。
选项 -c:
gcc -c test.s
将汇编输出文件test.s编译输出test.o文件。
无选项链接:
gcc test.o -o test
将编译输出文件test.o链接成最终可执行文件test。
选项 -O:
gcc -O1 test.c -o test
使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。
多源文件的编译方法:
如果有多个源文件,基本上有两种编译方法:
假设有两个源文件为test.c和testfun.c
多个文件一起编译:
gcc testfun.c test.c -o test
将testfun.c和test.c分别编译后链接成test可执行文件。
分别编译各个源文件,之后对编译后输出的目标文件链接。
gcc -c testfun.c #将testfun.c编译成testfun.o
gcc -c test.c #将test.c编译成test.o
gcc -o testfun.o test.o -o test #将testfun.o和test.o链接成test
以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。
Linux gcov命令的用法及解释
Linux gcov命令是一款测试程序的代码覆盖率的工具。
1、语法
gcov(选项)(参数)
2、选项
-h:显示帮助信息;
-v:显示版本信息;
-a:输出所有的基本块的执行计数;
-n:并创建输出文件。
3、参数
V语言文件:C语言源代码文件。
Linux getenforce命令的用法及解释
使用getenforce命令可以在Linux下查看是否开启了SELinux。
下面是Linux getenforce命令的使用方法:
[root@DB-Server ~]# getenforce
Enforcing
如何开启、关闭SELinux呢?最简单的方式使用setenforce,这样不用重启服务器,但是该命令只能将SeLinux在enforcing、permissive这两种模式之间切换,服务器重启后,又会恢复到/etc/selinux/config下,也就是说setenforce的修改是不能持久的。
[root@DB-Server ~]# setenforce 0
[root@DB-Server ~]# getenforce
Permissive
[root@DB-Server ~]# setenforce 1
[root@DB-Server ~]# getenforce;
Enforcing
[root@DB-Server ~]#
另外就是修改/etc/selinux/config,如下所示,可以配置SELinux为enforcing、permissive、disabled三个值,修改后必须重启系统才能生效。
[root@DB-Server ~]# more /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
You have new mail in /var/spool/mail/root
[root@DB-Server ~]#
如果由 enforcing 或 permissive 改成 disabled,或由 disabled 改成其他两个,那也必须要重新开机。这是因为 SELinux 是整合到核心里面去的,你只可以在SELinux 运作下切换成为强制 (enforcing) 或宽容 (permissive) 模式,不能够直接关闭 SELinux 的!同时,由 SELinux 关闭 (disable) 的状态到开启的状态也需要重新开机啦。
Linux getent命令的用法及解释
Linux getent命令用来查看系统的数据库中的相关记录。
1、用法
getent [选项...] 数据库 [键 ...]
Get entries from administrative database.
-s, --service=CONFIG 要使用的服务配置
-?, --help 给出该系统求助列表
--usage 给出简要的用法信息
-V, --version 打印程序版本号
长选项的强制或可选参数对对应的短选项也是强制或可选的。
2、支持的数据库
ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts netgroup
networks passwd protocols rpc services shadow
3、实例
# getent hosts 域名 #从hosts库中得到某个域名的IP信息
比如# getent hosts hmxthome.com
182.149.160.47 域名
200.181.57.217 域名
123.125.15.144 域名
# getent passwd tank #从passwd库中得到账号tank信息
tank:x:502:502::/home/tank:/bin/bash
相关资讯