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
文件系统结构详解: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 显示隐藏的文件
ls -l 显示额外的信息
ls -R 目录递归经过 ,文件夹内的内容递归显示
ls -ld 目录和符号连接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –u 配合-t选项,显示并按atime重新到旧排序
ls –U 不排序按目录存放顺序显示
这些命令本身能够ls --help 查看,必定要本身学会运用帮助命令
文件的状态查看 stat FILENAME
stat 文件:metadate 元数据 ,date 数据
时间戳,经过stat查看,好比:
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
命令以下:
先查看一下详细信息:
而后执行 touch -a issue
而后执行 touch -m issue
修改指定时间好比 touch -t200808080808.24 issue
好比一些编辑vim,查看cat,复制cp等都会改变时间戳
文件通配符:
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~username 用户家目录
~+ 当前工做目录
~- 前一个工做目录
[0-9] 匹配一个数字范围
[a-z]:大写和小写字母
[A-Z]:大写字母
[abc] 匹配列表中的任何的一个字符
[^abc] 匹配列表中的全部字符之外的字符
预约义的字符类:
能够用 #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