终于把第二天的视频看完了,比其他人慢了好多!以后还需要再接再厉,早日脱离现在的苦海!

1.CPU:

    CPU指令一般分为特权指令和普通指令。

    CPU一般分四个环的级别:0,1,2,3

    内核运行在环0级别,执行特权指令;而应用程序则运行在环2,执行普通指令

    内核模式,用户模式

    中断:interrupt

        硬中断:由硬件产生,终止CPU

        软中断:由软件产生,终止CPU

            用户模式到内核模式都是软中断实现的

2.元数据:

    数据是由元数据和数据组成,其中数据是指文件中的实际数据

    元数据:用来描述文件的属性的系统数据,文件的属性信息,不属于文件内容的组成部分。

        比如访问权限, 文件拥有者等

3.Linux用户:

    管理员:

        以"#"为提示符,对应管理命令

    普通用户:

        以"$"为提示符,对应普通命令

    变量:可以变化的参数,有名称的内存空间

        变量赋值:变量名=值

        系统中有很多系统变量如:PS1,PATH,HOME

4.Linux路径,命令以及帮助:

    路径:    

        表现的形式为倒置的树状结构,常用tree查看

        /(rootfs):根文件系统

        绝对路径:一般从根(/)目录下开始,路径中不会出现.和..

        相对路径:非从根(/)下目录开始,常用.和..来表示路径

    命令:命令,应用程序,脚本文件

        COMMAND [OPTIONS] [ARGUMENTS]:命令 选项  参数 

        命令类型:

            内置命令:由shell自带,shell内建

            外部命令:一个独立可执行的程序文件,命令名即为程序名。通过PATH指定路径中查找

                查看变量PATH:echo $PATH

            区分方法:type Command

        选项:

            短选项:格式-char,比如:-i,-l

                多个选项,之间要用空格分隔,如果合并使用空格可省略。如:-i -l/-li

            长选项:格式--Word,如--color

                不能够合并使用

        参数:命令作用的对象

    命令帮助:

        内置命令;help command

        外部命令:

            1.command --help

            2.man command

                手册:manual,有章节之分,1-9

                whatis command:查看该命令在哪些章节中有帮助

                注意:whatis根据数据库执行查找操作,此库为系统定期更新,使用makewhatis手动更新

                man 章节大概是那些方面帮助:

                    1.用户命令

                    2.系统调用

                    3.库调用

                    4.设备文件

                    5.配置文件

                    6.游戏

                    7.比较杂的

                    8.管理

                man 浏览技巧:

                    空格键:向文件尾部翻一屏

                    b:向文件首部翻一屏

                    回车键:向后翻一行

                    k:向前翻一行

                    Ctrl+d:向文件尾部翻半屏

                    Ctrl+u:向文件首部翻半屏

                    搜索:

                    /word:从文件第一行开始向后查找

                    ?word:从文件尾部向前查找

                        n:显示下一个

                        N:显示上一个

                    退出:q

                 注意:man能够为除命令之外的配置文件,系统调用,库调用都能提供帮助手册,

                       他们分别位于不同章节中

            

            4.程序自带的帮助文件。比如:Readme,install

            5.去官网查看

            6.度娘,Google等

