文件和目录的命名规则:
斜线用作路径分隔符,字节零用作字符串结尾,不可做文件名,其余均可以。
大小写字母有区别。
系统配置文件目录:/etc,文件格式为文本文件
passwd,hosts文件
*.conf文件,配置文件
ssh远程登录的配置信息
rc*.d系统启动阶段系统初始化和启动各服务的脚本
profile/bash.bashrc系统级bash等shell的偏好设置
rc.local自定义的需要自启动的服务脚本
临时目录:/tmp
临时创建文件,只能删除自己的文件
系统需要改变的文件:/var
可运行程序和设备文件:
/bin系统常用命令
/user/bin:存放其他常用命令
/sbin,/user/sbin系统管理员专用命令
/dev设备文件
/usr/include 头文件
/lib,/usr/lib存放各种库文件(静态链接库.a;动态链接库.so,节省内存,广为使用)
动态连接命令:ldd
编译、动态链接与静态链接:gcc hello.c -o helo(7.2KB)/gcc –static hello.c –o hello(712KB)
动态链接:可随时卸载、加载等,省内存空间,建议使用
gcc选项:
-c
只编译,不链接成为可执行文件。编译器只是由输入的 .c 等源代码文件生成 .o 为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
-o output_filename
确定输出文件的名称为output_filename。同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出默认的可执行文件 a.out 。
-g
产生符号调试工具(GNU的 gdb)所必要的符号信息。想要对源代码进行调试,就必须加入这个选项。
-O
对程序进行优化编译、链接。采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是编译、链接的速度就相应地要慢一些,而且对执行文件的调试会产生一定的影响,造成一些执行效果与对应源文件代码不一致等一些令人“困惑”的情况。因此,一般在编译输出软件发行版时使用此选项。
-O2
比 -O 更好的优化编译、链接。当然整个编译链接过程会更慢。
-I dirname
将 dirname 所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。
文件通配符规则:
*匹配任意长度的文件名字符串(包括空字符串)
点字符 . 当它作为文件名或路径名分量的第一个字符时,必须显式匹配。如*file和file和makefile匹配,但不匹配.file
/也要显式匹配
?匹配任何单字符
[]指定一个集合
~(bash特有)当前用户主目录
~jiang jiang用户主目录
.当前目录, . . 表示上级目录
*/*.conf,子目录
*/*/*.conf 子目录的子目录
注意:不同shell的通配符规则不同
文件处理过程:
文件名通配符处理由shell完成:
- 在shell提示符下,由键盘输入命令,被shell接受
- shell对收到的内容进行若干加工处理,其中含有对文件通配符的展开工作(文件名生成),生成结果命令
- 执行前面生成的结果命令
举例: