ld命令是GNU的连接器,将目标文件连接为可执行程序。
语法
ld(选项)(参数)
选项
-o:指定输出文件名; -e:指定程序的入口符号。
参数
目标文件:指定需要连接的目标文件。
ld命令是GNU的连接器,将目标文件连接为可执行程序。
ld(选项)(参数)
-o:指定输出文件名; -e:指定程序的入口符号。
目标文件:指定需要连接的目标文件。
unprotoize命令属于gcc套件,用于删除C语言源代码文件中的函数原型。
unprotoize(选项)(参数)
-d:设置需要转换代码的目录; -x:转换代码时排除的文件。
文件:需要转换代码的C语言源文件。
nm命令被用于显示二进制目标文件的符号表。
nm(选项)(参数)
-A:每个符号前显示文件名; -D:显示动态符号; -g:仅显示外部符号; -r:反序显示符号表。
目标文件:二进制目标文件,通常是库文件和可执行文件。
accept命令属于CUPS套件,用于指示打印系统接受发往指定目标打印机的打印任务。
accept(选项)(参数)
-E:当连接到服务器时强制加密; -U:指定连接服务器时使用的用户名; -h:指定连接服务器名和端口号。
目标:指定目标打印机。
ldd命令用于打印程序或者库文件所依赖的共享库列表。
ldd(选项)(参数)
--version:打印指令版本号;
-v:详细信息模式,打印所有相关信息;
-u:打印未使用的直接依赖;
-d:执行重定位和报告任何丢失的对象;
-r:执行数据对象和函数的重定位,并且报告任何丢失的对象和函数;
--help:显示帮助信息。
文件:指定可执行程序或者文库。
首先ldd不是一个可执行程序,而只是一个shell脚本
ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下:LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSE
等。当LD_TRACE_LOADED_OBJECTS
环境变量不为空时,任何可执行程序在运行时,它都会只显示模块的dependency,而程序并不真正执行。要不你可以在shell终端测试一下,如下:
export LD_TRACE_LOADED_OBJECTS=1
再执行任何的程序,如ls等,看看程序的运行结果。
ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。我们知道,ld-linux.so模块会先于executable模块程序工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency。
实际上可以直接执行ld-linux.so模块,如:/lib/ld-linux.so.2 --list program
(这相当于ldd program)
chkconfig命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
chkconfig(选项)
--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据; --del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据; --level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。
等级代号列表:
需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
运行级文件:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用-
代替运行级。第二行对服务进行描述,可以用\
跨行注释。
例如random.init包含三行:
# chkconfig: 2345 20 80 # description: Saves and restores system entropy pool for \ # higher quality random number generation.
chkconfig --list #列出所有的系统服务。 chkconfig --add httpd #增加httpd服务。 chkconfig --del httpd #删除httpd服务。 chkconfig --level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。 chkconfig --list #列出系统所有的服务启动情况。 chkconfig --list mysqld #列出mysqld服务设置情况。 chkconfig --level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭。 chkconfig mysqld on #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级。
如何增加一个服务:
/etc/ini.d/
目录下;chkconfig --add servicename
在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d
中赋予K/S入口了;chkconfig --level 35 mysqld on
修改服务的默认启动等级。cupsenable命令用于启动指定的打印机。
cupsenable(选项)(参数)
-E:当连接到服务器时强制使用加密; -U:指定连接服务器时使用的用户名; -u:指定打印任务所属的用户; -h:指定连接的服务器名和端口号;
目标:指定目标打印机。
make命令是GNU的工程化编译工具,用于编译众多相互关联的源代码问价,以实现工程化的管理,提高开发效率。
make(选项)(参数)
-f:指定“makefile”文件; -i:忽略命令执行返回的出错信息; -s:沉默模式,在执行之前不输出相应的命令行信息; -r:禁止使用build-in规则; -n:非执行模式,输出所有执行命令,但并不执行; -t:更新目标文件; -q:make操作将根据目标文件是否已经更新返回"0"或非"0"的状态信息; -p:输出所有宏定义和目标文件描述; -d:Debug模式,输出有关文件和检测时间的详细信息。
Linux下常用选项与Unix系统中稍有不同,下面是不同的部分:
-c dir:在读取 makefile 之前改变到指定的目录dir; -I dir:当包含其他 makefile文件时,利用该选项指定搜索目录; -h:help文挡,显示所有的make选项; -w:在处理 makefile 之前和之后,都显示工作目录。
目标:指定编译目标。
无论是在linux 还是在Unix环境 中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。
而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员 来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。
因此,有效的利用make和 makefile工具可以大大提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。
perl命令是perl语言解释器,负责解释执行perl语言程序。
perl(选项)(参数)
-w:输出有用的警告信息;
-U:允许不安全的操作;
-c:仅检查文件的语法;
-d:在调试下运行脚本程序。
文件:要运行的perl脚本程序。
mktemp命令被用来创建临时文件供shell脚本使用。
mktemp(选项)(参数)
-q:执行时若发生错误,不会显示任何信息; -u:暂存文件会在mktemp结束前先行删除; -d:创建一个目录而非文件。
文件:指定创建的临时文件。