5.Linux文件系统基础:

    文件名严格区分大小写

    所有文件都位于根目录下

    路径以/作为分隔符

    每个文件的名称可使用除/以外任意字符,单个名称最大为255个字符

    
    FHS:Filesystem Hierarchy Standard

        /boot:存放开机时系统加载的一些静态文件,如:Linux内核文件,grub这个引导装载程序

        /bin,/sbin:系统自身启动和运行时所需要的可执行文件的目录

            不可独立分区

        /usr:可独立分区

            /usr/bin,/usr/sbin:用户用到的命令和系统用到的某些命令

            /usr/lib,/usr/lib64:库文件

            /usr/local:第三方软就默认安装位置

            /usr/share/docs,/usr/local/man:一些帮助文档

        /etc:系统的主要配置文件

        /lib:库文件和内核文件

            /lib64:只有64位的系统才有

        /root:ROOt用户家目录

        /dev:所有设备的设备文件都放在此处,也成为特殊文件,访问设备接口

            仅有元数据,没有实际数据

        /home:系统默认普通用户的家目录

        /mnt,/media:作为临时挂在移动设备

        /opt:第三方软件安装目录

        /srv:一些服务所用到的数据

        /tmp:临时文件存储位置

        /var:系统运行后,变动的文件,如:cache,log

        /proc:伪文件系统,内核和进程,网络状态和外部设备信息的虚拟文件系统访问接口。

            其数据存放在内存中。其本身不占用硬盘空间。随系统而生,随系统而死

            比如:/proc/cpuinfo,

        /sys:伪文件系统,硬件设备信息虚拟文件系统访问接口。主要记录了与内核相关信息,

            目前加载的内核模块与内核检测到的硬件设备信息等

            其数据存放在内存中。其本身不占用硬盘空间。随系统而生,随系统而死

    应用程序的组成部分:

        二进制文件

        库文件

        配置文件    

        帮助文件

