Linux文件系统结构

Linux通过操作目录来实现对磁盘的读写。Linux通过使用正斜杠" / "来表示目录。

Linux通过建立一个根目录,所有的目录都是通过根目录衍生出来的。

登录系统后,输入ls /来查看

结果如下:

在Linux底下,所有的文件与目录都是由根目录开始,是目录与文件的源头,然后一个个的分支下来,如同树枝状,因此称为这种目录配置为:目录树。

目录树的特点:

  • 目录树的起点都是根目录(/root)
  • 每一个目录不仅能使用本地的文件系统,也能使用网络上的文件系统,利用NFS服务器挂载到特定的目录。
  • 每一个目录树这种的文件名,包括完整的路径都是独一无二的。

目录树的架构示意图:

        

一下是对目录的详情解释;

            

  • /bin
    bin是Binary的缩写, 这个目录存放着最经常使用的命令。

  • /boot:
    这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

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

  • /etc:
    这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home
    用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

  • /lib
    这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media
    linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

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

  • /opt
     这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc
    这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
     这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv
     该目录存放一些服务启动之后需要提取的数据。

  • /sys
     这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

    sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

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

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

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

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

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

  • /var
    这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

目录的相关操作

切换目录使用的是cd指令,

.表示当前的路径
..上一级目录
~当前用户所在的家目录
-前一个工作目录 需要注意的是,在所有目录底下都存在两个目录,分别是【.】和【..】,分别代表当前目录,上层目录!那么如何证明它的存在呢? 命令: ls -la /
查看命令解释:man ls (Linux下的帮助指令)
结论:ls - list directory contens (列出目录内容)
ls -la / 以竖状格式化显示列出/目录所有内容

常用的目录处理:

cd : (change directory,更改目录)
pwd:(显示当前目录)
mkdir:(建立一个新目录)
rmdir:(删除一个空目录)

有关目录的操作:

cd命令 :交换工作目录的命令,命令和目录之间有一个空格

      

mkdir命令:建立新的目录(文件夹),在默认的情况下,目录要一级一级的创建。通过-P参数可以创建不存在的目录以及它的子目录cd

cd  /tmp

      

可见高效的创建目录用上-p参数,可以直接执行命令【mkdir -p /home/oldboy/python】,系统会自动添加上/home,/home/oldboy,/home/oldboy/python依次建立目录,是不是很方便。

rmdir命令:只能删除空的目录

     

rm -rf  炸弹命令,强制递归删除文件夹和文件且没有提示,,,删库到跑路,
rm-r 递归删除
rm-f 强制删除

注意:vmware虚拟机快照功能,在vmware软件中点击可以拍下当前系统的状态,以便日后恢复

Linux的路径PATH:

如何查案Linux的环境变量

echo $PATH
备注:
echo命令是输出打印的意思。
$符后边的跟上PATH,表示输出PATH的变量
PATH要大写,变量是由一堆目录组成以冒号:来分割

绝对路径和相对路径

路径在linux操作中是很重要的,要通过路径来找到文件

Linux下特别注意文件名/路径的写法,可以将所谓的路径(path)定义为绝对路径(absolute)和相对路径(relative)。这两种文件名/路径的写法依据是这样的:

  • 绝对路径:以(/)目录开始写的文件名或者目录就是绝对路径  比如/home/oldboy/python.py
  • 相对路径:开头不是(/)根目录的就是相对路径   比如./home/oldboy/python.py

                  

最新文章

  1. ensure LANG and/or LC_* environment variables are set correctly
  2. 剑指Offer 用两个栈实现队列
  3. linux下mysql开启关和重启
  4. 如何编写一个PHP的C扩展
  5. 南昌PHP程序员的工资水平据说可达到8000了
  6. rsync 不能同不子级目录的问题
  7. 实例讲解Linux下的makefile
  8. mysql字符串相关
  9. OpenDialog获取文件名
  10. codeforce 621B Wet Shark and Bishops
  11. orcad中的PSpice仿真加入厂商模型
  12. Github上四种Lisp方言的流行度 | 肉山博客 (Wenshan's Blog)
  13. DDD分层架构之领域实体(基础篇)
  14. 属性动画ValueAnimator用法
  15. LeetCode & Q217-Contains Duplicate-Easy
  16. 在Spring Boot框架下使用WebSocket实现消息推送
  17. FLIR 相机采集程序
  18. iOS应该具备知识点
  19. smali语法详解
  20. CS50.5

热门文章

  1. postgresql获取表最后更新时间(通过表磁盘存储文件时间)
  2. day48—JavaScript键盘事件
  3. python 设置开机启动脚本
  4. Tensorflow实战 手写数字识别(Tensorboard可视化)
  5. SQL复制远程数据库数据到本地-及查询结果少显示一列
  6. Vue 基础 day05 webpack 3.x
  7. Vue 基础 day02
  8. [Vim] 03 凡人进阶
  9. [2019杭电多校第二场][hdu6599]I Love Palindrome String(回文自动机&&hash)
  10. 第九届蓝桥杯A组第三题: 乘积尾零