文章目录
- 文件存储介绍
- 文件颜色含义
- 软链接和硬链接
- 文件目录操作
- 压缩解压 tar
- 目录切换 cd
- 创建目录 mkdir
- 删除目录 rmdir rm
- 复制文件或目录 cp
- 移动文件或目录 mv
- 查看指定目录下的内容 ls
- 文本查看 cat more tail
- 文本编辑 vim
- 查找
- 查找文件 find
- 查找文本 grep
- 查找文件 whereis
Linux文件扩展名不代表任何含义, 仅仅是为了运维人员便于识别
文件存储介绍
在Linux中,一个文件数据可分为两大类:数据和元数据
- 数据:泛指普通文件中的实际数据
- 元数据:用来描述一个文件的特征的系统数据
在Linux中,一个文件的存储也会被分为两部分:inode和block
- inode:用来存储文件的元数据
- block:用来存储文件的真实数据,一个block空间是4k
ext4 文件系统会把分区主要分为两大部分(暂时不提超级块):
- 小部分用于保存文件的 inode (i 节点)信息;
- 剩余的大部分用于保存 block 信息。
inode 的默认大小为 128 Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的状态改变时间(ctime)、文件的最近一次读取时间(atime)、文件的最近一次修改时间(mtime)、文件的数据真正保存的 block 编号。每个文件需要占用一个 inode。inode 中是不记录文件名的,那是因为文件名记录在文件所在目录的 block 中。
block 的大小可以是 1KB、2KB、4KB,默认为 4KB。block 用于实际的数据存储,如果一个 block 放不下数据,则可以占用多个 block。例如,有一个 10KB 的文件需要存储,则会占用 3 个 block,虽然最后一个 block 不能占满,但也不能再放入其他文件的数据。这 3 个 block 有可能是连续的,也有可能是分散的。
- 每个文件都独自占用一个 inode,文件内容由 inode 的记录来指向;
- 如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的 inode,才能成功找到文件内容所在的 block 块;
文件颜色含义
Linux文件颜色与文件类型对应
软链接和硬链接
Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。
硬链接:多个文件名指向同一索引节点。文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软链接:也叫符号连接。类似于Windows的快捷方式。文件实际上是一个文本文件,其中包含有另一文件的位置信息。
文件目录操作
压缩解压 tar
tar:打包、压缩、解包、解压缩
- 后缀
.tar
表示完成了打包,并未压缩;后缀.tar.gz
打包同时也压缩了
- -c:创建打包文件
- -x:解包
- -v:verbose,显示命令执行过程
- -z:gzip,需要解压或压缩时用
- -f:指定包名
打包
tar -cvf hello.tar ./* # 将当前目录下所有文件打包到hello.tar
tar -zcvf hello.tar.gz ./* # 将当前目录下所有文件打包并压缩到hello.tar.gz
解包
tar -xvf hello.tar # 将hello.tar解包到当前目录
tar -zxvf hello.tar.gz # 将hello.tar解压到当前目录
tar -zxvf hello.tar.gz -C /usr/local # 将hello.tar解压到/usr/local目录
目录切换 cd
~
表示用户的home目录..
上级目录.
当前目录
切换到用户的home目录,root用户的home目录是root目录
cd ~
创建目录 mkdir
mkdir [-p] 目录
--p
不存在则创建目录。此选项可实现多层目录同时创建
删除目录 rmdir rm
rmdir
- 删除空目录,
rmdir [-p] 目录
- -p`子目录删除后,若父目录为空,则一并删除
rm
- 删除文件或目录
rm [-rf] name
-r
将目录中所有删除,包括子目录中的-f
无需确认直接删除
复制文件或目录 cp
cp [-r] source dest
-r
复制目录时需要,会复制子目录
将dir目录和dir目录下所有文件复制到newdir目录下
cp -r dir/ ./newdir/
将dir目录下所有文件复制到newdir目录下
cp -r dir/* ./newdir/
移动文件或目录 mv
mv source dest
- 同目录下,若是dest不存在,就是对source重命名了
查看指定目录下的内容 ls
语法:ls [-al] [dir]
-a
显示所有文件和目录(.开头的隐藏文件也列出)-l
显示详细信息,文件类型(目录or文件)、权限、拥有者、大小等ls -l
的简写ll
文本查看 cat more tail
cat
cat [-n] 文件
-n表示显示行数
more
- 以分页形式侠士文件内容
more 文件
- 回车键:向下滚动一行
- 空格键:向下滚动一屏
- b 返回上一屏
- q或ctrl C:退出more
tail
- 查看文件末尾的内容
tail [-f] 文件
-f
表示仅显示最后一行;不加, 默认是显示最后10行;-20
则显示最后20行
文本编辑 vim
vim fileName
:存在则打开,不存在则创建- 三种模式:命令模式、插入模式、底行模式
命令模式
- vim打开后的默认模式,该模式下,可查看文件,不可编辑
- 方向键移动光标,gg快速到底,G快速到底
插入模式
- 命令模式下任一按键
a
、i
、o
可进入插入模式;ESC
退回命令模式 - 插入模式下,下面会显示 insert 字样
底行模式
- 底行模式可以查找内容、显示行号、保存、退出等
- 在命令行模式下,任一按键
:
、/
可进入底行模式 - 通过
/
进入底行模式,可对文件内容进行查找 - 通过
:
进入底行模式,可输入wq
(保存并退出),q!
(不保存退出),set nu
(显示行号)
查找
查找文件 find
find:指定路径下查找文件
语法:find 指定目录 -option 待查找文件名
find . -name "*.java" # 查找当前目录及子目录下的所有java文件
查找文本 grep
grep:从指定文件中查找文本内容
语法:grep 内容 文件
查找文件 whereis
- 全局查找
whereis 文件名