您的位置:首页 > 其它

第四章-文件管理

2016-08-01 20:13 218 查看

文件系统

文件系统
文件和目录被组织成一个单根倒置树结构文件系统从根目录下开始,用“/” 表示根文件系统(rootfs) :rootfilesystem名称是大小写敏感 以. 开头的文件为隐藏文件
路径分隔的 /
文件有两类数据:
元数据:metadata数据:data 文件系统分层结构:LSB Linux Standard Base
FHS:(FilesystemHierarchy Standard)

文件名规则

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

蓝色--> 目录 绿色--> 可执行文件 红色--> 压缩文件 浅蓝色--> 链接文件 灰色--> 其他文件
除了斜杠NUL,所有字符都有效。但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们。标准Linux 文件系统(如ext4),文件名称大小写敏感。例如:MAIL,Mail,mail,mAiL注视:Windows的Fat32文件系统是大小写不敏感的,所以跟系统没用关系,跟文件系统有关系。

文件系统结构

/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 (universalshared,read-only data)
bin 保证系统拥有完整功能而提供的应用程序sbinlib 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 enhancedLinux)selinux 相关的安全策略等信息的存储位置

/sys 和 /proc是虚拟目录,文件大小为0,但是内容很多
du –sh /sys
du –sh /proc

/sys/class/scsi_host/host2/scan可以发现磁盘
虚拟机主文件.vmdk结尾文件,增加一个硬盘,这时系统不能识别新加的硬盘,
执行echo “- - -” > /sys/calss/scsi_host/host2/scan让系统读取新的磁盘信息

Linux 上的应用程序的组成部分

二进制程序 /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

Linux 下的文件类型

- 普通文件
d 目录文件
b 块设备 (真实存在,随机访问的)
c 字符设备 (虚拟的,只能顺序访问)
l 符号链接文件
p 管道文件pipe
s 套接字文件socket

显示当前工作目录(pwd)

每个shell 和系统进程都有一个当前的工作目录CWD:current work directory显示当前shell CWD的绝对路径,pwd:printing working directory
pwd:打印当前工作路径
cd到链接目录里,当前路径是链接目录还是被链接目录?
[root@localhost ~]# ll -d /bin
lrwxrwxrwx. 1 root root 7 Jul 21 11:23 /bin-> usr/bin

pwd显示链接目录
[root@localhost ~]# cd /bin
[root@localhost bin]# pwd
/bin

pwd加-P参数显示被链接的物理目录
[root@localhost bin]# pwd -P
/usr/bin

echo $PWD:执行pwd命令,实际上是读取$PWD这个变量

绝对和相对路径名

绝对路径以正斜杠开始完整的文件的位置路径可用于任何想指定一个文件名的时候相对路径名不以斜线开始指定相对当前的工作目录位置可以作为一个简短的形式指定一个文件名
脚本编程尽量使用相对路径,因为环境可能不一样,如果用绝对路径,脚本换个环境可能执行出错。

更改目录(cd)

cd改变目录
绝对路径:cd/home/joshua/work相对路径:cdproject/docs

列出目录内容(ls)

列出当前目录的内容或指定目录用法:ls [options] [files_or_dirs] Example:ls -a 包含隐藏文件ls -l 显示额外的信息ls -R 目录递归通过ls -d 目录和符号链接信息ls -1 文件分行显示ls -S 按从大到小排序ls -u 配合-t 选项,显示并按atime 从新到旧排序ls -U 不排序按目录存放顺序显示

查看文件状态(stat)

stat
文件:metadata,data
三个时间戳:
Access 访问时间,atime,读取文件内容,触发修改访问时间
Modify 修改时间,mtime,改变文件内容(数据),触发改变修改时间
Change 改变时间,ctime,文件元数据发生变化,触发修改改变时间

文件通配符

* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~username 用户家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配某一个数字范围
[a-z] 匹配从a开始,按照a A b B…z的顺序的单个字符
[A-Z] 匹配从A开始,按照A b B…z Z的顺序的单个字符

[wxc] 匹配wxs列表中的任何的一个字符
[^wxc] 匹配列表中的所有字符以外的字符
预定义的字符类:#man 7 glob
[:digit:] 任意数字,相当于0-9[:lower:] 任意小写字母[:upper:] 任意大写字母[:alpha:] 任意大小写字母[:alnum:] 任意数字或字母[:space:] 空格[:punct:] 标点符号

touch [OPTION]... FILE...
-a 变,仅改变 atime-m 变,仅改变 mtime-t STAMP:[[CC]YY]MMDDhhmm[.ss]-c 如果文件不存在,则不予创建
>> 文件名:也可以创建文件,不会修改已存在的文件的任何数据
touch 文件名:创建空文件,存在不会修改内容,修改访问时间

复制文件和目录(cp)

cp命令:复制文件和目录
cp [OPTION]... [-T] SOURCE DESTcp [OPTION]... SOURCE... DIRECTORYcp [OPTION]... -t DIRECTORY SOURCE...cp SRC DEST
SRC 是文件:
如果目标不存在:
新建DEST,并将SRC 中内容填充至DEST中如果目标存在:
如果DEST 是文件:将SRC 中的内容覆盖至DEST中基于安全,建议为cp 命令使用-i 选项如果DEST 是目录:在DEST 下新建与原文件同名的文
件,并将SRC 中内容填充至新文件中

cp SRC... DEST
SRC... :多个文件
DEST 必须存在,且为目录,其它情形均会出错;

cp SRC DEST
SRC 是目录:此时使用选项:-r
如果DEST 不存在:则创建指定目录,复制SRC 目录中所有文件至DEST 中;
如果DEST 存在:
如果DEST 是文件:报错如果DEST是目录:会把SRC目录拷贝到DEST目录下

cp常用参数:
-i 交互式
-r, -R 递归复制目录及内部的所有内容;
-a 归档,相当于-dR--preserv=all (在复制的时候,尽量保留源数据的属性)
-d --no-dereference--preserv=links 不复制原文件,只复制链接名
--preserv[=ATTR_LIST]
mode 权限ownership 属主属组timestamp 时间戳links 链接数xattrcontext 内容all -p 等同--preserv=mode,ownership,timestamp
-v --verbose 显示操作的详细过程
-f --force

命令别名

显示当前shell 进程所有可用的命令别名
#alias定义别名NAME ,其相当于执行命令VALUE
#aliasNAME='VALUE'在命令行中定义的别名,仅对当前shell 进程有效
如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc

编辑配置给出的新配置不会立即生效;
bash 进程重新读取配置文件:
source/path/to/config_file./path/to/config_file撤消别名:unalias
unalias [-a]name [name ...]如果别名同原命令同名,如果要执行原命令,可使用
\COMMAND’ COMMAND’/PATH/COMMAND:外部命令

移动和重命名文件(mv)

移动和重命名文件
mv [OPTION]...[-T] SOURCE DESTmv [OPTION]...SOURCE... DIRECTORYmv [OPTION]...-t DIRECTORY SOURCE...常用选项:
-i 交互式-f 强制
同目录等价于改名字
root中的mv是mv –i
普通用户家目录中mv 普通用户文件到 root文件,会提示

删除(rm)

rm [OPTION]... FILE...
常用选项:
-i: 交互式
-f: 强制删除
-r: 递归
--no-preserve-root

安全释放空间的方法:
“> xxx” 创建空文件,如果文件存在,则把文件内容清除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文件 管理