Chapter 2. 文件系统

2.1 Linux 系统目录结构

命令窗口下输入命令: $ ls /,能够看到根目录下的全部目录及文件

树状目录结构为:

最顶级的目录:

  • / :根目录

/ 是根目录,~ 是家目录。Linux 的目录结构为树状结构,源头即是 /,其他目录可通过挂载将它们添加到树中,解除挂载可以移除它们。而每个用户都有其家目录。比如说root用户的家目录是/root,普通用户a的家目录是/home/a

系统启动必须:

  • /boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。

  • /etc:存放所有的系统需要的配置文件子目录列表,更改目录下的文件可能会导致系统不能启动。

  • /lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中

指令集合:

  • /bin:存放着最常用的程序和指令

  • /sbin:只有系统管理员能使用的程序和指令。

外部文件管理:

  • /dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。

  • /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。

  • /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

临时文件:

  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

  • /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。

  • /tmp:这个目录是用来存放一些临时文件的。

账户:

  • /root:系统管理员的用户主目录。

  • /home:用户的主目录,以用户的账号命名的。

  • /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

  • /usr/bin:系统用户使用的应用程序与指令。

  • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src:内核源代码默认的放置目录。

运行过程中要用:

  • /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。

  • /proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。

扩展用的:

  • /opt:默认是空的,我们安装额外软件可以放在这个里面。
  • /srv:存放服务启动后需要提取的数据(不用服务器就是空)
  • /boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
  • /etc:存放所有的系统需要的配置文件子目录列表,更改目录下的文件可能会导致系统不能启动。
  • /lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中

2.2 文件与目录管理

特殊目录:

  • .:代表当前的目录,也可使用./表示。
  • ..:代表上一层目录,也可使用../表示。

两种路径:

  • 绝对路径:由根目录/写起。eg: /usr/share/doc
  • 相对路径:不是由/写起。

