您的位置:首页 > 运维架构 > Linux

Linux文件管理

2018-12-23 00:18 218 查看

文件管理

www.pathname.com/fhs
硬盘设备扫描
echo '- - -' > /sys/class/scsi_host/host2/scan
文件系统
文件和目录被组织成一个单根倒置树结构
文件系统从根目录下开始,用"/"表示
根文件系统(rootfs):root filesystem
文件名称区分大小写
以.开头的文件为隐藏文件
路径分隔的 /
文件有两类数据
元数据:metadata
数据:data
文件系统分层结构:LSB Linux Standard Base
FHS:(filesystem Hierarchy Standard)
http://www.pathname.com/fhs
文件名规则
文件名最长255个字节
包括路径在内文件名称最长4095个字节
蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件
除了斜杠和NUL,所有字符都有效。但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们
标准Linux文件系统(如ext4),文件名称大小写敏感。
例如:MAIL, Mail, mail, mAiL
文件系统结构
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录
/bin:功所有用户使用的基本命令,不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令,不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
Linux下的文件类型
-:普通文件
d:目录文件
b:块设备
c:字符设备
l:符号链接文件
p:管道文件pipe
s:套接字文件socket
CentOS 7目录变化
/bin 和 /usr/bin
/sbin 和 /usr/sbin
/lib 和 /usr/lib
lib64 和 /usr/lib64
显示当前工作目录
每个shell和系统进程都有一个当前的工作目录
CWD:Current Work Directory
显示当前shell CWD的绝对路径
pwd:Printing Working Directory
-P 显示真实物理路径
-L 显示链接路径(默认)
绝对和相对路径
绝对路径
以正斜杠开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
相对路径
不以斜线开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
基名:basename
目录名:dirname

(1)文件管理

回顾

alias 别名
配置文件位置:家目录下的.bashrc
PS1变量配置文件位置
/etc/profile.d/
查询帮助
内部命令:help COMMAND
外部命令:man COMMAND
官方文档
目录结构
fhs(文件目录结构标准)
/bin 普通用户
/sbin 管理员
/boot 引导文件
/etc 关键配置文件(类似注册表)
/lib 库文件
/lib64 库文件
/tmp 临时文件
/usr 安装系统程序文件
/mnt 挂载点
/media 挂载点
/dev 硬件设备
/dev/sr0 光盘设备
/dev/sda 硬盘设备
/dev/zero 字符设备
字符设备为顺序访问
/var 可变数据
.log 日志文件
/home 普通用户家目录
/misc 自动挂载目录
cd /misc/cd
/srv 服务器数据
/proc 虚拟文件夹(映射内存数据)
/sys 硬件信息
echo '- - -' > /sys/class/scsi_host/host2/scan 扫描新加硬盘
/opt 自动挂载相关
/selinux selinux安全策略
文件类型
查看及修改文件类型显示颜色
/etc/DIR_COLORS
更改目录
cd 更改目录
使用绝对或相对路径
cd /home/zhuang
cd home/zhuang
切换至父目录
cd ..
切换至当前用户主目录
cd
切换至以前的工作目录
cd -
选项:-P
相关的环境变量:
PWD:当前目录路径
OLDPWD:上一次目录路径 echo $OLDPWD
列出目录内容
列出当前目录的内容或指定目录
用法:ls [options] [file_or_dirs]
示例:
ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归通过
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls -S 按从大到小排序
ls -t 按mtime排序
ls -u 配合-t选项,显示并按atime从新到旧排序
ls -U 按目录存放顺序显示
ls -X 按文件后缀排序
文件通配符

  • 匹配零个或多个字符
    ? 匹配任何单个字符
    ~ 当前用户家目录
    ~zhuang 用户zhuang家目录
    ~+ 当前工作目录
    ~- 前一个工作目录
    [0-9] 匹配数字范围
    [a-z] 字母(小写)
    [A-Z] 字母(大写)
    [zhuang] 匹配列表中的任何的一个字符
    [^zhuang] 匹配列表中的所有字符以外的字符
    预定义的字符类:man 7 glob
    [:digit:] 任意数字,相当于0-9
    [:lower:] 任意小写字母
    [:upper:] 任意大写字母
    [:alpha:] 任意大小写字母
    [:alnum:] 任意数字或字母
    [:blank:] 水平空白字符
    [:space:] 水平或垂直空白字符
    [:punct:] 标点符号
    [:print:] 可打印字符
    [:cntrl:] 控制(非打印)字符
    [:graph:] 图形字符
    [:xdigit:] 十六进制字符

