一、命令历史:

    命令:history 历史文件:.bahs_history

    说明:用户登陆之后命令都是保存在内存中,用户exit登出后,会将内存中的命令保存到.bash_history中。

    常用命令选项:

        -c:清除内存中的所有历史命令

        -d:删除指定编号为#的命令

         #:显示最近的#条命令

        -s:创建一个不执行的命令到历史列表中去(假的)

        -a:将历史列表中的命令历史读取到历史文件中(追加新增加的命令)

        -n:将历史文件中的命令读取到历史列表中(只读取新增加的)

        -r:读历史文件中的命令到历史列表中去(读取所有的,因此可能会出现重复的)

        -w:读取列表中的命令到历史文件中去(读取所有的,因此可能会出现重复的)

    常用变量及选项:

        HISTSIZE:定义历史列表中可以保存的变量的总数,默认为1000

        HISTFILESIZE:定义历史文件中的可以保存的变量的总数,默认为1000

        HISTCONTROL:ignoredups忽略重复的命令(连着两条一样的),默认值

               ignorespace忽略开头为空格的命令

               ignoreboth 包括上述两个选项

               erasedups 忽略重复的命令

        HISTTIMEFORMAT=“%F %T”:显示命令的执行时间。

        HISTIGNORE:忽略命令到命令历史中去

        上述帮助的获取方法:man bash -> /HISTCONTROL

    获取历史命令:

        !!:获取上一条命令

        !# :获取第#条命令

        !char:获取最近一条以char开头的命令

        !?go:获取最近一条包含go字符的命令

        ctrl+r:搜索历史命令,匹配最近的

    获取历史命令参数:

        !^:获取上一条命令的第一个参数

        !$:获取上一条命令的最后一个参数

        !:#:获取上一条命令中的第#个参数

         !#:*:获取第#条命令中的所有参数

         !#:^:获取第#条命令中的第一个参数

        !char:^:获取以char开头命令的第一个参数

        !char:$:获取以cahr开头命令的最后一个参数

    注意:HIST*这些参数如果只是在命令行中则是临时生效,重启后会失效,也可以写到.bash_profile文件中(仅对某一用户有效),默认是写在/etc/profile中(全局有效),由此可以看出个人的优先级高于全局的。


二、文件系统及目录结构

    文件系统名称不区分大小写(vfat系统除外)

    文件有两类数据:

        元数据:metadate  inode 权限、大小、属主、属组、时间等信息。

          数据:date  block  文件中的内容

    根据颜色识别:

        蓝色:目录文件

        绿色:可执行的文件

        红色:压缩文件

         浅蓝色:链接文件

        粉色:套接字文件

        灰色:其他文件

     文件系统结构:

        /boot:放置引导程序,内核文件

        /etc:放置配置文件

        /bin:普通用户执行的二进制文件

        /dev:放置设备文件

            block:块设备,随机执行,有缓存

            char:字符设备 顺序执行 无缓存

        /home:家目录

        /sbin:管理员执行的二进制文件

        /local/sbin:第三方安装的软件

        /tmp:临时文件

        /usr:一般共享的只读文件

            /bin:给某一用户提供可执行的二进制文件

            /share:结构化独立的数据,如man 、doc等

        /var:频繁发生变化的文件

            cache:应用程序缓存数据目录

            lib:应用程序状态信息数据

            log:日志文件

            run:运行中的进程相关数据,常用语存数进程pid文件

        /mnt:临时挂载文件

          /media:挂载点,常用于挂载光盘

        /proc:用于输出内核信息与进程信息相关的虚拟文件系统

        /sys:用于输出当前系统的硬件设备相信息虚拟文件系统

        /selinux:相关安全策略等信息的存放位置

    绝对路径:以根目录开始,顺序查到文件路径

    相对路径:不以根目录开始,以当前目录开始查到到文件的路径。

        cd ..进去上一个路径

        cd - 返回以前的路径    

        cd - 进入你的家目录

三、ls的用法:

    -A:不显示“.”和 “..”文件

    -a:显示所有文件

    -d:显示目录本身

    -l:长格式显示,显示元数据

    -h:以人类易看懂的方式显示

    -1:将所有文件放到1行里显示

    -S:按照从大到小的顺序显示

    -Sr:按照从大到小的顺序显示

    --time=atime:不显示修改时间,显示访问时间

    -utl:根据时间按照从新到旧的顺序显示  根据atime排序

    -ctl:根据时间按照从新到旧的顺序显示  根据ctime排序

    -U:不排序,按文件存放顺序显示


四、查看文件状态

    命令:stat file  

    atime:访问时间 ->读时间

    mtime::修改时间 ->内容改变  ll 显示的是修改时间mtime

    ctime:改变时间->指的是元数据改变(权限 名字 属组主等)

    要修改不一定必须访问 echo xxx >> f1  修改了内容没有访问

    锁定文件时间:chattr +A file 文件时间不会改变了

    cat 不会改变atime 如果atime已经是一天以上了 会改变,如果atime比mtime时间要老也会变


作业:

只显示某目录下隐藏文件

    ls -ad .*

只显示某目录下目录列表

    ll -ad */