对linux来说通用的公共的系统库由glibc提供
    程序编译方式:
    	根据编译时是否把对应所依赖的库,直接复制一份副本并编译自己的程序内部,分为:
	    动态链接:不把需要的库编译进程序中,而是在需要时去调用它
	    静态编译:直接把程序所需要的库复制一份副本编译到自己的程序中
进程的类型:
    终端:是一组硬件设备,关联一个用户接口
	    通过启动的进程是否与终端相关分为;
		    与终端相关的;通过终端启动
		    与终端不相关的:操作引导启动过程当中自动启动
操作系统的组成;
	静态:kernel(内核),application(应用程序)
文件系统:
组织成层级系统方便去查找文件
只要用户在操作系统中时,无论什么时候一定处于一个文件之中。
文件和目录被组织成一个单根倒置树结构
文件系统从 根目录 下开始,用“/” 表示
根文件系统(rootfs) :root filesystemlinux文件名称是大小写敏感
以. 开头的文件为隐藏文件的路径分隔的 /
文件有两类数据:
元数据:metadata
数据:data文件系统分层结构:
   LSB Linux Standard BaseFHS: (Filesystem Hierarchy Standard)文件系统的层级结构标准,叫FHS

文件系统结构

/bin:所有用户可用的基本的命令程序文件;
/sbin:供系统管理员使用的工具程序;
/boot:引导加载器必须用到的各种静态文件:kernel,initramfs(initrd),grub等;
/dev:存储特殊文件或设备文件;
	设备有两种类型:
	    字符设备:(字符设备是线性设备)键盘是最典型的字符设备
	    块设备:(是随机设备)
/etc:系统程序的配置文件,只能为静态不能为二进制程序(etc自己也有一个层级目录)
/home:普通用户的家目录的集中位置,一般每个普通用户的家目录默认为与用户名同名的子目录,
    /home/USERNAME/root:管理员的家目录:可选
/lib:为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块
	libc.so.*:动态链接的c库
	ld*:运行时链接器/加载器
	modules:用于存储内核模块的目录
/lib64:64位系统特有的存放64位共享库的路径
/media:便携式设备挂载点,一般有cdrom,floppy等;
/mnt:其他文件系统的临时挂载点
/opt:附加应用程序(第三方应用程序)的安装位置:可选路径
/srv:当前主机为服务提供的数据(主机特有)
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录:可供所有用户执行写入操作:有特殊权限。
/usr:universal shared,read-only data    
    bin:保证系统拥有完整功能而提供的应用程序    
    sbin:
    lib:32 位使用
    lib64:只存在64 位系统    include:C程序的头文件(header files)
    share:结构化独立的数据,例如doc, man等 等
    local:第三方应用程序的安装位置
        bin, sbin, lib, lib64, etc, share
    include:c程序的头文件 
share:命令手册页,命令自带文档等架构特有的文件的存储位置
local:另一个层级目录X11R6:x-Window程序的安装位置
src:程序源码问价你的存储位置
/usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
/var:/var Hierarchy:存储常发生变化的数据的目录    
    cache:应用程序缓存数据目录   
    lib:应用程序状态信息数据
    local专用于为/usr/local下的应用程序存储可变数据;    
    lock:锁文件    
    log:日志目录及文件    
    opt:专用于为/opt下的应用程序存储可变数据;    
    run:运行中的进程相关数据;通常用于存储进程pid文件    
    spool:应用程序数据池    
    tmp:保存系统两次重启之间产生的临时数据
/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息的:它大多为内核参数,
	例如:net.ipv4.ip_forward,虚拟为net/ipv4/ip_forward存储于/proc/sys/.
	     因此其完整路径为/proc/sys/net/ipv4/ip_forward
/sys :sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径其主要作用在于为管理linux设备
           提供一种统一模型的接口
/selinux: security enhanced Linux ,selinux 相关的安全策略等信息的存储位置

linux上应用后程序的组成部分:

二进制程序:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
库文件:/lib, /lib64, /usr/lib, /usr/lib64,/usr/local/lib, /usr/local/lib64
配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
帮助文件:/usr/share/man, /usr/share/doc,/usr/local/share/man, /usr/local/share/doc

linux系统文件类型

-:常规文件,即f
d:directory,目录文件
b:block device ,块设备文件,支持以“block”为单位进行随机访问
c:character device,字符设备文件,支持以”character“为单位进行线性访问
    major number: 主设备号,用来标识设备类型,进而确定要加载的驱动程序
    minor number: 次设备号,用于标识统一类型中的不同的设备
l:symbolic link,符号链接文件(软链接文件)
p:pipe ,管道文件
s:socket,套接字文件

linux不同颜色文件

白色:表示普通文件
蓝色:表示目录
绿色:表示可执行文件
红色:表示压缩文件
浅蓝色:表示链接文件
红色闪烁:表示链接的文件有问题
×××:表示设备文件
灰色:表示其他文件
浅×××:表示管道文件
粉红色:套接字文件

文件管理中常用的命令

pwd :显示当前shell和系统进程的工作目录
    绝对路径:以正斜杠开始完整的文件的位置路径,可以用于任何想指定一个文件名的时候
    相对路径:不以斜线开始,指定相对于当前工作目录或某目录的位置,可以作为一个简短的形式指定一个
    文件名
cd:改变目录    
    cd 后跟绝对路径或相对路径:        
        cd /root/Music/
        在root目录下        
        cd Music
