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

Linux文件系统:

  Linux:glibc

  程序编译方式:

    动态链接式编译

    静态链接式编译

  进程的类型:

    终端:硬件设备,在硬件设备上可以关联一个用户接口,从而让用户用此接口与操作系统打交道

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

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

  操作系统的组成:

      静态:kernel(内核),application(应用程序)

      文件系统:层级结构

  FHS:

     Filesystem Hierarchy Standard(文件系统层次化标准)

        /bin:所有用户可用的基本命令程序文件

        /sbin:供系统管理使用的工具程序

        /boot:引导加载器必须用到的各静态文件;例如:kernel,initramfs(initrd,grub等)

        /dev:存储特殊文件或设备文件

          设备有两种类型:字符设备(线性设备),块设备(随机设备)

        /etc:系统程序的配置文件,只能为静态的不能为二进制文件

        /home:普通用户的家目录的集中位置:一般每个普通的家目录默认为此目录下与用户名同名的子目录,/home/username

        /lib:为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块

          libc.so.*:动态链接的C库

          ld*:运行时链接器/加载器

          modules:用于存储内核模块的目录

        /lib64::64位系统特有的存放64位共享库的路径

        /media:便携式设备挂载点,cdrom,floppy等

        /mnt:其它文件系统的临时挂载点

        /opt:附加应用程序的安装位置;可选路径

        /root:管理员的家目录;可选

        /srv:当前主机为服务提供的数据;

        /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限

        /usr:/usr Hierarchy,全局共享的只读数据路径;

          bin,sbin

          lib,lib64

          include:C程序头文件

          share:命令手册页和自带文档等架构特有的文件的存储位置

          local:另一个层级目录:

          x11R6:X-Window程序的安装位置

          src:程序源码文件的存储位置

        /usr/local:Local Hierarchy,让系统管理员安装本地应用程序,也通常用于安装第三方程序

        /var:/var Hierarchy,存储常发生变化的数据的目录

          /var/cache/ 应用程序的缓存数据

          /var/lib/  状态信息。由程序在运行时维护的持久性数据。

          /var/log/ 日志文件

          /var/run 已经被/run/替代,自最后一次启动以来运行中的系统的信息:如运行中的守护进程,当前登录的用户。

          /proc:基于内存的虚拟文件系统;内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward,虚拟为net/ipv4/ip_forward,存储于/porc/sys/,因此其完整路径为/proc/sys/net/ipv4/ip_forward

          /sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径

            主要作用:在于为管理Linux设备提供一种一模型的接口

      Linux文件系统层次结构标准简介(参考网址):

            https://blog.csdn.net/qq_29753285/article/details/69791332

  Linux系统上的文件类型:

      -:常规文件;即f;

      d:directory,目录文件

      b:block device,块设备文件,支持以“block”为单位进行随机访问

      c:character device,字符设备文件,支持以“character”为单位进行先行访问

        major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序

        minor number:次设备号,用于标识同一类型中的不同的设备,

      l:symbolic link:符号链接文件(相当于Windows当中的快捷方式);

      p:pipe,命名管道;

      s:socker,套接字文件

  基本命令:

    命令类型:

      外部命令

      shell内嵌命令

      type command

        内部:builtin

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

          注意:命令可以有别名:别名可以与原名相同(此时原名被隐藏),此时如果要运行原命令,则使用\command

      命令别名:

        获取所有可用别名的定义:

          ~]# alias

        定义别名:

          ~]# alias NAME="command"

          注意:仅对当前shell进程有效

        撤销别名:

          ~]# unalias NAME

    which命令

      which - shows the full path of (shell) commands.(完整的显示命令路径)

      which [options] programname [...]  (使用格式)

        --skip-alias:忽略别名

      whereis命令:

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

        可以用来查找二进制(命令)、源文件、man文件。与which不同的是这条命令可以通过文件索引数据库而非PATH来查找的,所以查找的面比which要广

        whereis [options]  name...

          -b:仅搜索二进制程序路径

          -m:仅搜索使用手册文件路径

        who命令:

            who - show who is logged on

            显示出系统中有哪些用户登录系统,显示的资料包含了使用者的ID、使用的登录终端、上线时间、呆滞时间、CPU占用,以及做了些什么。使用权限为所有用户

            who [OPTION]...

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

              -r:运行级别

        w命令:

           w - Show who is logged on and what they are doing.

           w命令就是who命令的增强版,用于显示目前登入系统的用户信息,执行这项指令可得知目前登入系统的用户有哪些人,以及他们正在执行的程序,单独执行w指令会显示所有的用户,您也可以指定用户名称,仅显示某位用户的相关信息

  bash的基础特性之一:

      命令历史:shell进程会在其会话中保存此前用户提交执行过的命令

        ~]# history

        查看历史命令

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

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

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

                .bash_history

            HISTFILESIZE:历史命令文件的大小

        命令用法:

          history [-c] [-d 偏移量] [n]

          或 history -anrw [文件名]

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

          -c:删除所有history所有命令历史

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

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

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

          history n:显示最近的n条命令

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

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

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

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

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

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

          快捷键:ESC,(逗号代表松开).

          字符串:command !$

        控制命令历史记录的方式:

          环境变量:HISTCONTROL

            ignoredups:忽略重复的命令

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

            ignoreboth:以上两者同时生效

          修改变量的值:

            NAME=‘VALUE‘

