学习笔记四
文件系统
文件和目录被组织成单根倒置树结构
文件系统从根目录下开始,用“/”表示
根文件系统(rootfs):root filesystem
文件名称区分大小写
以.开头的文件为隐藏文件
路径分隔用/符号
文件有两类数据:
元数据:metadata
数据:data
文件系统分层结构:LSB Linux Standard Base
FHS:(Filesystem Hierarchy Standard)
文件名规则
文件名最长255字节
包括路径在内文件名称最长4095个字节
蓝色–>目录 绿色–>可执行文件 红色–>压缩文件 浅蓝色–>链接文件 灰色–>其他文件
除了斜杠和NUL,所有字符都有效,但使用特殊字符的目录名和文件名不推荐使用,有些字符需要用引号来引用他们
标准Linux文件系统(如ext4),文件名称大小写敏感
Linux下的文件类型
“-” 普通文件
“d” 目录文件
“b” 块文件
“c” 字符设备
“l” 符号链接文件
“p” 管道文件pipe
“s” 套接字文件socket
CentOS目录变化
/bin和/usr/bin
/sbin和/usr/sbin
/lib和/usr/lib
/lib64和/usr/lib64
显示当前工作目录pwd
每个shell和系统进程都有一个当前的工作目录
CWD:current work directory
显示当前shell CWD的绝对路径
pwd :printing working directory
pwd -P :显示真实物理路径
pwd -l :显示链接路径(默认)
更改目录cd
cd 改变目录
使用绝对或相对路径
cd /home/wang/
cd home/wang
切换至父目录:cd…
切换至当前用户主目录:cd
切换至以前的工作目录:cd -
选项:-p
相关的环境变量:
PWD:当前目录路径
OLDPWD:上一次目录路径
列出目录内容ls
列出当前目录的内容或指定目录
ls 列出当前目录的内容或指定目录
ls -a 包含隐藏文件
ls -l 显示额外信息
ll =ls -l
ls -R 目录递归
ls -ld 目录和符号链接信息
ls-1 文件分行显示
实验环境禁用
禁用selinux
vim /etc/selinux/config
SELINUX=disabled
禁用防火墙
systemctl disable firewalld.service centos7版本以后用这个
chkconfig iptables off centos6以前版本用这个
文件通配符
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~li 用户li家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z] a,A,b,B,c...z
[A-Z] A,b,B,c,C...z,Z
[wang] 匹配列表中的任何一个字符
[^wang] 匹配列表中的所有字符以外的字符
CP 复制
cp -i 覆盖前提示
cp -n 不覆盖,注意两者顺序
cp -r,-R 递归复制目录及内部的所有内容
cp -a 归档,相当于-dR --preserv=all 基本充当备份效果
cp -d 不复制原文件,只复制链接名
cp -p 等同于--preserve=mode,ownership,timestamp
cp -v 查看拷贝过程
cp -av 备份并查看拷贝过程
cp -f 强制执行,定义为先删除文件在重新创建
cp -u --update 只复制比目标更新文件或目标不存在的文件
cp -b 目标存在,覆盖前先备份,形式为filename~
cp --backup=numbered 目标存在,覆盖前先备份加数字后缀
--preserve= 保留属性
mode :权限
ownership :属主属组
timestamp :时间戳
links
xattr
context
all
mv 移动和重命名
mv -i 交互式
mv -f 强制
mv -b 目标存在,覆盖前先备份
mv /etc/f1 /dev 把etc目录下的f1文件移动到dev目录下
mv f1 f2 把文件f1改名为f2
rm 删除
rm 选项 文件名
rm -i 交互式
rm -f 强制删除
rm -r 递归
rm -rf 删除整个文件夹
rm -rf /* 删库跑路
--no-preserve-root 删除/
> /boot/file1 把一个文件重新覆盖为0字节大小的文件,用来日常维护时清空过大的文件以免占空太多磁盘空间
rm -f /boot/file1 覆盖完后执行命令删除
目录操作
tree
tree 显示目录树
tree -d :只显示目录
tree -L level :指定显示的层级数目
tree -P pattern :只显示由指定pattern匹配到的路径
mkdir
mkdir 创建目录
mkdir -p 存在于不报错,且可自动创建所需的各目录
mkdir -v 显示详细信息
mkdir -m MODE 创建目录时直接指定权限
rmdir
rmdir 删除空目录
rmdir -p 递归删除父空目录
rmdir -v 显示详细信息
rename
rename 重命名
rename .log .log.bak * 把当年目录.log文件替换为.log.bak
索引节点
inode(index node)表中包含文件系统所有文件列表
一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:
文件类型,权限,UID,GID
链接数(指向这个文件名路径名称个数)
该文件的大小和不同的时间戳
指向磁盘上文件的数据库指针
有关文件的其他数据
cp和inode:
在cp的命令:
分配一个空闲的inode号,在inode表中生成新条目,在目录中创建一个目录项,将数据名称与inode编号关联,拷贝数据生成新数据
rm命令:
链接数递减,从而释放的inode号可以被重用
把数据库放在空闲列表中
删除目录项
数据实际上不会马上被删除,但是当另一个文件使用数据块时将被覆盖
软连接
软连接的原始文件,要写相对路径,一定是相对于软连接的路径,而不是相对于当前工作目录
ln -s ../f1 /data/f1.link
在/a/data路径下建立f1.link的软链接,相对于软链接的上级目录/a下有f1文件,所以需要写作../f1
确定文件内容
文件可以包含多种类型的数据
检查文件的类型,然后确定适当的打开命令或应用程序使用
file -b 列出文件辨识结果时,不显示文件名称
file -f filelist 列出文件filelist中文件名的文件类型
file -F 使用指定分隔符号替换输出文件名后默认的“:”分隔符
file -L 查看对应软链接对应文件的文件类型