Linux的哲学思想:
        1、一切皆文件;
            把几乎所有资源,包括硬件设备都组织为文件格式;
        2、由众多单一目的小程序组成;一个程序只实现一个功能,而且要做好
            组合小程序完成复杂任务;
        3、尽量避免跟用户交互;
            目标:实现脚本编程,以自动完成某些功能;
        4、使用纯文本文件保存配置信息;
            目标:一款使用的文本编程器即能完成系统配置工作;


那么在Linux文件一般有以下几种类型:

     -  :普通文件;
        d: 目录文件;
        b: 块设备;
        c: 字符设备;
        l: 符号链接文件;
        p: 管道文件;
        s: 套接字文件;


查询文件的命令ls

        ls: list
            显示指定路径下的文件列表;

            ls [OPTION]... [DIR]...
                -a, --all: 显示所有文件,包括隐藏文件;
                -l: 长格式
                -h, --human-readable:单位换算
                -d: 显示目录自身的相关属性;通常要与-l一起使用;
                -r, --reverse: 逆序显示
                -R, --recursive: 递归
查询出的条目如下实例:
drwxr-xr-x.    4 root root   4096 Aug 14 15:29 kdump-adv-conf

文件类型和权限 硬连接次数 属主 属组 文件大小 文件最近一次被修改时间 文件名


查询一个文件的元数据命令:

stat /PATH/TO/SOMEFILE:获取指定文件的元数据

wKioL1XZkWzxqogiAAD8hoIh_sw734.jpg


查询一个文件中文件类型的命令:

file  /目录/文件名

查询命令是内部命令or外部命令,以及如何查询对应的帮助:

type [command]

  shell内部命令使用  help [command]

  外部命令                man [command]

关于man命令中的信息:

  SYNOPSIS:
                []:可选内容
                <>: 必选内容
                a|b:二选一
                ...: 同一内容可出现多次      

man1 ... man8
                    man1: 用户命令
                    man2: 系统调用
                    man3: C库调用
                    man4: 设备文件及特殊文件
                    man5: 配置文件格式
                    man6: 游戏
                    man7: 杂项
                    man8: 管理类的命令

            注意:有些关键在不止一个章节中存在帮助手册;
                要查看指定章节中的手册:man # COMMAND                    

回显命令:echo
            -n: 禁止自动添加换行符号;
            -e: 允许使用转义符;
                \n: 换行
                \t: 制表符

            echo "$VAR_NAME": 变量会替换,双引号表弱引用
            echo '$VAR_NAME': 变量不会替换,强引用

  which:显示命令对应的程序文件路径
            which [OPTION] COMMAND
                --skip-alias:禁止显示别名

查询一个命令有关man字典位置
   whatis: 查询命令有关的man字典位置
            使用mkwhatis命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库;


切换目录 cd:

    cd:
            cd 或 cd ~: 回当前用户的主目录
            cd ~USERNAME: 切换至指定用户的主目录
            cd -: 在上一个目录和当前目录之间来回切换(实质是使用PWD和OLDPWD)

            .  当前目录
            .. 上层目录

            相关的环境变量:
                PWD:保存了当前目录路径;
                OLDPWD:上一次所在目录路径;


查询当前所在目录:

             pwd

常用文件夹用途:

         /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录;
        /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序;
        /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序;
        /lib:基本共享库文件,以及内核模块文件(/lib/modules);
        /lib64:专用于x86_64系统上的辅助共享库文件存放位置;
        /etc:配置文件目录(纯文本文件);
        /home/USERNAME:普通用户家目录;
        /root:管理员的家目录;
        /media:便携式移动设备挂载点;
            cdrom
            usb
        /mnt:临时文件系统挂载点;
        /dev:设备文件及特殊文件存储位置;
            b: block device,随机访问
            c: character device,线性访问
        /opt:第三方应用程序的安装位置;
        /srv:系统上运行的服务用到的数据;
        /tmp:临时文件存储位置;
        /usr: universal shared, read-only data;
            bin: 保证系统拥有完整功能而提供的应用程序;
            sbin:
            lib:
            lib64:
            include: C程序的头文件(header files);
            share:结构化独立的数据,例如doc, man等;
            local:第三方应用程序的安装位置;
                bin, sbin, lib, lib64, etc, share

        /var: variable data files
            cache: 应用程序缓存数据目录;
            lib: 应用程序状态信息数据;
            local:专用于为/usr/local下的应用程序存储可变数据;
            lock: 锁文件
            log: 日志目录及文件;
            opt: 专用于为/opt下的应用程序存储可变数据;
            run: 运行中的进程相关的数据;通常用于存储进程的pid文件;
            spool: 应用程序数据池;
            tmp: 保存系统两次重启之间产生的临时数据;

        /proc: 用于输出内核与进程信息相关的虚拟文件系统;
        /sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统;
        /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置