2.2.1 处理目录的常用命令

  • ls (list files,列出目录或文件名)

    参数:

    • -a:列出全部文件(包括开头为.的隐藏文件)
    • -l:长数据(包含文件属性、权限等)详细地列出文件

  • cd(change directory,切换目录)

  • mkdir(make directory,创建一个新的目录)

    参数:

    • -m:配置文件的权限
    • -p:直接将所需要的目录递归地进行创建
    #在家目录中创建myfile
    $ mkdir myfile
    #注意,不能直接 $ mkdir yourfile/here/cur 这样多层创建(会报错!),必须使用-p参数
    $ mkdir -p yourfile/here/cur
    #使用绝对路径进入here文件夹
    $ cd ~/yourfile/here
    #返回上一级目录
    $ cd ..
    #使用相对路径进入cur文件夹
    $ cd ./here/cur
  • pwd(print work directory,显示当前所在的绝对目录路径)

    参数:

    • -P:注意,是大写!显示出正确的完整路径,而非使用连结(link)路径

    一般情况下,搭配 -P 选项使用

  • cp(copy file,复制文件或目录)

    语法为:

    $ cp 参数 源文档 目标文档

    选项及参数

    • -i:若目标文档已经存在,在覆盖时会先询问是否覆盖
    • -p:(备份常用)连同文件的属性一同复制过去,而非使用默认属性
    • -r:(常用于目录的复制)递归持续复制
    • -s:(捷径文件)复制成为符号连结当(Symbolic link)
    • -u:若目标文档已存在,且源文档较新,才会升级(update)
    $ cp -ir ~/yourfile /tmp/newfile
  • rm(remove,移除文件)

    默认情况下,只能删除文件。

    有选项及参数:

    • -r:递归删除,用于目录的删除(较危险)
  • mv(move file,移动文件与目录,或修改名称

    cp指令大致相同的用法。

2.2.2 文件查看命令

  • cat(由第一行开始显示文件内容)

    选项与参数:

    • -b:列出行号(空白行不标行号)
    • -v:列出一些看不出的特殊字符

    cat >> 文件名:以系统默认的文件属性作为新文件的属性,并接受键盘输入作为文件的内容。输入结束时按Ctrl+d退出并保存文件。

  • tac(从最后一行开始显示文件内容,与cat命令相反)

  • less(一页一页地翻动查看)

    可输入的命令:

    • bankspace:向下翻动一页
    • /子串:向下搜寻"子串"
    • ?子串:向上搜寻“子串”
    • n:重复前一个搜寻
    • q:离开less这个程序
  • head(取出文件前面几行)

    语法为:

    $ head [-n number] 文件名
    #-n 后面接的是数字,代表显示几行

    tail(取出文件后面几行),与上同理

  • wc(word count,计算字数)

    语法为:

    $ wc [-clw][--help][--version][文件名1 文件名2 ...]

    参数有:

    • -c:显示字符数
    • -w:显示字数
    • -l:显示行数
    • --help:在线帮助
    • --version:显示版本信息
    $ wc testfile testfile_1 testfile_2  #统计三个文件的信息
    3 92 598 testfile #第一个文件行数为3、单词数92、字节数598
    9 18 78 testfile_1 #第二个文件的行数为9、单词数18、字节数78
    3 6 32 testfile_2 #第三个文件的行数为3、单词数6、字节数32
    15 116 708 总用量 #三个文件总共的行数为15、单词数116、字节数708

2.2.3 文件基本属性

Linux 系统对不同用户访问同一文件(包括目录文件)的权限做不同规定。

使用 llls -l 命令可以显示一个文件的属性以及文件所属的用户和组,如:

每个文件的属性由左边第一部分的10个字符来确定:

从左至右用 0 - 9 这些数字来表示,第 0 位确定文件类型,第 1-3、4-6、7-9 位分别确定属主(该文件的所有者)、属组(所有者的同组用户)、其他用户 拥有该文件的权限。

  • 第一个字符代表这个文件是目录、文件或链接文件等等:

    • d :**目录 **
    • -文件
    • l :链接文档(link file)
    • b :装置文件里面的可供储存的接口设备(可随机存取装置)
    • c :装置文件里面的串行端口设备(如键盘、鼠标)
  • 接下来是以三个为一组,且均为 rwx 的三个参数的组合,其中,r 代表可读、w代表可写、x代表可执行。若没有权限,就出现减号 -

更改文件属性的指令:

  1. chgrp:更改文件属组。

    $ chgrp [-R] 属组名 文件名

    参数 -R ,递归更改文件属组(即该目录下的所有文件的属组都会更改)

  2. chown:更改文件属主,也可以同时更改文件属组。

    $ chown [-R] 属主名 文件名
    $ chown [-R] 属主名:属主名 文件名
    $ chown Ben install.log
    #将install.log的拥有者改为bin这个账号
    $ chown Mygroup install.log
    #将install.log的属组改为Mygroup
    $ chown root:root install.log
    #将install.log的拥有者与群组改为root
  3. chmod:更改文件9个属性

    该指令有两种方式修改属性,一种是通过权限分数进行累加(类似二进制),另一种是通过符号类型改变文件权限,接下来就演示该方法。

    使用 ugo 来表示三种身份的权限,此外a可代表全部身份。然后使用下表的方式来进行修改:

    $ chmod u+wrx,g=wx,o-r mynewfile
    #注意,','号间不能加空格!!
    $ chmod g=rx,u=wrx,o=r mynewfile

Linux 学习笔记03丨Linux文件系统、文件基本属性、目录处理及文件查看的更多相关文章

  1. Linux学习笔记03—初识Linux

    命令介绍 忘记root密码的处理方法 系统安装盘的救援模式的使用 一.命令介绍 1.LS命令 ls 查看当前目录下的文件 Ls –l 等同于ll 查看目录的详细信息 Ls –a 查看当前目录下的所有文 ...

  2. Linux 学习笔记04丨Linux的用户和用户组管理

    Chapter 3. 用户和用户组管理 由于Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以该账号身份进入系统. 3.0 用户与 ...

  3. Linux 学习笔记02丨Linux 概述、常用快捷键、apt命令

    Chapter 1. Linux 概述 Linux 是一种自由和开放源码的 Unix 操作系统, 是一个基于 POSIX 和 UNIX 的多用户.多任务.支持多线程和多CPU的操作系统.只要遵循 GN ...

  4. Linux学习笔记之磁盘与文件系统的管理

    三.Linux磁盘与文件系统的管理 MBR扇区(512B) 磁盘的分区组成 Boot sector    扇区(用来装引导程序) Super block   记录inode与Block的信息 Inod ...

  5. linux学习笔记(3)-文件系统

    三大类文件类型 普通文件:包括文本文件.数据文件.可执行的二进制程序文件 目录文件:linux系统把目录看成一种特殊的文件,利用它构成了文件系统的树形结构 设备文件:把设备也看成是一个文件,例如你的鼠 ...

  6. Linux学习笔记之二————Linux系统的文件和目录

    一.Windows和Linux文件系统区别 1.在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符: 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:  ...

  7. Linux学习笔记03

    一.Linux常见命令 file:查看文件类型(windows用扩展名识别文件类型) 语法:file [options] [args] -b:显示结果时,不显示文件名 -c:显示执行file命令的执行 ...

  8. 鸟哥Linux学习笔记03

    1, 在Linux中,默认情况下所有的系统上的账号都记录在/etc/passwd这个文件内,密码记录在/etc/shadow这个文件下,所有的组名都记录在/etc/group内,这三个文件可以说是Li ...

  9. Linux 学习笔记01丨Ubuntu系统安装、配置及软件教程集合

    1. Ubuntu系统安装 Windows10安装ubuntu18.04双系统教程 Ubuntu 20.04.1 镜像下载 软碟通 机械革命进入BIOS模式 要按F2,注意将Boot Option中将 ...

随机推荐

  1. ABAP-字符串常用处理方法

    字符串处理 SPLIT dobj AT sep INTO { {result1 result2 ...} | {TABLE result_tab} } 必须指定足够目标字段.否则,用字段dobj的剩余 ...

  2. U137971 公司搬迁 - 并查集 奇偶性

    题目描述 因为人员规模扩大,T公司准备搬到新的写字楼去,写字楼分为A座和B座,n名不同工号的员工x(p1,p2,p3...pn) 按照下面两个规则确定在A座或者B座进行办公:(1)如果工号为x的员工在 ...

  3. LoRa联盟的简介

    LoRa联盟成立于2015年3月,从成立开始,LoRaWAN规范就在不断更新,从1.0.0版本已更新至1.0.2版本,目前能公开下载的事2016年7月完成的1.0.2版本,可以看到该规范的主要作者包括 ...

  4. Route53导出解析记录

    使用AWS CLI来进行导出 可以参考AWS的官方文档 安装AWS CLI 官方安装aws cli文档 curl "https://awscli.amazonaws.com/awscli-e ...

  5. 微信小程序跳转到微信公众号

    我这里是uniapp里的操作 微信开发者工具配置 微信小程序官网地址:official-account 公众号关注组件. 当用户扫小程序码打开小程序时,开发者可在小程序内配置公众号关注组件,方便用户快 ...

  6. 7_Reverse Integer

    7.Reverse Integer Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 ...

  7. xshell断线解决办法

    困扰了好几个月了,网上更改ssh配置文件.固定ip都不好使,终于找到xshell掉线的解决办法了 哈哈!!! 设备管理器-->网络适配器-->对应网络连接虚拟机方式,本机虚拟机桥接如图 右 ...

  8. Java程序员成长之路

    北哥在前文总结了程序员的核心能力,但在专业能力维度,只是做了大概的阐述,并没有详细展开.从今天开始,我会把我作为程序员成长过程中,学习的知识总结成系列文章陆续发出来,供大家学习参考. 本文是第一篇,关 ...

  9. Ubuntu 18.04.2 LTS美化方案

    Ubuntu 18.04.2 LTS美化方案记录 根据个人经验,我将Ubuntun美化分为四个部分:1)桌面:2)对话框界面:3)图标:4)登录及锁屏界面:5)终端.由于Ubuntu系统默认采用GNO ...

  10. Spark编程练习题

    import org.apache.spark.sql.SparkSessionval spark = SparkSession.builder().appName("Spark SQL b ...