linux文件系统与简单应用
简介
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。
主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。我们能够从一个目录切换到另一个目录,而且可以设置目录和文件的权限,设置文件的共享程度,这一切操作和Microsoft windows系统很相似。
一、文件系统与目录结构
二、文件系统
文件和目录被组织成一个单根倒置树结构。
文件系统从根目录下开始,用“/”表示。
根文件系统(rootfs):root filesystem
文件名称区分大小写。
以.开头的文件为隐藏文件。
路径分隔的 /
文件有两类数据:。
元数据:metadata
数据:data
文件系统分层结构:LSB Linux Standard Base
三、文件名规则
文件名最长255个字节,路径在内文件名称最长4095个字节
蓝色>目录 绿色>可执行文件
红色>压缩文件 浅蓝色>链接文件
灰色>其他文件
除了斜杠和数字,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们。
标准Linux文件系统(如ext4),文件名称大小写敏感。
如:mail,Mail,MAIL,MaIL
四、文件系统的结构
/ 根
/boot 启动相关的内核和grub文件
/bin (binary二进制)可执行的二进制文件
/sbin 只有root才能执行的二进制文件
/lib (library)库文件
/lib64 64库文件
/home/username 家目录
/root 管理员家目录
/media 默认空目录,可挂载cd usb
/mnt 默认空目录,可挂载cd usb
/etc 配置文件存放目录
/dev 设置文件存放目录
b: block device,随机访问
c: character device,线性访问
/opt 第三方应用程序安装位置
/srv 系统上运行的服务用到的数据 预留 如:网站页面内容服务数据
/tmp 临时数据文件存储位置
/usr 存放软件的执行程序、库文件、文档
bin: 保证系统拥有完整功能而提供的应用程序
sbin:管理员使用的二进制程序
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share
/var 存放软件可变的数据 如:页面内容
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据;
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据;
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/proc 用于输出内核与进程信息相关的虚拟文件系统
/proc/cpuinfo cpu信息
/proc/meminfo 内存信息
/cd /proc/ 加载的信息
/sys 用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux 放置安全策略信息
五、文件类型
-:普通文件 d: 目录文件
b: 块设备 c: 字符设备
l: 符号链接文件 p: 管道文件pipe
s: 套接字文件socket
六、文件系统的常用命令
命令格式:command option arguments
command 命令
option 选项 启动命令某项功能,从而改变功能 -*
arguments 参数 改变命令操作对象
短选项- 长选项--
长选项如:ifconfig -- help
短选项如:cat -A /app/yanshi/yanshi.txt
更改目录(cd)、列出目录内容(ls)、创建空文件(touch)、创建目录(mkdir)、复制文件和目录(cp)、移动和重命名文件(mv)、删除(rm)、显示目录树(tree)
(1)cd:更改目录
用法:cd [dir]
切换至父目录: cd ..
切换至当前用户主目录: cd
切换至以前的工作目录: cd -
相关的环境变量:
PWD:当前目录路径
(2)ls:列出目录内容
用法:ls [options] [files_or_dirs]
-a 显示所有文件 包括隐藏文件
-l 长列出 显示属性信息
-dl 显示指定目录自己的属性信息,不现实子文件信息
-R 递归 显示本目录 和子目录内的 所有信息
-1 显示一列
-S 大到小排列
-r 小到大 -rSl 按文件大小从小到大 -rt 按时间从旧到新
-X 按文件结尾排序
-h以人类可读性显示,则显示具体的单位
-i 显示iNode号
-Z 显示context
ls文件显示说明
dr-xr-xr-x. 26 root root 4096 May 24 14:38 /
-/d/l/s/b/c/p 表示文件的类型
r-x r-x r-x 表示owner,group,other的权限
. 表示该文件有selinux的context标签,可用-Z 详细查看(安全)
26 表示硬链接数
root 表示该文件的owner(所属人)
root 表示该文件的group (所属组)
4096 表示该文件的大小,默认bytes 可-k 显示单位
May 24 14:38 默认显示为mtime,可使用u或--time=atime来显示atime;可使用--time=ctime来显示ctime
/ 文件名或目录名
(3)touch 创建空文件
用法:touch [OPTION]... FILE...
若文件不存在,则创建一个空文件
若文件存在,则更新三个时间戳(atime=访问时间,mtime=数据修改时间,ctime=元数据修改时间)
-a 更新atime和ctime
-m 更新mtime和ctime
-c 若文件存在,则更新三个时间戳,若不在,不会创建新文件,无作为。
(4)mkdir:创建目录(mkdir)
用法:mkdir [OPTION]... DIRECTORY...
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
(5)cp:复制文件和目录(cp)
用法:cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
-i:覆盖前提示 –n:不覆盖,注意两者顺序
-r, -R: 递归复制目录及内部的所有内容
-a: 归档,相当于-dR --preserv=all
-p: 等同--preserv=mode,ownership,timestamp
-u:--update 只复制源比目标更新文件或目标不存在的文件
(6)mv:移动和重命名文件
用法:mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
-i: 交互式
-f: 强制
(7)rm:删除
用法:rm [OPTION]... FILE...
-i 交互式
-f 强制删除
-r 递归
(8)tree:显示目录树
用法:tree [OPTION]... [directory ...]
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
先到这里,后续再接着写。