Linux上可以运行的程序有2种:可执行文件;脚本。在用户级,这两者没有区别。
进入Linux系统,我们会跟一个命令行环境打交道。这就是Shell。
shell可以去找我们想找的程序,依据一个shell环境变量 - PATH。PATH可以被Linux管理员配置。
PATH保存了系统程序存放的位置。包括:
/bin 二进制文件,系统启动时用到的程序
/usr/bin 用户的二进制文件,用户的标准程序
/usr/local/bin 本地的二进制文件,特定于某个安装的程序
系统管理员还可以使用下面两个路径
/sbin
/usr/sbin
不用轻易删除PATH中的某个路径,除非你确信其后果.
PATH使用':'来分隔路径,而不是';'
Linux使用'/'来分隔目录,而不是'\'
Linux开发路线图
1个Linux开发员必须知道所需的工具和开发资源在什么地方.
应用程序
应用程序保存在各自的目录.
系统提供用作一般用途的程序放在/usr/bin
附加的特定于主机或本地网络的程序放在/usr/local/bin或/opt
管理员喜欢/usr/local,这里存放了第三方文件和有别于系统提供的程序的附件
作者推荐从/usr/local目录结构编译程序和访问需要的文件
gcc通常在/usr/bin或/usr/local/bin.这在编译编译器本身和系统类型变量时指定.对Linux来说,路径可能是一个特定于版本的路径/usr/lib/gcc-lib
头文件
当用c和其他语言编程时,我们需要库函数调用的头文件.
对c语言来说,通常位于/usr/include.
其他语言,也自有其头文件的路径, 相关编译器可以找寻的到.
库文件
标准系统库在/lib 或 /usr/lib.
c编译器的缺省路径只有c标准库.其他库的搜索路径就必须要告诉c编译器.
一个库文件名总是以lib打头;接着是c(表明是c库),或m(表明是数学库).后缀是.a(表明是传统的静态库),或.so(表明是共享库).
要包除了标准C运行库以外的库,gcc就要使用-l项
静态库
比较传统的方式.跟程序代码链结到一起,处于随时待命的状态.
共享库
共享库的一个好处是可以独立于主程序而更新.