zoukankan      html  css  js  c++  java
  • 目录-Linux

    Linux文件系统:
    
        Linux: glibc
    
        程序编译方式:
            动态链接
            静态编译
    
        进程的类型:
            终端:硬件设备,关联一个用户接口
    
            与终端相关:通过终端启动
            与终端无关:操作引导启动过程当中自动启动
    
        操作系统的组成:
            静态:kernel,application
    
            文件系统:层级结构
    
        FHS:filesystem hierarchy standard文件系统层级结构标准
    
            http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
    
            /bin : 所有用户可用的基本命令程序文件;
            /sbin:供系统管理员使用的工具
            /boot:引导加载器必须用到的各种静态文件:kernel,initramfs(initrd),grub等
            /dev : 存储特殊文件或设备文件;
                设备有两种类型:字符设备(线性设备),块设备(随机设备);
            /etc :系统程序的配置文件,只能为静态;    
            /home:普通用户的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户同名的子目录,/home/username;
            /root:管理员的家目录:可选;
            /lib :为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及内核提供内核模块
                libc.so.*:动态链接的c库
                ld*:运行时链接器/加载器;
                modules:用于存储内核模块的目录
            /lib64:64位系统特有的存放64位共享库的路径;
            /media:便携式设备挂载点,cdrom,floppy等;
            /mnt  :其他文件系统的临时挂载点;
            /opt  :附加应用程序的安装位置;可选路径;
            /srv  :当前主机为服务提供的数据;
            /tmp  :为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所有用户执行写入操作;有特殊权限;
            /usr:usr hierarchy ,全局共享的只读数据路径;
                bin,sbin
                lib,lib64
                include:c程序头文件
                share:命令手册和自带文档的架构特有文件的存储位置;
                local:另一个层级结构;
                X11R6:x-window程序的安装位置
                src:程序源码文件的存储位置;
            /usr/local:让系统管理员安装本地应用程序;也通常用于安装第三方程序;
            /var :/var hierarchy , 存储常发生变化的数据的目录;
                cache    应用缓存数据
                lib        可变状态信息
                local    / usr / local的可变数据
                lock    锁定文件
                log        日志文件和目录
                opt        / opt的可变数据
                run        与运行流程相关的数据
                spool    应用假脱机数据
                tmp        系统重新启动之间保留的临时文件
    
    
            /proc :内核和进程存储其相关信息:他们多为内核参数,例如net.Ipv4.ip._forward,虚拟为net/ipv4/ip_forward,存储于/proc/sys/,因此其完整路径为/proc/sys/net/ipv4/ip_forward;虚拟文件系统;
            /sys  :sysfs 虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备模型的接口;内核和系统信息虚拟文件系统
    
            参考文档:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/index.html
    
    
    Linux文件上的文件类型:
        -:常规文件;即f;
        d:directory ,目录文件;
        b:block device ,块设备文件,支持以"block"为单位进行随机访问;
        c:character device ,字符设备文件,支持以"character"为单位进行线性访问;
            major number :主设备号,用于标识设备类型,进而确定要加载的驱动程序;
            minor number : 次设备号,用于标识同一类型中的不同的设备;
                8位二进制:0-255
        l:symbolic link,符号链接文件;
        p:pipe,命令管道;
        s:socket,套接字文件;
    
    Linux基本命令:
        命令类型:
            外部命令
            shell内嵌命令
    
            区分内外部命令:
                type commend
                    内部:bulitin
                    外部:显示为命令文件路径;
                        注意:命令可以有别名;别名可以与原名相同,此时原名被隐藏;因此要获取原命令,则使用command;
    
            命令别名:
                alias :获取所有可用别名的定义;
                alias cmd :定义别名(注意:仅对当前shell进程有效);
                unalias name:撤销别名; 
    
        which:
            显示命令完整路径;
    
        whereis:
            显示二进制命令在何处,以及man手册;
            -b:只查看二进制程序路径;
            -m:只查看使用手册文件路径;
        who:
            查看登入到前端口的用户;
            -b:显示系统最近一次启动时间;
            -r:运行级别;
            -u:
        w:
            who 的增强版,还可显示做什么,例如:CPU资源占用....;
    
    
    bash的基础特性1:history
        
        历史命令:shell 进程会其会话中保存此前用户提交执行过的命令;
            ]# history 
                定制history的功能,可通过环境变量实现;
                    HISTSIZE:shell进程可保留的历史的条数;
                    HISTFLIE:持久保存命令历史文件;
                        .bash_history
                    HISTFILESIZE:命令历史文件数;
    
                命令用法:
                    history [-c] [-d offset] [n] 
                    history -anrw [filename] 
                    history -ps arg [arg...]
    
                    -c:清空命令历史;
                    -d offset:清除某条历史命令;
                    -r:从文件读取命令历史至历史列表中;
                    -w:把历史列表中的命令追加至历史文件中;
                    history # :显示最近#条命令;
    
                调用命令历史列表中的命令:
                    !#:调用第#条命令执行;
                    !!:再一次执行上一条命令;
                    !SITRING:再一次执行命令历史列表中最近一个以SIRING(开头字母,从下往上检索)开头的命令;
    
                        注意:命令的重复执行有时候需要依赖于幂等性;
    
                调用上一条命令的参数:
                    快捷键:esc+.
                    字符串:!$
    
                控制命令历史记录的方式:
                    环境变量:HISTCONTROL
                        ignoredups:忽略重复的命令;
                        ignorespace:忽略以空白字符开头的命令
                        ignoreboth:以上两者同时生效;
    
                    修改变量的值:
                        NAME='VALUE'
    
    总结:
        FHS,命令及bash命令历史
            FHS:
                /bin,/sbin,/lib,/lib64,/etc
                /home,/root
                /boot
                /media,/mnt
                /proc,/sys
                /tmp
                /srv 为服务提供数据
                /opt
                /dev 
                /usr
                    /bin,/sbin,lib,lib64,share,local,include
                /var
                    cache,lib,log,....
            命令:which,whereis,who,w,alias,unalias
            命令历史:history
    
    bash的基础特性2: 命令/路径补全
                             tab键
    
    
    目录管理类命令:mkdir,rmdir
        
        mkdir: 创建目录
            -p:递归创建目录
            -v:显示创建详细过程
            -m MODE:直接给定权限
    
        rmdir: 移除空目录
            -p:只要目录为空就删除,连续执行;(不提倡使用)
            -v:显示过程;
    
    
        实践:
            如何创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b?
            如何创建a_c,a_d,b_c,b_d;
            创建目录结构/tmp/mysysroot/
                            bin
                            sbin
                            etc
                                sysconfig
                                    network-scripts
                            usr
                                bin
                                local
                                    bin
                                    etc
                                lib
                                lib64
                            var
                                cache
                                log
                                run
    
                        ├── sysmyroot
                        │   ├── bin
                        │   ├── etc
                        │   │   └── sysconfig
                        │   │       └── network-scripts
                        │   ├── sbin
                        │   ├── usr
                        │   │   ├── bin
                        │   │   ├── lib
                        │   │   ├── lib64
                        │   │   └── local
                        │   │       ├── bin
                        │   │       └── etc
                        │   └── var
                        │       ├── cache
                        │       ├── log
                        │       └── run
    
    
    
    bash的基础特性3:命令行展开
        ~:自动展开为用户的家目录,或指定的用户的家目录;
        {}:可承载一个以逗号分隔的路径列表,并能够将其展开为多项式;
            
            例如:    mkdir -pv /tmp/x/{y1/{a,b},y2}
                    mkdir -v {a,b}_{c,d}
                    mkdir -pv /tmp/sysmyroot/{bin,sbin,etc/sysconfig/network-scripts,usr/{bin,local/{bin,etc},lib,lib64},var/{cache,log,run}}
    
    tree命令:
        -L level : 指定要显示的层级;
    
    bash的基础特性4: 命令的执行状态结果
        命令执行的状态结果:
            bash通过状态返回值来输出此结果;
                成功:0
                失败:1-255
    
            命令执行完成之后,其状态返回值保存于 bash 的特殊变量$?中;
    
        命令正常执行时,有的还会有命令返回值;
            根据命令及功能不同,结果个不相同;
    
        引用命令执行结果:
            $(cmd)
            `cmd
    
                例如: -pv /tmp/$(date +%H-%M-%S)
    
    bash的基本特性5:引用
        强引用:''
        弱引用:""
        命令引用:``
    
    bash的基础特性6:快捷键
        ctrl+a
        ctrl+e
    
        ctrl+u
        ctrl+k
    
        ctrl+l
    
    
    文本查看命令:cat,tac,head,tail,more,less
    
        分屏查看命令: more 和 less
    
        more命令:
            more FILE
                特点:翻屏至文件尾部后自动退出;
        less命令:
            less FILE
        head命令:
            查看文件的前n行;默认前10行;
                -n # :查看前#行
                -# :查看前#行
        tail命令:查看文件的后n行;
                -n #
                -#
                -f:查看文件结尾内容结束后不退出,跟随显示新增的行;
    
        stat命令:显示文件或文件系统的状态;
            文件:两类数据;
                元数据(数据的数据):metadata
                数据:date
            时间戳:
                Access最近访问: 2018-10-09 20:04:50.310818675 +0800
                Modify最近更改: 2018-10-09 20:04:50.310818675 +0800 //数据改变
                Change最近改动: 2018-10-09 20:04:50.310818675 +0800 //元数据改变
    
        touch命令: 修改/更新文件时间戳;路径没有文件默认创建文件;
            -c:指定的文件路径不存在时不予创建;
            -a:仅修改access time;
            -m:仅修改modify time;
            -t STAMP :
                [[CC]YY]MMDDhhmm[.ss]
    
    文件管理工具: cp,mv,rm
        cp命令:copy 
            源文件:目标文件;
            单源复制: cp [OPTION]... [-T] SOURCE DEST(目标文件)
            多源复制: cp [OPTION]... SOURCE... DIRECTORY
                      cp [OPTION]... -t DIRECTORY SOURCE...
    
            单源复制:
                如果DEST不存在:则事先创建此文件,并复制文件数据流到DEST中;
                如果DEST存在:
                    如果DEST为非目录文件:则覆盖目标文件;
                    如果DEST是目录文件:则事先DEST目录下创建一个与源文件同名的文件,并复制其数据流;
            多源复制:
                如果DEST不存在:错误;
                如果DEST存在:
                    如果DEST为非目录文件:错误;            
                    如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;
            常用选项:
                -i:交互式复制,即覆盖之前提醒用户确认;
                -f:force强制覆盖文件;
                -r,-R:递归复制文件;
                -d:复制符号链接文件本身,而非其指向的源文件;
                -a: -dR --preserve=all,archive,用于实现归档;
                --preserve=
                    mode:权限
                    ownership:属主和属组
                    timestamps:时间戳
                    context:安全标签
                    xattr:扩展属性
                    links:符号链接
                    all:上述所有属性
        mv命令:
            mv [OPTION]... [-T] SOURCE DEST
               mv [OPTION]... SOURCE... DIRECTORY
               mv [OPTION]... -t DIRECTORY SOURCE...
            常用选项:
                -i:交互式;
                -f:force
                .....
        rm命令:
            rm [OPTION]... FILE...
            常用选项:
                -i:交互
                -f:强制
                -r:recursive递归
                删除目录:rm -fr /PATH (删除操作危险,慎用!!!)
                可以自建回收站,将要删除的文件移动到每个文件夹;
    变量:
        命令的内存空间:
            变量类型:
                字符型
                数值型
                    精确数值;
                    近似数值;
                存储格式,数据范围,参与运算;
    
        变量的赋值操作:name=tom
    
    浮点数值如何存储?
    
    总结:
        bash特性:命令补全,路径补全,命令补全
        文件及目录的复制,移动,删除
        变量:变量类型
    
    
    
    :
        在命令前加上反斜杠临时取消使用别名
        例如:ls,则直接调用ls的原始命令而不会使用alias设置的带有color选项的命令
  • 相关阅读:
    团队冲刺第五天
    单词统计包括其续
    团队冲刺第四天
    团队冲刺第三天
    团队冲刺第二天
    团队冲刺第一天
    软件工程第九周总结
    软件工程第八周总结
    《大道至简》阅读笔记二
    《大道至简》阅读笔记一
  • 原文地址:https://www.cnblogs.com/liuyuanq/p/9774910.html
Copyright © 2011-2022 走看看