到上一级目录:cd ..
回到用户主目录:cd
到以前的工作目录    cd -
相关的环境变量:
    PWD:保存了当前的目录路径
    OLDPWD:上一次所在的目录路径
    [root@localhost ~]# echo $PWD
    /root
    [root@localhost ~]# echo $OLDPWD
    /root/Music
> ls命令:
    ls命令用来显示目录列表,列出当前目录的内容或指定目录。ls命令式linux里得常用命令,
在显示的列表中用不同的颜色区分不同的文件类型。
语法
ls [选项] [参数]
        [root@localhost testfile]# ls
        f1  f2  f3  f4
    ls -a:显示所有的目录(包括隐藏文件)
        [root@localhost testfile]# ls -a
        .  ..  f1  f2  f3  f4 .lei
    ls -A:显示所有的目录(包括隐藏文件,除了"." 和".."文件)
        [root@localhost testfile]# ls -A
        f1  f2  f3  f4  .lei
    ls -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、
        硬连接数、所有者、组、文件大小和文件的最后修改时间等;
        [root@localhost testfile]# ls -l
        total 16
        drwxr-xr-x 2 root root 4096 Jul 27 11:17 f1
        drwxr-xr-x 2 root root 4096 Jul 27 11:17 f2
        drwxr-xr-x 2 root root 4096 Jul 27 11:17 f3
        drwxr-xr-x 2 root root 4096 Jul 27 11:17 f4
    ls -F:在每个输出项后追加文件的类型标识符,
                具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,
        “|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符
        [root@localhost testfile]# ls -F
        f1/  f2/  f3/  f4/
    ls -r:以文件名反序排列并输出目录内容列表
        [root@localhost testfile]# ls -r
        f4  f3  f2  f1
    ls -s:显示文件和目录的大小,以区块为单位
        [root@localhost testfile]# ls -s
        total 16
        4 f1  4 f2  4 f3  4 f4
    ls –S:按从大到小排序
        [root@localhost testfile]# ls -Sl
        total 20
        drwxr-xr-x 3 root root 4096 Jul 27 13:47 f1
        drwxr-xr-x 3 root root 4096 Jul 27 14:42 f2
        drwxr-xr-x 2 root root 4096 Jul 27 11:17 f3
        drwxr-xr-x 2 root root 4096 Jul 27 11:17 f4
        -rw-r--r-- 1 root root   38 Jul 27 14:41 f7
    ls -R:目录递归通过,将指定目录下的所有文件及子目录一并处理
          (列出目录以及子目录里的文件或者目录)    
        [root@localhost testfile]# ls -R
        .:
        f1  f2  f3  f4
        
        ./f1:
        
        ./f2:
        
        ./f3:
        
        ./f4:
    ls –u :配合-t 选项,显示并按atime从新到旧顺序排列(动态发生改变)
        [root@localhost testfile]# ls -tu
        f2  f1  f3  f4
    ls –U 不排序按目录存放顺序显示
        [root@localhost testfile]# ls -U
        f2  f4  f3  f1
    ls -d .* 只显示某目录下的隐藏文件
        [root@localhost ~]# ls -d .*
        .   .bash_history  .bash_profile  .cache   .cshrc    .ssh
        ..  .bash_logout   .bashrc        .config  .lesshst  .tcshrc
    
        问题: 一:字符终端登录时,显示当前登录终端号,主机名和当前时间    
              二:系统定时自动关机 
              三:只显示某目录下的隐藏文件
              四:只显示某目录下的目录
       
         1:
            	\S
                Kernel \r on an \m
                The tty is \l
                The hostname is \n
                The time is \t
                Mage Education Learning Services
           2:设定时间关机:
                shutdown –h 9:30 The system will halt at 9:30.
            
           3:[root@localhost ~]# ls -d .*
                .   .bash_history  .bash_profile  .cache   .cshrc    .ssh
                ..  .bash_logout   .bashrc        .config  .lesshst  .tcshrc
           
           4:  [root@localhost dev]# ls -dl */
                drwxr-xr-x 2 root root  180 Jul 28  2016 block/
                drwxr-xr-x 2 root root   80 Jul 28  2016 bsg/
                drwxr-xr-x 2 root root 2700 Jul 27 16:27 char/
                drwxr-xr-x 6 root root  140 Jul 28  2016 cpu/
                drwxr-xr-x 6 root root  120 Jul 27 16:27 disk/
                drwxr-xr-x 2 root root  100 Jul 28  2016 dri/
                dr-x------ 2 root root    0 Jul 27 19:32 fd/
                drwxr-xr-x 2 root root    0 Jul 27 16:27 hugepages/
                drwxr-xr-x 3 root root  180 Jul 27 16:27 input/
                drwxr-xr-x 2 root root   60 Jul 28  2016 mapper/
                drwxrwxrwt 2 root root   40 Jul 28  2016 mqueue/
                drwxr-xr-x 2 root root   60 Jul 27 16:27 net/
                drwxr-xr-x 2 root root    0 Jul 28  2016 pts/
                drwxr-xr-x 2 root root   60 Jul 28  2016 raw/
                drwxrwxrwt 2 root root   40 Jul 28  2016 shm/
                drwxr-xr-x 2 root root   80 Jul 27 16:27 snd/
                drwxr-xr-x 2 root root   60 Jul 27 16:27 vfio/