1.linux ls -lhi 命令详解
1.1 ls -ilh每一行含义
ls -ilh /etc/
执行结果如下(截取部分)
33926932 drwxr-xr-x. 3 root root 101 Mar 28 16:35 abrt
17192799 -rw-r--r--. 1 root root 16 Mar 28 16:39 adjtime
第一列:代表inote号码,就像人的身份证号码一样,在同一磁盘分区
下,是唯一的,系统识别的就是inote号码第二列:文件类型
- 代表普通文件
d 代表目录
l 代表软链接,符号链接
c 字符设备 提供用户的输入输出
本地连接会被系统分配到 /dev/tty
远程网络连接会被系统分配到 /dev/pts/xxx
b 和块设备 U盘,磁盘分区,都被系统认为是块设备
- 第三列:执行权限,按照三个一组分
r 只读
w 写入
x 执行
(权限当中‘-’表示没有此位的权限) - 第四列 硬链接数量
- 第五列 所有者
- 第六列 所属组
- 第七列 文件大小
- 第八列 文件创建日期
- 第九列 文件名(
文件名不是文件属性
)
- 注:权限后边的点,与selinux相关
2.linux文件属性
2.1 inode与block
在linux系统设备或者存储设备的分区被格式化为文件系统后,主要分为两部分,第一个部分是inode 第二部分是block
inode (index node) 索引节点,linux 系统中文件的身份证号,同一个磁盘分区内inode号是唯一的
block block 用来存储实际数据,inode用来存储文件的属性信息(ex: 文件类型,权限,所属用户,所属组,修改时间...)
inode特点:inode 在文件系统是唯一的,一个文件至少要占用一个inode以一个block,多个文件可以占用一个block ???? inode (硬链接)
block特点 一个block只能被一个文件使用,如果文件很小,但block很大,会造成剩余空间浪费,无法继续呗其他文件使用。注:block 余量不足会报警磁盘空间不足,同样inode余量不足时也会报警磁盘空间剩余不足
2.2 软链接与硬链接
硬链接
指通过索引节点(Inode) 来进行连接,在linux文件系统中 ,保存在磁盘空间中的文件都会分配一个Inode,在linux 中,多个文件,用有一个索引节点成文硬链接
软链接
软链接也叫符号链接(symbolick link)是一个包含指向另一个文件的inode的信息的文本文件,然后通过inode访问数据block 原文件删除则软链接失效,查看文件时软链接会闪烁(当原文件被删除)就像是windows中的快捷方式。
软链接创建命令
ln 【原文件】【目标文件(创建位置)】 创建硬链接
ln -s 【原文件】【目标文件(创建位置)】 创建软链接
注意:软链接可以跨分区创建,但是硬链接无法跨分区创建,因为inote不同磁盘不是唯一
- 操作实例
为'/oldboy/test.txt' 创建硬链接
命令:'ln /oldboy/test.txt /tmp/test.hard'
为'/oldboy/test.txt' 创建软链接
命令:'ln -s /oldboy/test.txt /tmp/test.soft'
软链接的快捷指定方便于以后业务的升级与回推,升级更新出现问题,很快就可以将版本返回到旧的版本,非常方便,效率高效
硬链接小结
1. 硬链接,具有与原文件相同inode的不同文件名
2. 删除硬链接或者原文件之一,文件实体(block)不会被删除
3. 删除硬链接,数据会被在磁盘检查或者新数据写入时候删除回收,误删除,可通过另一个硬链接创建回来
4. 可以给文件创建硬链接防止误删除,最好还是备份
5. rm -f 删除硬链接
6. 文件目录不可以创建硬链接
7.创建硬链接' ln 【原文件】【目标文件(创建位置)】 '
软链接小结
1. 软链接类似快捷方式,存放原文件路径,执行原文件
2. 删除原文件,软链接依然存在吗,但是失效
3. 创建软链接' ln -s 【原文件】【目标文件(创建位置)】'
4. 软链接和原文件是不同类型文件,inode不同
5. 可以创建目录和文件的软链接,可以跨区
-
软链接失效实例
实践:描述linux中软链接与硬链接的区别
1.删除文件软链接对硬链接无影响
2.删除文件硬链接对文件及软链接文件无影响
3.删除原文件对硬链接读取数据,文件软链接失效
4.同时删除原文件和硬链接,软链接则失效
5.很多硬件设备中的快照,类似于硬链接原理
6.从定义上,链接有两种,一种为软链接,类似于快捷方式,存放指向原文就得inode信息,于原文件inode不同,硬链接,与原文件有相同的inode,可以指向数据block
7.从创建方式上 硬链接创建 ln 【原文件】【目标文件】硬链接 ln -s 【原文件】【目标文件】
8.从创建对象上,文件目录不能创建硬链接,但是目录可以创建软链接,因为软链接可以跨文件系统,硬链接则不能,同一个文件,不同分区inode节点号相同,但是不是同一个文件
3. 文件属性命令
3.1 which
which [文件] 显示命令的全路径 包括帮助信息路径
-
操作实例
3.2 whereis
whereis [命令] 查看命令及相关内容
-
操作实例
3.3 tar
tar 打包压缩命令
常用选项:
'z' 通过gzip这个软件压缩文件
'c' create 创建, 打包文件,与z一起使用,否则还是占用空间
'v' verbose显示压缩过程
'f' file 指定压缩文件位置
't' 查看压缩文件
'x' 解压缩
- 操作实例
将/etc/的文件打包压缩到/tmp/etcback
tar zcf /tmp/etcback etc/
-
操作实例
查看压缩包
tar -tf /tmp/etcback
-
操作实例
解压缩
tar xf /tmp/etcback 不指定路径默认解压到当前目录
-
操作实例
解压到指定位置选项 ' -C' 注意大写
- 操作实例
3.4 date
查看修改系统时间
常用选项
%Y 年
%m month 月
%d 日
%F= %Y-%m-%d 显示年月日 2019-4-16
%H hour 小时
%M minute 分钟
%S sec 秒
%T=%H:%M:%S 显示日期 21:24:42
- 操作实例
同步网络时间 'ntpdate ntp1.aliyun.com' (需要安装ntpdate包, yum install -y ntpdate)
- 操作实例
3.5 find
find 查找目录下文件
格式 find 【搜索的目录】【选项】【参数】
find /etc/ -type f -name "*.txt"
查找/etc/文件名以.txt结尾的普通文件
常见选项:
-name 名字
-type 类型 f 普通文件 d 目录 l 软链接
-size 大小 size +1M 大于1M size -100k 小于 100k
-iname 搜索文件名不区分大小写
-maxdepth 最大查找多少层,'注意:一定要放在最前面(否则会报错)' maxdepth1 是该目录下一层进行搜索
-
操作实例
4 特殊符号与通配符
4.1 特殊符号
"$" 普通用户提示符,放在变量前面,'代表变量内容 输出变量要在变量前加入 $'
"#" 注释,给人看的。机器忽略,root提示符
"| " 管道符 把一个命令的标准输出作为标准输入传给另一个命令!
"\ " 逃脱符,即将有特殊含义的字符还原成字符本意,例如 echo \$ 仅代表$符号
" ; " 表示命令的结束,也是命令间的分隔
4.2 表示位置的特殊符号
. cd . 回到当前目录
.. cd .. 回到上一级目录
~ cd ~ 回到当前用家目录
- cd - 回到上一次操作的目录下
'注:直接输入 cd 命令回到当前用户家目录'
4.3 重定向符号
'>' 或 '1>' 标准输出重定向 覆盖原文件内容
'>>' 或 '1>>' 标准追加输入重定向 不覆盖文件内容,追加
'2>' 标准追加错误重定向,把错误信息追加到文件结尾
'2>>' 标准错误输出重定向, 先清空文件,然后把错误信息写入文件中
4.4 引号系列
单引号 ' 单引号 引号里面是啥,就一直是啥不会改变,输出和处理,都是所见即所得
双引号 "" 双引号 与单引号相似,但是双引号里面的特殊符号会被解析,执行,然后输出
不加引号 与双引号一样,支持花括号,比如生成序列,创建有规律的文件或者目录
反引号 `` 反引号 引命令的 等价$() 优先处理符号内的命令,符号内必须是命令,否则会报错
4.5 通配符
"*" 匹配任何字符串或文本,包括空字符串 常用于操作文件,可于很多命令搭配使用
"{}" 1. 生成序列,用于创建多个有规律的文件或者目录
2.引用变量作为变量与普通字分隔
"?" 匹配一个字符,* 可以匹配任意字符,没有个数限制,但是? 输入几个就匹配几个字符或者文本