2.文件管理
创建空文件和刷新时间
touch命令
touch [OPTION]...FILE...
-a 仅改变atime和ctime
-m 仅改变mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
复制文件和目录cp
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE...DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
SRC是文件
如果目标不存在:新建DEST,并将SRC中内容填充至DEST中
如果目标存在:
如果DEST是文件:讲SRC中的内容覆盖至DEST中
基于安全,建议cp命令使用-i选项
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中
cp常用选项
-i:覆盖前提示 -n:不覆盖,注意两者顺序
-r,-R:递归复制目录及内部的所有内容
-a:归档,相当于-dR --perserv=all
-d:--no-dereference --preserv=links 不复制原文件,只复制链接名
--perserv[=ATTR_LIST]
mode:权限
ownership:属主属组
timestamp
links
xattr
context
all
-p:等同--perserv=mode,ownership,timestamp
-v:--verbose
-f:--force
-u:--update 只复制源比目标封信文件或目标不存在的文件
--backup=numbered 目标存在,覆盖前先备份加数字后缀

3.文件管理

移动和重命名文件
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i:交互式
-f:强制
删除
rm [OPTION]... FILE...
常用选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
示例:
rm -rf /
目录操作
tree 显示目录树
-d:只显示目录
-L level:指定显示的层级数目
-P pattern:只显示由指定pattern匹配到的路径
mkdir 创建目录
-p:存在于不报错,且可自动创建所需的各目录
-v:显示详细信息
-m MODE:创建目录时直接指定权限
rmdir 删除空目录
-p:递归删除父空目录
-v:显示详细信息
rm -r 递归删除目录树
索引节点
inode(index node)表中包含文件系统所有文件列表
一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:
文件类型,权限,UID,GID
链接数(指向这个文件名路径名称个数)
该文件的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据
目录
文件引用一个是inode号
人是通过文件名来引用一个文件
一个目录是目录下的文件名和文件inode号之间的映射
删除敏感数据命令
shred -zvu -n # FILENAME
-z:使用随机数据进行填充
-v:显示过程
-u:完成填充后删除
-n #:指定完成#次填充或删除renwu

4文件管理

rm和inode
rm 命令:
链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
mv和inode
如果mv命令的目标和源在相同的文件系统,作为mv命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响inode表(出时间戳)或磁盘上的数据位置:没有数据被移动!
如果目标和源在一个不同的文件系统,mv相当于cp和rm
硬链接
创建硬链接会增加额外的记录项以引用文件
对应于同一文件系统上一个物理文件
每个目录引用相同的inode号
创建时链接数递增
删除文件时:
rm命令递减计数的链接
文件要存在,至少有一个链接数
当链接数为零时,该文件被删除
不能跨驱动器或分区
语法:
ln FILENAME [LINKNAME]
符号链接(软链接)
一个符号链接指向另一个文件
ls -l 显示链接的名称和引用的文件
一个符号链接的内容是它引用文件的名称
可以对目录进行
可以跨分区
指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数
语法:
ln -s FILENAME [LINKNAME]
确定文件内容
文件可以包含多种类型的数据
检查文件的类型,然后确定适当的打开命令或应用程序使用
file [OPTIONS] <FILENAME>...
常用选项:
-b 列出文件表示结果时,不显示文件名称
-f filelist 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的":"分隔符
-L 查看对应软链接对应文件的文件类型
--help 显示命令在线帮助

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文件管理 Linux