6.Linux总结命令

    Bash查找命令的方式:

        外部命令查找:以$PATH的路径查找

        第一次执行真正的查找操作,查找结果会缓存到内存中

        查看缓存中的命令:hash

            -d command:清除缓存中指定的命令

            -r:清空缓存           

    history:命令历史记录

        保存的条数:$HISTSIZE

        用户退出时持久保存的路径:

            环境变量:$HISTFILE,默认为用户家目录下的.bash_histroy

            此文件中可保存的最大条目数:

                环境变量:$HISTFILESIZE

        环境变量:$HISTCONTROL

            ignoredups:忽略重复的命令,连续的相同的命令才是重复

            ignorespace:忽略以空白字符打头的命令,一般为空格+命令

            ignoreboth:以上二者同行生效

        n:显示最近的n条命令,包括当前命令自身

        -c:清空历史命令

        -d N:删除指定行数的命令条目

        -a:将当前会话中的命令历史写入文件

        Bash调用命令历史列表中的命令;

            !#:执行命令历史中的第#条命令

            !!:执行上一条命令

            !string:执行命令历史中最近一次以String开头的命令

            !$:调用上一条命令行中的最后一个参数

            esc,.:等于!$

    Linux有两个时钟:系统时钟和硬件时钟

    date:显示系统日期和时间,格式为date [option] [+format/格式]

        %s:时间戳计时法,从UNIX元年(1970-01-01 00:00:00)至当前经过的秒数

        %F:显示日期,Year-Month-Day

        %D:显示日期,Month/Day/Year(其中显示年的最后两位)

        %x:显示日期,Month/Day/Year(其中显示年是四位)

        %T:只显示时间,24小时制

        %r:只显示时间,12小时制

        %Y:只显示年,四位数子表示年份如:2015

        %y:只显示年,年份的后两位如:15

        %m:只显示月,数字表示

        %B,%b:只显示月,英文表示。%b是简写,%B是全拼

        %d:只显示天

        %H:只显示小时

        %M:只显示分钟

        %S:只显示秒数

        %u,%a,%A:显示星期几

        %j:显示一年中的第几天

        %U,%W:显示一年中的第几周

        %w:一周中的第几天

        %p:显示本地 AM或PM

        %Z:显示时区

        设置时间:date  [MMDDhhmm[[CC]YY][.ss]]

    hwclock:显示硬件时间,与clock差不多

        -s:以硬件时钟为准,系统时间同步硬件时间

        -w:以系统时间为准,硬件时间同步系统时间

    tzselect:时区设置

        1.tzselect:给出列表去选择

        2.修改配置文件:/etc/sysconfig/clock

    ntpdate:同步时间

        NTP:Network Time Protocol,通过网络同步系统时间,C/S        

        ntpdate server:同步Server的时间

        一般使用时会配合cron命令使用,在crontab中添加一些同步的信息

    who:查看当前系统登陆的所有用户

    whoami:查看当前终端登陆的用户

    which:显示指定命令的完整路径

        --skip-alias:跳过命令别名

    reboot:重启系统

    halt:关机

    poweroff:关机    

    目录管理:     

        cd:切换工作目录

            cd :切换到当前用户的家目录

            cd ~:切换到当前用户的家目录

            cd ~username:切换到username的家目录

            cd -:在前一个目录和当前目录相互切换

            cd ..:切换到当前目录的父目录

        pwd:print working directory,打印当前所在的目录

        mkdir:make directory,创建目录

            -p:级联创建目录

        rmdir:remove directory,删除目录        

            -p:删除单传目录路径中的目录

        ls :ls [option] file

            -l:long,长格式显示文件的详细属性信息

                drwxr-xr-x.   4 root root  4096 5月  10 16:56 home

                左起第一位,文件类型

                后面9位,权限,mode

                    r,读read;w,写write;x,执行excute

                .:表示文件有隐藏属性,lsattr命令查看

                数字:此文件的硬链接数

                属主:owner,文件的拥有者

                属组:group,文件的所属组

                4096:文件大小,默认单位字节,-h,人性化显示

                文件最近一次被修改的时间

                文件名

            -a:显示所有文件,包含隐藏文件以及.,..

            -A:显示所有文件,包含隐藏文件,不包括.和..

            -d:显示目录自身的属性,通常和-l一起使用

            -i:列出iNode

            -r:reerse,逆序显示

            -R:recursive,递归显示,显示子目录中的内容

            -t:以时间排序

            -S:以文件容量大小排序

    文件管理命令:

        文件类型:

            普通文件:-,f

            目录文件:d

            链接文件:l

            设备文件:

                字符设备:c,线性设备

                块设备:b,随机设备

            命令管理文件:p

            套接字文件:s

         文件内容的类型:

            file 文件名        

        文件查看命令:

            cat:以正常顺序显示文件内容

                -n:显示行号

                -E:显示行结束符

            tac:与cat相反,逆序显示文件内容

            more:显示文件内容

            less:显示文件内容

                空格键:向文件尾部翻一屏

                b:向文件首部翻一屏

                回车键:向后翻一行

                k:向前翻一行

                Ctrl+d:向文件尾部翻半屏

                Ctrl+u:向文件首部翻半屏

            查看首部或尾部的文件内容:

                head :显示文件的前几行,默认为10

                    -n:显示指定的行数

                tail:显示文件的后几行,默认10

                    -n:指定行数

                    -f:在线监控文件尾部内容的变化

    时间戳管理:

        touch:改变文件的atime和mtime

        格式:touch [option] file

            如果file不存在,那么会自动创建file

            -a:仅改变atime

            -m:仅改变mtime

            -c:不创建空文件

            -t: [[CC]YY]MMDDhhmm[.ss]

            stat:显示文件的元数据(元数据:文件的属性信息,不属于文件内容的组成部分)

            iNode:索引节点号

            时间戳:

            Access(atime):最近访问的时间

            Modify(mtime):最近被修改的时间,文件的内容改变

            Change(ctime):最近被改变的时间,文件元数据的改变

Bash特性:

    命令补全:

        根据内建和外部命令的查找方式以用户指定的字符串开头的命令

        如果用户指定的开头字符串能唯一标识某命令,则tab键可补全此命令

        否则2次tab键可显示所有以指定字符串开头的命令

    路径补全:

        用户指定的路径打头的文件名补全查找

        每个路径都可以切割为2部分:

            路径的基名:basename /path/to/somewhere

                结果为:somewhere

            目录名:dirname /path/to/somewhere

                结果为:/path/to

    命令行展开:

        ~:用户家目录

        ~username:指定用户的家目录

        {}:/path/{x,y}<==>/path/x,/path/y

    执行结果返回值:

        每个命令执行结束后,会有一个"执行状态返回值",有效值:0-255

        0:执行成功

        1-255:执行失败

        使用变量$?可以获取最近一条命令的状态返回值

        echo $?