4.Linux根文件系统和目录结构及bash特性

Posted 43945616b

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.Linux根文件系统和目录结构及bash特性相关的知识,希望对你有一定的参考价值。

4.1Linux目录结构和根文件系统全面讲解

Linux文件系统:

  Linux:glibc

    程序编译方式:

      动态链接

      静态编译

  进程的类型:    

    终端:硬件设备, 关联一个用户接口

    与终端相关:通过终端启动

    与终端无关:操作引导启动过程当中自动启动

 

  操作系统的组成:

    静态:Kernel,application

    文件系统:层级结构

  FHS: 

    Filesystem Hierachry Stanard

/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(命令手册页和自带文档等架构特有的文件的存储路径) src 程序源码文件存储位置
        /usr/local: 让系统管理员安装本地应用程序:也通常用于安装第三方程序
/var: 存储常发生变化的数据的路径
/proc:
   基于内存的虚拟文件系统,用于为内核及进程存储器相关信息:它们多为内核参数,例如net.ipv4.ip_forward,虚拟为/net/ipv4/ip_forward,存储于/proc/sys下
/sys:
  sysfs虚拟文件系统提供了一种比proc更为理想的访问内核书的途径:其主要作用在于为管理Linux设备提供了一个统一模型的接口

www.ibm.com/developerworks/cn/linux/

4.2Linux基础命令及命令历史

  Linux系统上的文件类型

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

   基本命令:

    命令类型

      外部命令

      shell内嵌命令

      

      type  COMMAND

        内部:builtin

        外部:显示为命令文件路径

      命令别名:

        获取: ~]# alias

        定义:~]# alias NAME=‘COMMAND‘

        撤销别名:~]# unalias NAME

    which命令:shows the full path of (shell) commands

      which [options] [--] programname [...]

    whereis命令 

      locate the binary, source, and manual page files for a command

        whereis [option] name

          -b:只查看二进制程序路径

          -m:只查看手册

    who命令

      - show who is logged on

      who [option]...

        -b:系统此次启动的时间

        -r: 运行级别

    w命令

      - Show who is logged on and what they are doing

 

  bash的基础特性:

    命令历史:shell进程会其绘画中保存次前用户提交执行过的命令

      history

       定制history的功能,可通过环境变量实现

        HISTSIZE:shell进行可保留的命令历史的条数

        HISTFILE:持久保存命令历史的文件

          .bash_history

        HISTFILESIZE: 命令历史文件的大小

      命令用法:

        history [-c][-d #]

        或 history -anrw[文件名]

        或 history -ps 参数 [参数...]

        -c: 清空命令历史

        -d offset:删除指定命令历史

        -r:从文件读取命令历史至历史列表中

        -w:把历史列表中的命令追加至历史文件中

        history #: 显示最近#条记录

 

      调用命令历史列表中的命令:

        !#:再一次执行历史列表中的第#条命令

        !!::再一次执行上一条命令

        !STRING:再一次执行命令历史列表中最近一个以STRING开头的命令 

          注意:命令的重复执行有时候需要依赖幂等性

 

      调用上一条命令的最后一个参数

        ESC .

      控制命令历史记录的方式

        环境变量:HISCONTROL

          ignoredups:忽略重复的命令

          ignorespace:忽略以空白字符开头的命令

          ignoreboth:以上两者同时生效

 

4.3 bash的常见特性及文本查看命令实战

  命令补全:

    shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符会被当作命令:    

    命令处理机制:    

      查找内部命令

      根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名

    给定的打头字符串如果能唯一标识某命令程序文件,则直接补全

            不能唯一标识某命令程序文件,再击tab健一次,会给出列表

  路径补全:

    在给定的起始路径下,以对应路径下的打头字符串来逐一匹配起始路径下的每个文件

       tab: 

        如果能唯一标识,则直接补全

        不能唯一标识,再击tab健一次,会给出列表

  目录管理类的命令

    mkdir,rmdir

    mkdir: make directory

      mkdir [OPTION] ... DIRECTORY ...

        注意:路径基名为命令的作用对象:基名之前的路径必须存在

        -p:自动按需创建父目录

        -v:显示详细过程

        -m: 直接给定权限

    rmdir: remove empty directories

  bash的基础特性之:命令行展开
    ~:自动展开为用户的家目录,或指定的用户的家目录
    :可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
  tree命令:
    -L level:指定要显示的层级

  bash的基础特性:命令的执行状态结果

  命令执行的状态结果:
    bash通过状态返回值来输出此结果:
      成功:0
      失败:1-255
    命令执行完成之后,其状态返回值保存于bash的特殊变量$?中

    命令正常执行时,有的还回有命令返回值
    根据命令及其功能不同,结果各不相同

    引用命令的执行结果:
      $(COMMAND)
      或`COMMAND`

  rmdir [OPTION]...DIRECTORY ...
    -p:删除某目录后,如果其父目录为空,则一并删除
    -v:显示过程:
  bash基础特性:快捷键
    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行
      head -n # FILE

    tail命令:
      查看文件的后n行:
      tail [OPTION] FILE
        -n #
        - #
        -f:查看文件尾部内容结束后不退出,跟随文件新增的行
    stat命令:
      stat FILE ...

    文件:两类数据
      元数据:metadata
      数据:data

    时间戳
      access
      modify 数据
      change 元数据
    touch命令:
      - change file timestamp
      -c:指定的文件路径不存在,则不创建
      -a:仅修改access time
      -m:仅修改modify time
      -t:STAMP

  文件管理工具:cp,mv,rm
    cp命令:copy
    源文件:目标文件

4.4Linux运维常用文件管理命令及系统变量基础

文件管理工具:cp, mv, rm
    cp命令:copy
        源文件:目标文件
        
        单源复制:cp [OPTION]... [-T] SOURCE DEST
            如果DEST不存在,则事先创建次文件,并复制源文件的数据流至DEST文件
            如果DEST存在:
                如果DEST是非目录文件,则覆盖目标文件
                如果DEST是目录文件:创建一个同名文件,复制
                
                                
        
        多源复制:cp [OPTION]... SOURCE...DIRECTORY
                  cp [OPTION]... -t DIRECTORY SOURCE...
            如果DEST不存在,错误
            如果DEST存在:
                如果DEST是非目录文件,错误
                如果DEST是目录文件:分别复制每个文件至目标目录,并保持原名
                  
            常有选项: 
                -i:交互式复制,即覆盖之前提醒用户确认
                -f:强制覆盖目标文件
                -r:递归复制目录
                -d:复制符号链接文件本身,而非其指向的源文件
                -a:
                --preserve
                    mode: 
                    ownership:
                    timestamps:
                    context:
                    xattr:
                    links:
                    all:
    mv命令:move
        mv [OPTION]... [-T] SOURCE DEST
        mv [OPTION]... SOURCE...DIRECTORY
        mv [OPTION]... -t DIRECTORY SOURCE...
        
        常用选项:
            -i: interactive
            -f: force
    rm命令:remove
        rm [OPTION] ... FILE...
        
        常用选项:
            -i: interactive
            -f: force
            -r: recursive

 

      

以上是关于4.Linux根文件系统和目录结构及bash特性的主要内容,如果未能解决你的问题,请参考以下文章

04 Linux根文件系统和目录结构及bash特性

Linux根文件系统和目录结构及bash特性4

linux文件系统及bash基础特性

Linux的文件系统系统管理类命令bash基础特性

Linux系统目录结构及文件类型区分

linux系统目录结构介绍