3.Linux文件系统
Linux--一切皆是文件, 文件系统结构--树形结构, linux无论怎么分区所有的文件系统是一棵树,分区可以保证存储的隔离性。swap不属于分区,它属于一种类型,而不是一个挂载点。
*查看分区:
df -h
3.1 Linux通用目录
1./home/用户名;/root:
存放用户的个人数据,普通用户不能访问另外的用户的家目录的文件。
~代表进入用户的家目录
2. /bin,/usr/bin,/usr/local/bin:
用户可执行文件目录
bin=binary(二进制)二进制文件代表可执行文件
bin目录下的这些可执行文件都是让你使用操作系统的
3./sbin,/usr/sbin,/usr/local/sbin:
系统可执行文件(管理员)创建用户,添加分区。
4./etc:
存放配置信息,密码,环境变量
5./tmp:
临时文件的文件夹,可以在该文件夹下做任何操作,但是不要删除文件夹本身
如果你发现了图形界面起不开了,有可能是/tmp本身被删除了,之后系统不会自动生成一个tmp所以,图形界面启动会产生大量的临时文件,所以不能删。
6./boot:
系统启动文件目录,单独分区,不能写满,否则无法开机。
7. /var,/srv:
日志,邮件等文件
8./proc,/sys:
存放内存中的数据,系统的状态数据
9./lib,/usr/lib,/usr/local/lib
驱动数据
3.2文件与目录命名与创建
3.2.1文件与目录的命名规则
*文件名最长不得超过255个字符。
*在linux中没有扩展名,最大的作用就是识别,扩展名其实就是属于文件名中。*所有的字符都可以做文件名除了/字符。
*所有的文件名是区分大小写的
*目录也是文件,和文件一样
3.2.2文件与目录的创建
*创建文件:
touch 文件名
touch 还有一个功能就是更新文件时间戳,文件的时间介绍见3.3.2
*创建文件夹:
mkdir 文件名
3.3文件与目录管理
3.3.1删除文件与目录
*删除文件:
rm 文件名
*删除目录:
rm -r目录名
可以添加-f选项,代表强制删除,包括当前文件正在执行。
3.3.2查看文件
*获取文件类型:
file 文件名
*查看文件的详细信息:
stat 文件名//查看文件的三个时间
最后一次访问的时间
最后一次修改的时间
最后一次状态发生改变的时间
当系统时间本身是错误的,但是我们之后修改对了,但是文件的时间戳却没有改变,所以我们必须要touch一下文件。
*查看当前路径下文件信息:
ls (绝对路径)
*以列表的方式显示当前路径文件的详细的信息
ls –l(ll)(绝对路径)
*查看当前路径的文件包括隐藏文件
ls –a (绝对路径)
*当前目录和上级目录在文件中的表示
.代表当前目录 ..代表上一级目录
*详细的显示文件的大小(human):
ls -h(绝对路径)
*仅显示当前目录的信息
ls -d(绝对路径)
*递归显示信息
ls -R(绝对路径)
3.3.3复制文件
*复制文件或目录:
cp [源路径/源文件名] [绝对路径/目标文件名]
-r 复制目录
-p 连带文件属性一起复制 // 包括创建的时间,保留权限
-d //链接文件则复制链接属性
-a all //上述所有的选项功能都包括
当多个文件复制到同一个地方的时候,目标只可以是文件夹
3.3.4 剪切文件
*剪切文件命令:
mv 源文件或者目录 目标目录
剪切命令可以移动文件,可以改名。
剪切命令和复制命令用法是一样的。
不管是移动还是改名都不会修改文件的时间和权限
不需要加参数
3.4硬链接与软链接
3.4.1硬链接
*硬链接必须要删除所有的链接文件加上源文件才是真正意义上的删除。
*硬连接必须在同一个分区中才可以使用硬链接。
*源文件和目的文件的地址都是可以使用绝对路径和相对路径。
*硬连接只可以链接文件。
*硬链接命令:
ln 源文件 目的文件
3.4.2软链接
*软链接类似于WIN下的快捷方式
*软链接的格式:
lrwxrwxrwx 1 root root 23 Aug 17 15:42 vtrgb -> /etc/alternatives/vtrgb
l就是代表着这个文件是软链接。
*软链接既可以链接文件又可以链接目录。
*源文件和目的文件的地址都是可以使用绝对路径和相对路径。
*软链接命令:
ln –s 源文件/目录 目的文件/目录
3.5压缩文件管理
3.5.1 Linux常用的压缩格式
*zip和gz是Linux自带的压缩格式,但是可以在WINDOWS下使用。
*bz2不能够在WIN上使用。
*tar.gz 和tar.bz2//结合了打包的技术的压缩。
*rar文件格式是windows自带的压缩格式,在Linux上不能使用。
3.5.2 zip文件压缩与解压缩
*zip压缩文件:
zip 压缩文件名 源文件
-r 压缩目录
*zip解压缩文件:
unzip 压缩文件 -d 文件目录//将文件解压缩到当前路径文件目录中,不可以加绝对路径。
3.5.3 gzip文件压缩与解压缩
gzip压缩和解压可以加绝对路径
*gzip文件压缩:
gzip 源文件//压缩以后文件会消失
gzip只可以压缩文件不可以压缩目录
*gzip递归压缩目录下的文件:
gzip -r 目录//将目录下的所有文件都压缩成以它们本身命名的文件,有几个文件就生成几个压缩文件,并且删除源文件。
*gzip文件解压:
gunzip 文件名(gzip -d 文件名)
但是解压后自动删除原来的压缩文件。
3.5.4 bz2文件压缩与解压
bz2全名bzip2 压缩时可以加绝对路径,默认不保留绝对路径
*bz2文件压缩:
bzip2 源文件//压缩为.bz2格式,不保留源文件
bzip2 –k 源文件//压缩之后保留源文件
bzip2命令不能够压缩目录
*bz2文件解压:
bzip2 –d 压缩文件//解压缩,不保留原来压缩文件
bzip2 -d -k 压缩文件名//解压缩并保留原来压缩文件
bunzip2 –k//解压缩并保留原来的压缩文件
3.5.5 tar打包技术
因为gz和bz2是不可以压缩目录,只可以压缩文件的,所以我们用tar将多个文件打包成一个文件。
*tar打包:
tar 打包文件名 源文件(绝对路径)
参数:
-c:打包,必须要加上的
-v:显示打包的过程,可以不加
-f:指定打包后的文件名,必须加
tar –cvf 文件名
*tar解打包:
tar –xvf 打包文件名(绝对路径)
-x:解打包
-v:显示打包的过程,可以不加
-f:指定打包后的文件名,必须加
解打包将之前打包的目录原封不动的解压,并且不改变目录名
3.5.6 tar.gz和tar.bz2使用
*tar.gz格式
tar.gz格式是先打包为tar再压缩成gz格式。
*tar.gz压缩:
tar –zcvf 压缩包名tar.gz 源文件
*tar.gz解压:
tar –zxvf 压缩包名tar.gz
*tar.bz2格式
tar.bz2格式是先打包为tar再压缩成bz2格式。
*tar.bz2压缩:
tar –jcvf 压缩包名tar.gz 源文件
*tar.bz2解压:
tar –jxvf 压缩包名.tar.gz
3.6 Linux文件搜索
3.6.1基于后台数据库搜索
*locate命令格式
locate 文件名
在后台数据库中按照文件名进行搜索,搜索速度快。但是不是文件匹配,会搜索出与名字相关的所有内容。
*locate命令所搜索的后台数据库:
/var/lib/mlocate/mlocate.db
*更新数据库:
updatedb
*搜索配置文件:
使用locate,需要查看 /etc/updated.conf的配置文件
PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /var/lib/schroot"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"
PRUNE_BIND_MOUNTS :是否开启搜索限制
# PRUNENAMES:搜索时不搜索文件的类型
PRUNEPATHS=搜索时,不搜索文件的路径
PRUNEFS=搜索时,不搜索文件的系统
3.6.2 find文件搜索命令
直接从路径下查找,时间比较长,耗费资源,精确匹配。
*find 文件搜索命令:
find [路径] [选项] 文件名
find是在系统当中搜索符合条件的文件名(完全匹配)
*find选项:
-name//根据文件名搜索
–iname//不区分大小写
–user//按照所有者搜索
–nouser//查找没有所有者的文件
*find高级使用:
*查找 10天前修改的文件
find /var/log –mtime +10
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件
*查找文件大小是25KB的文件
find . –size 25k
-25k 小于25KB的文件
25k 等于25KB的文件
+25K 大于25KB的文件
k是小写,M是大写
*查找i节点是xxxxx的文件:
find . –inum xxxxx
*查找/etc/目录下,大于20KB并且小于50KB的文件:
find /etc –size +20k –a –size -50k
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可