库
1、定义
一种可执行代码的二进制形式,可以被操作系统载入内存执行
2、种类
静态库
动态库(共享库)
静态库的代码在编译过程中已经被载入可执行程序,因此体积较大
共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小
.o 就相当于windows里的obj文件 ,一个.c或.cpp文件对应一个.o文件
.a 是好多个.o合在一起,用于静态连接 ,即STATIC mode,多个.a可以链接生成一个exe的可执行文件
.so 是shared object,用于动态连接的,和windows的dll( dynamic link library)差不多,使用时才载入。
LINUX层次结构
文件系统
可以分叉的:目录
不可以分叉的:文件
从根开始找:绝对路径
从当前目录开始找:相对路径
ls -l 后显示内容的含义
drwxr-xr-x 3 root root 4096 Feb 13 2013 lightdm
文件类型:
d 目录文件;
l 符号链接(指向另一个文件,类似于瘟下的快捷方式);
s 套接字文件;
b 块设备文件(block);
c 字符设备文件(character);
p 命名管道文件(pipe);
- 普通文件,或更准确地说,不属于以上几种类型的文件。
文件权限:9位,每3位一组,每一组 rwx
文件硬链接的次数
文件的属性(owner)
文件的属组(group)
文件大小:单位是字节
时间戳(timestamp):最近一次被修改的时间
pwd : printing working directory
ls
-l :长格式,显示完整信息
-h:作单位转换
-a:显示以 .开头的隐藏文件
-A:只显示 .开头的 . 当前目录 .. 当前目录的上一级目录(父目录)
-d:显示目录自身属性
-i:显示文件的索引节点号 index node(inode)
-r:逆序显示 -R:递归显示(recursive)
cd:change directory
home:家目录 ~
cd ~zhouhan :到zhouhan的家目录中去
cd - :在前一个目录和当前目录之间来回切换
命令类型
内置命令(shell内置)
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
type:显示指定命令属于内部命令还是外部命令
环境变量
定义:命名的内存空间(定义当前用户的环境显示结果) printenv:显示环境变量的值 PATH:使用冒号分开的一堆路径 (比如找ls)
hash:一种缓存,记录下来此前所用的命令的路径 速度:O(1) cache is king
若自己开发一个命令,执行时想要不带路径,一定要将它的路径放在hash里面