linux 文件管理

文件管理

Linux的文件系统和目录结构图:
linux

先看centos6.8的目录结构:用tree命令能够查看,若是没安装请使用 sudo yum install tree 命令安装git

[root@centos6 cent]# tree / -L 1
/
├── bin             1
├── boot            2
├── dev             3
├── etc             4
├── home            5
├── lib             6
├── lib64           7
├── lost+found     centos7已弃用
├── media           8
├── misc            centos7已弃用
├── mnt             9
├── net             centos7已弃用
├── opt             10
├── proc            11
├── root            12
├── sbin            13
├── selinux         centos7已弃用
├── srv             14
├── sys             15
├── tmp             16
├── usr             17
└── var             18


再看centos7的目录结构:用tree命令能够查看
shell

[root@localhost ~]# tree / -L 1
/
├── bin -> usr/bin         1
├── boot                   2
├── dev                    3
├── etc                    4
├── home                   5
├── lib -> usr/lib         6
├── lib64 -> usr/lib64     7
├── media                  8
├── mnt                    9
├── opt                    10
├── proc                   11
├── root                   12
├── run                    centos7新特性
├── sbin -> usr/sbin       13
├── srv                    14
├── sys                    15
├── tmp                    16
├── usr                    17
└── var                    18


RHEL7目录变化:vim

  • /bin 和 /usr/bin centos

  • /sbin 和 /usr/sbin 缓存

  • /lib 和/usr/lib安全

  • /lib64 和 /usr/lib64 bash


还有一张整理好的图片:socket



052049040017593.png


文件系统结构详解:ide


/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器 (bootloader, grub)都存放于此目录 

/bin:供全部用户使用的基本命令;不能关联至独立分区, OS启动即会用到的程序 

/sbin:管理类的基本命令;不能关联至独立分区,OS启动即 会用到的程序 

/lib:启动时程序依赖的基本共享库文件以及内核模块文件 (/lib/modules) 

/lib64:专用于x86_64系统上的辅助共享库文件存放位置 

/etc:配置文件目录 

/home/USERNAME:普通用户家目录 

/root:管理员的家目录 

/media:便携式移动设备挂载点

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

/dev:设备文件及特殊文件存储位置 b: block device,随机访问 c: character device,线性访问 

/opt:第三方应用程序的安装位置 

/srv:系统上运行的服务用到的数据 

/tmp:临时文件存储位置

/usr: universal shared, read-only data 

bin: 保证系统拥有完整功能而提供的应用程序 

sbin: 

lib:32位使用 

lib64:只存在64位系统 

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相关的安全策 略等信息的存储位置


一些重要目录:


二进制程序:

/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin

库文件:

/lib
/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64

配置文件:

/etc
/etc/DIRECTORY
/usr/local/etc

帮助文件:

/usr/share/man
/usr/share/doc
/usr/local/share/man
/usr/local/share/doc


文件系统:


  • 文件系统从根目录下开始的,用 "/"表示

  • 文件和目录被组织成一个单根倒置树结构

  • 跟文件系统(rootfs): root filesystem

  • 名称是大小写敏感(特殊的文件系统除外)

  • 以 . 开头的文件为隐藏文件

  • 路径分隔符 / 

  • 文件有两类数据:    

      元数据 : metadate

      数据  : data

  • 文件系统分层结构:LSB Linux Standard Base

  • FHS : (Filesystem Hierarchy Standard):文件系统层次结构标准




文件命名规则:


  • 包括路径在内文件名最长4095个字符,用 / 分隔的路径不能超过255个字节

  • 除了 斜杠 和 NUL ,全部的字符都有效

  • 使用特殊字符的目录名和文件不推荐使用,有些字符须要用引号来引用它们

  • 标准的Linux文件系统(如ext4),文件名称大小写敏感


文件颜色照应:


  • 蓝色-->目录

  • 绿色-->可执行文件

  • 红色-->压缩文件

  • 浅蓝色-->连接文件

  • 灰色-->其余文件


Linux下文件的类型:


  • -: 普通文件

  • d: 目录文件

  • b: 块设备

  • c: 字符设备

  • l: 符号连接文件

  • p: 管道文件pipe

  • s: 套接字文件socket




