一、Linux常见的文件类型
1、常见七大类
- d 目录文件directory
- b 块设备文件block 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
- c 字符设备character 这些文件通常隐藏在 /dev/ 目录下,当进行设备读取或外设交互时才会被使用; 一个字符一个字符读取 /dev/zero (/dev/null)
- l 符号链接文件link
- p 管道文件pipe 主要用于进程间通信单向传输, 一个只读、另一个只写 ,其主要作用是解决多个程序同时存取一个文件所造成的错误。
- s 套接字文件socket 套接字文件一般隐藏在 /var/run/ 目录下,用于进程间的网络通信。(可以双向)
- “-” 普通文件 普通文件,包括纯文本文件、二进制文件、各种压缩文件等
2、颜色表示文件类型
- 黑色 普通文件
- 绿色 可执行文件
- 黄色 块设备文件
- 红色 压缩包
- 蓝色 文件夹
- 天蓝色 链接文件(快捷方式)
二、文件路径
Linux的目录结构为树状结构,而最顶级的目录为跟目录/。其他目录通过挂载添加到树中,也可以通过解除挂载移除。
这个跟目录/符号特别重要,因为这个涉及绝对路径和相对路径概念,这里必须要知道:
- 绝对路径:路径由跟目录/写起,例如:/usr/share/doc这个目录。
- 相对路径:就是相当于当前路径写起,这里主要涉及..这个硬链接符号,表示上一级目录,例如由/usr/share/doc要到/usr/share/man下面,可以用: cd ../man即可。
三、目录的常用命令。
1)IS
ls即list files,列出目录和文件名,这个比较容易,常用的选项参数有下面几个:
- -a:全部的文件,包括隐藏文件一起都列出来。
- -l:长数据串列出,包含文件属性、权限等等数据。
- -R:递归显示,可以显示出文件夹下文件。
2)CD
cd即Change Directory,用来切换工作目录,其中目录在文章最开始时说了,可以使用绝对路径或者相对路径。
cd的命令:
3)PWD
pwd即Print Working Directory,用来显示目前所在目录的命令,这个命令有个选项参数需要注意,就是-P显示出真实的路径,而非使用链接(link)的路径。
4)mkdir
mkdir即make directory,用来创建新目录,这个命令我们会经常使用,其中有2个选项参数比较常用:
-m:配置文件的权限,这样可以不需要在创建完再修改其默认权限。
-p:直接将所需的目录递归创建,这什么意思呢?我们正常可以使用mkdir a来创建a目录,但是不可以使用mkdir a/a来创建a/a目录,这时需要使用-p参数来递归创建。
5)touch
- touch 文件名称(可为空)
- touch 文件若已存在,不会破坏已有文件,会更新时间
- touch {1..5}.文件格式 创建多个文件{}内可是数字或字母,重点是“..”
每个文件有三个时间戳:
- access time 访问时间,atime,读取文件内容
- modify time 修改时间,mtime,改变文件内容(数据)
- change time 改变时间,ctime,元数据发生改变(文件大小、权限等属性)
6)ln 创建链接
硬链接
硬链接(hard link, 也称链接 )就是一个文件的一个或多个文件名, 把文件名和计算机文件系统使用的节点号链接起来。可以将它理解为一个 “指向原始文件 inode 的指针”, 系统不为它分配独立的 inode 和 文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。
硬链接引用的是文件在文件系统中的物理索引(也称为inode)。当移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。
注意:
- 硬链接只能对已存在的文件进行创建 。
- 不支持给目录创建硬链接;
- 不支持跨分区创建硬链接。
- 硬链接文件不占用存储空间。
- 修改源文件或者目标文件,对应另外一个文件也会发生相应修改。
- 删除源文件或者目标文件,对另外一个文件没有影响。
软连接
软链接又叫符号链接,这个文件包含了另一个文件的路径名。 可以是任意文件或目录,可以链接不同文件系统的文件。
注意事项:
- 可对不存在的文件或目录创建软链接,可交叉文件系统。
- 删除源文件无法访问,再新建同名文件后依然可以访问。
硬链接与软连接的区别
创建链接
ln命令格式:
- ln 源文件 目标文件:创建硬链接文件
- ln -s 源文件 目标文件:创建软连接文件
7)复制CP
cp命令格式:
- cp [选项]… 源文件 目标 相当改名复制
- cp [选项]... 源文件... 目录 多个源文件只能复制到文件夹
8)MV 移动或改名
mv命令格式:
mv [选项] … 源文件或目录… 目标文件或目录
例:
如果源文件为多个,则目标必须是目录:
9、删除rm
rm(remove)命令格式:
rm [选项] 要删除的文件或目录
rm -f * 最经典的方法,删除当前目录下的所有类型的文件件
rm -f find . -type f 删除全部普通文件
rm -f 目标目录/* 删除指定目标目录内的文件
rm -rf 递归删除 删除目录,工作环境别用,危险
例:
当文件正在被其他人使用时,也是可以删除的,但是空间不会释放。其他人退出使用该文件后空间会被释放。
10、alias别名
临时修改(关机或退出终端会自动消失)
alias 命令别名 = ’命令‘
unalias 别名命令 删除别名
\加别名命令 (显示原始命令)
永久修改(需要修改配置文件)
在/etc/.bashrc 会影响全部
/root/.bashrc只影响当前用户
PS:命令执行顺序:绝对路径下的命令>别名命令>内部命令>hash命令>外部命令。
实际项目中需先查看其他人有没有定义别名命令。。
11、du统计所占磁盘大小
命令格式:
du [选项] [文件或目录… ]
例:
附加:通配符统计
四、查找文件
1)find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找。
命令的特点:
- 精确查找
- 实时查找
- 支持查找条件很多
- 各表达式之间使用逻辑运算符, “-a”表示而且(and),“-o”表示 或者(or)
find命令格式: find ... [路径] [条件] [处理]
按名字查找
[root@test1 opt]# find /etc/ -name passwd
按属性查找
[root@test1 opt]# find /mnt -user root
按文件类型查找
[root@localhost opt]# find /boot -type d
按目录层级查找
[root@localhost boot]# find /tmp/test -maxdepth 2 -mindepth 2
按文件权限查找
[root@localhost opt]# find -perm 644
按文件大小查找
[root@test1 opt]# find -size 1k
此处建议单位用的小一些好
按时间查找
#以“天”为单位: find -atime [+/-]#
find -mtime按文件内容改变时间查找
find -ctime按元数据改变时间查找
#以“分钟”为单位: -amin -mmin -cmin
比较“或”与“且”的优先级 o or ,a and
find /etc/ -type d -o -type l |wc -l
查找 etc文件夹下 目录和连接文件并统计数量
反向查找
find -not -[type name 等]
2)which
which 用来查看命令的位置。 在PATH变量指定的路径中,搜索某个系统命令的位置 。
命令格式:
which 命令/程序名
3)whereis
whereis 用来查找命令的具体位置。可以查看到二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
五、总结 本章内容居多没什么好总结的,背下来就完事了。其中ls,cd,pwd,mkdir,touch,连接创建,cp,mv,rm,find等命令重点掌握。