Linux基础知识 

 bash的基础特性:

      命令行补全功能:

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

        命令查找机制:

          查找内部命令

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

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

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

        路径补全:

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

            tab:

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

              否则,再一次tab,给出列表

  目录管理类的命令:

      mkdir:make directory

        mkdir [OPTION]... DIRECTORY...

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

          -v:verbose,显示详细过程

          -m MODE:直接给定创建目录的权限

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

          

      rmdir:remove directoryies  仅能删除空目录

        rmdir [OPTION]... DIRECTORY...

        -p:删除某目录后,如其父目录为空,则一并删除之

        -v:显示命令执行过程

   bash的基础特性之:命令行展开

      ~:自动展开为用户的家目录,或指定的用户的家目录

      {}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径

        例如:/tmp{a,b}相当于 /tmpa /tmp/b

      问题一:如何创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b?

          mkdir -pv /tmp/x/{y1/{a,b},y2}

      问题二:如何创建a_c,a_d,b_c,b_d

          [[email protected] tmp]# mkdir  -v  {a,b}_{c,d}

      问题三:创建如下目录结构:

         

[[email protected] tmp]# tree /tmp/mysysroot/
/tmp/mysysroot/
├── bin
├── etc
│   └── sysconfig
│   └── network-scripts
├── sbin
├── usr
│   ├── bin
│   ├── lib
│   ├── lib64
│   ├── local
│   │   ├── bin
│   │   ├── etc
│   │   ├── lib
│   │   └── sbin
│   └── sbin
└── var
├── cache
├── log
└── run

19 directories, 0 files

mkdir -pv /tmp/mysysroot/{bin,sbin,etc/sysconfig/networkscripts,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}

  tree命令:查看目录结构

     tree [options] [diretory]

     -L level:指定要显示的层级

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

    命令执行的状态结果:

      bash通过状态返回值来输出此结果:

        成功:0

        失败:1-255

      命令执行完成之后,其状态返回值保存于bash的特殊变量$?中

    命令正常执行时,有的还回有命令返回值:

      根据命令及其功能不同,结果各不相同

    引用命令的执行结果:

      $(command)

      或`command`

  bash的基础特性:引用

    强引用:‘ ’

    弱引用:“ ”

    命令引用:` `

  bash的基础特性:快捷键

    Ctrl+a:跳转至命令行行首

    Ctrl+e:跳转至命令行行尾

    Ctrl+u:删除光标所在处至行首之间的所有字符

    Ctrl+k:删除光标所在处至行尾之间的所有字符

    Ctrl+l:清屏,相当于clear

  文本查看类命令:cat,tac,head,tail,more,less

    分屏查看命令:more和less

    more命令:

      more FILE

        特点:翻屏至文件尾部后自动退出

    less命令:

       less FILE

    head命令:

      查看文件的前n行:

        head [options] FILE

          -n #:#代表指定的前多少行

          -#:和加-n选项一样

    tail命令:

       查看文件的后n行

        tail [options] FILE

          -n #:#代表指定的后多少行

          -#:和加-n选项一样

          -f:查看文件尾部内容结束后不退出,而是跟随显示新增的行

    stat命令:stat - display file or file system status 显示文件或文件系统的状态

      stat  FILE...

      文件:两类数据

        元数据:metadate

        数据:date

      时间戳:

        最近访问(access time):2018-12-27 11:05:22.616718714 +0800
        最近更改(modify time):2018-12-27 11:05:22.616718714 +0800
        最近改动(change time):2018-12-27 11:05:22.616718714 +0800

     touch命令:

        touch - change file timestamps

        -c:指定的文件路径不存在时不予创建

        -a:仅修改access time

        -m:仅修改modify time

        -t:STAMP

          use [[CC]YY]MMDDhhmm[.ss] instead of current time

        一般 -a和-m会和-t选项一块使用

          change time 是不能手动指定时间的