每一个shell和系统进程都有一个当前的工做目录

显示当前的shell的绝对路径命名: #pwd :printing working directory


PWD:保存了当前目录路径

OLDPWD:保存上一次所在目录路径

能够用 #echo $PWD 查看


路径又分为两种,一种为绝对路径,一种为相对路径

    绝对路径是以正斜杠开始,显示完整的文件的位置路径

    可用于任何想指定一个文件名的时候

    相对路径不用以斜线开始,指定相对于当前工做目录或某

    目录的位置,能够做为一个简短的形式指定一个文件名

两种路径方式各有好处,须要灵活应用




来讲一下 cd 命令的简单使用

    cd : Change  the  current  directory  to  dir.改变目录

  能够改变相对或者绝对路径:

    cd home/Download

    cd /home/nineven

  到上一级目录:cd..

  进入本身的主目录:cd ,cd ~

  进入之前的工做目录:cd -




ls,是用来列出目录内容的命令

它能够列出当前目录或指定目录的内容

用法:

ls [OPTION]... [FILE]...

好比:

ls -a 显示隐藏的文件

blob.png

ls -l 显示额外的信息

blob.png


ls -R 目录递归经过 ,文件夹内的内容递归显示

blob.png

ls -ld 目录和符号连接信息 

blob.png

ls -1  文件分行显示 

blob.png

ls –S  按从大到小排序 

ls –u   配合-t选项,显示并按atime重新到旧排序 

ls –U  不排序按目录存放顺序显示

这些命令本身能够ls --help 查看,必定要本身学会运用帮助命令




文件的状态查看 stat FILENAME


stat 文件:metadate 元数据  ,date 数据

时间戳,经过stat查看,好比:

blob.png

access time:访问时间,atime,读取文件内容 

modify time: 修改时间, mtime,改变文件内容(数据) 

change time: 改变时间, ctime,元数据发生改变

使用touch命令能够更改时间戳

 先用touch --help查看一下,发现:

   -a    change only the access time

   -m    change only the modification time

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

命令以下:

    先查看一下详细信息:

blob.png

而后执行 touch -a issue

blob.png

而后执行 touch -m issue

blob.png

修改指定时间好比 touch -t200808080808.24 issue

blob.png


好比一些编辑vim,查看cat,复制cp等都会改变时间戳







文件通配符:


  • * 匹配零个或多个字符 

    blob.png

  • ? 匹配任何单个字符

  • ~ 当前用户家目录 

  • ~username 用户家目录 

  • ~+ 当前工做目录 

  • ~- 前一个工做目录 

  • [0-9] 匹配一个数字范围 

    blob.png

  • [a-z]:大写和小写字母 

  • [A-Z]:大写字母

 blob.png

  • [abc] 匹配列表中的任何的一个字符 

  • [^abc] 匹配列表中的全部字符之外的字符

  • blob.png


预约义的字符类:

能够用 #man -f glob 查看所在的章节而后 #man 7 glob


  • [:digit:] :任意数字,至关于0-9

  • [:lower:] :任意小写字母

  • [:upper:] :任意大写字母

  • [:alpha:] :任意大小写字母

  • [:alnum:] :任意数字或字母

  • [:space:] :空格

  • [:punct:] :标点符号



练习:


一、显示/var目录下全部以l开头,以一个小写字母结尾,且中 间出现至少一位数字的文件或目录 

    ls -d /var/l*[[:digit:]]*[[:lower:]]

二、显示/etc目录下以任意一位数字开头,且以非数字结尾的 文件或目录 

    ls -d /etc/[[:digit]]*[^[:digit:]]

三、显示/etc/目录下以非字母开头,后面跟了一个字母及其 它任意长度任意字符的文件或目录 

    ls -d /etc/[^[:alpha:]][[:alpha:]]*[[:alnum:]]*

四、显示/etc目录下全部以m开头以非数字结尾的文件或目录 

    ls -d /etc/m*[^[:digit:]]

五、显示/etc目录下,全部以.d结尾的文件或目录 

    ls -d /etc/*.d

六、显示/etc目录下,全部.conf结尾,且以m,n,r,p开头的文 件或目录

    ls -d /etc/[mnrp]*.conf

相关文章
相关标签/搜索