原文地址:https://www.cnblogs.com/self-discipline-xxc/p/10177013.html

时间: 2024-11-05 20:31:02

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

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

4.1Linux目录结构和根文件系统全面讲解 Linux文件系统: Linux:glibc 程序编译方式: 动态链接 静态编译 进程的类型: 终端:硬件设备, 关联一个用户接口 与终端相关:通过终端启动 与终端无关:操作引导启动过程当中自动启动 操作系统的组成: 静态:Kernel,application 文件系统:层级结构 FHS: Filesystem Hierachry Stanard /bin: 所有用户可用的基本命令程序文件 /sbin:供系统管理使用的工具程序 /boot:引导加载器

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

Linux系统上的文件类型:    -:常规文件,即f    d:directory,目录文件    b:block device,块设备文件,支持以“block”为单位进行随机访问    c:character device,字符设备文件,支持以“character”为单位进行线性访问        major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序        minor number:次设备号,用于标识同一类型中的不同的设备            早期用8位二

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

文件管理工具:cp,mv,rm    cp命令:copy                cp命令主要用于复制文件或目录 语法:        单源复制        cp [OPTION]... [-T] SOURCE DEST         多源复制        cp [OPTION]... SOURCE... DIRECTORY         cp [OPTION]... -t DIRECTORY SOURCE... 单源复制:cp [OPTION]... [-T] SOURCE DE

【转】完美解读Linux中文件系统的目录结构

一.前 言 接触Linux也有一段时间了,不过这几天在编译开源程序时,才发现自己对linux文件系统的目录结构了解的不够透彻,很多重要目录都说不清楚是用来干嘛的,于是在网上百度了一下这方面的介绍,根据自己的使用习惯,整理出来一篇关于Linux文件系统的目录结构的文章,和大家一起分享. 文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构.同时文章最后附录了一份Linux目录结构的简明手册,以便大家查阅. 二.目 录 1.什么是文件系统 2.文

Linux基础——文件系统与目录结构

文件系统 文件和目录被组织成一个单根倒置树结构 文件系统从根目录下开始,根文件系统(rootfs): root filesystem,用"/" 表示 文件名称区分大小写 以.开头的文件为隐藏文件 路径分隔符: / 文件有两类数据:元数据: metadata数据: data 文件系统分层结构: LSB(Linux Standard Base) FHS: (Filesystem Hierarchy Standard):文件系统层级标准,具体请参考:http://www.pathname.c

第17章- 构建Linux根文件系统

本章目标 l 了解Linux的文件系统层次标准(FHS) l 了解根文件系统下各目录的作用 l 掌握构建根文件系统的方法:移植Busybox.构造各个目录.文件等 l 掌握制作yaffs.jffs2文件系统映象文件的方法 推广: 想了解更多嵌入式知识请移步到 100ask.taobao.com 17.1  Linux文件系统概述 17.1.1  Linux文件系统的特点 类似于Windows下的C.D.E等各个盘,Linux系统也可以将磁盘.Flash等存储设备划分为若干个分区,在不同分区存放不

Linux文件系统的目录结构详解

一.前 言 文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构. 二.目 录 1.什么是文件系统 2.文件系统的类型 3.目录结构的详细解读 4.一些重要子目录的解读 5.附录:目录结构的简明查阅手册 三.正 文 我想,不光是我,对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.下面大家跟飘扬一起来学习吧…………. 1.什么是文件系统 当您使用Linux的时候,如果您通过ls –l / 就会

Linux小白第二弹之文件系统与目录结构大汇总

Linux小白第二弹之文件系统与目录结构大汇总 今天聊一下关于目录结构的东东. LInux的标准目录结构是由根/和一级目录组成,文件和目录被组织成一个单根倒置树结构.文件系统从根目录下开始,用"/"表示.一级目录如下:bin(binary),所有用户使用的基本命令:不能关联至独立分区,OS启动就会用到的程序[普通用户]: boot,引导文件存放目录,内核文件(vmlinuz).引导加载器(bootloader,grub)都存放于此目录: dev对应的是设备,如硬盘光盘: etc,配置文

Linux文件系统的目录结构详解(转)

一.前 言 文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构. 二.目 录 1.什么是文件系统 2.文件系统的类型 3.目录结构的详细解读 4.一些重要子目录的解读 5.附录:目录结构的简明查阅手册 三.正 文 我想,不光是我,对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.下面大家跟飘扬一起来学习吧…………. 1.什么是文件系统 当您使用Linux的时候,如果您通过ls –l / 就会