硬链接
ln 文件名 硬链接名字
例如:ln test.log test.log.hard
1)硬链接不能建立在目录上
2)硬链接对绝对路径没有要求
3)硬链接不能跨文件系统
硬链接文件和源文件的 inode 是相同的,文件系统的 inode 要求唯一,跨文件系统可能会使 inode 不同,所以硬链接不能跨文件系统
硬链接的本质
1)硬链接的本质是不同的文件名所在的 inode 是相同的,相同的 inode节点指向了相同的数据块,所以他们的文件是一样的,文件内容会同步
2)ls -li 文件名 ----》 可以查看文件的 i 结点
3)stat 文件名 ----》可以查看 i 结点信息
4)file.hard 是 file的硬链接,这个两个文件指向了同一个 inode,同一个 inode指向了相同的数据块
当新创建了一个文件,硬链接计数为1
给文件创建了一个硬链接后,硬链接计数 +1
删除一个硬链接后,硬链接计数 -1
作用:
1)可以起到同步文件的作用
2)可以起到保护文件的作用
wc
显示文件行数,字节数,单词数
1)wc -l file 显示文件的总行数
2)wc -c file 显示文件的总字节数
3)wc -w file 显示文件的总单词数
4)wc file 显示文件的总行数,单词书,总字节数
whoami
显示当前登录的用户名
用 echo $USER 也可以查看
用户权限,用户,用户组
修改文件权限 chmod
linux是通过权限对文件进行控制的,通过使用 chmod 命令可以修改文件相关的权限
文字设定法
操作对象【who】
u -- 用户(user)
g -- 同组用户(group)
o -- 其他用户(other)
a -- 所有用户(all)
操作符【+=】
+ --- 添加权限
- --- 取消权限
= --- 赋予给定权限并取消其他权限
权限【mode】
r -- 读
w -- 写
x -- 执行
例如给file.txt的所有者和所属组添加读写权限
chmod ug + wr file.txt
数字设定法
操作符
+ --- 添加权限
- --- 取消权限
= --- 赋予给定权限并取消其他权限
数字表示的含义
0 --- 没有权限(-)
1 --- 执行权限(x)
2 --- 写权限(w)
4 --- 读权限(r)
例如:给file.txt文件设置 rw-rw-r--
chmod 664 file.txt
注意:使用数字设定法,一定要使用3位的8进制数:如:066
修改文件所有者和所属组
1)修改文件所有者 chown
用法:chown 文件所有者 文件名
2)修改文件所有者和所属组 chown
用法:chown 文件所有者:文件所属组 文件名
注:普通用户需要使用管理员权限执行该命令
修改文件所属组
chgrp 命令
使用方法:chgrp 用户组 文件或目录名
注:普通用户需要使用管理员权限执行该命令
find 命令
按文件名查询:使用参数 -name
1)命令:find 路径 -name "文件名"
例如:find/home -name "*.c"
2)按文件类型查询:使用参数 -type
命令:find 路径 -type 类型
类型:
f ---》 普通文件类型
d ---》 目录
l ---》 符号链接
b ---》 块设备文件
c ---》 字符设备文件
s ---》 socket文件
p ---》 管道文件
3)按文件大小查询:使用参数 -size
命令:find 路径 -size 范围
范围:
大于:+表示 --- +100k
小于:-表示 --- -100k
等于:不需要添加符号 --- 100k
大小:
M 必须大写(100M)
k 必须小写(20k)
c 表示字节数
例如:
等于100k的文件:find + 路径 + -size 100k
大于100k的文件:find + 路径 + -size +100k
小于100k的文件:find + 路径 + -size -100k
大于50k 小于 100k的文件:find + 路径 + -size +50k -size -100k
4)按文件日期
创建日期:find + 路径 + -ctime -n/+n
-n:n天以内
+n:n天以外
修改日期:find + 路径 + -mtime -n/+n
访问日期:find + 路径 + -atime -n/+n
5)按深度
-maxdepth n(层数)
搜索n层以下的目录,搜索的层数不超过n层
-mindepth n(层数)
搜索n层以上的目录,搜索的层数不能小于n层
6)高级查找
查找指定目录下所有目录,并列出目录中文件详细信息
find + 路径 + -type d -exec shell命令 {} \;
例:find + 路径 + -type d -exec ls -l {} \;
find + 路径 + -type d -ok shell命令 {} \;(存在提示)
例:find + 路径 + -type d -ok ls -l {} \;
find + 路径 + -type d | xargs shell命令
例:find + 路径 + -type d | xargs ls -l
grep命令
1)grep -r(有目录)"查找的内容" 搜索的路径
-r 参数,若是目录,则可以递归搜索
-n 参数可以显示该查找内容所在的行号
-i 参数可以忽略大小写进行查找
-v 参数不显示含有某字符串
2)搜索当前目录下包含 hello world 字符串的文件
grep -r -n "hello world" ./ ----- 显示行号
grep -r -i -n "HELLO world" ./ ------- 忽略大小写查找
find 和 grep命令结合使用
先使用find命令查找文件,然后使用grep命令查找哪些文件包含某个字符串
例:find . -name "*.c" | xargs grep -n "main"
Linux中常用的压缩工具
1)gzip 和 bzip2
不能压缩目录,只能一个一个文件进行压缩,压缩之后原文件消失
gzip* 压缩当前目录下所有的文件,但是目录不能压缩
gunzip* 解压当前目录下所有的 .gz 文件
bzip2* 压缩当前目录下所有的文件,但是目录不能压缩
bunzip2* 解压当前目录下所有的 .bz2 文件
2)tar 工具
z:用gzip来压缩/解压缩文件
j:用bzip2来压缩/解压缩文件
c:create,创建新的压缩文件,与x互斥使用
x:从压缩文件中释放文件,与c互斥使用
v:详细报告tar处理的文件信息
f:指定压缩文件的名字
t:查看压缩包中哪些文件
3)压缩
(打包)tar cvf 压缩包名字.tar 原材料【要打包压缩的文件或目录】
(对包压缩)tar zcvf 压缩包名字.tar.gz 原材料【要打包压缩的文件或目录】
tar jcvf 压缩包名字.tar.bz2 原材料【要打包压缩的文件或目录】
4)解压缩
(解包)tar xvf 已有的压缩包(test.tar.gz)
(解压缩包)tar zxvf 已有的压缩包(test.tar.gz)
tar jxvf 已有的压缩包(test.tar.bz2)
解压到指定目录:添加参数 -C
tar zxvf test.tar.gz -C 解压目录(./mytest)
5)查看压缩包中有哪些文件
tar -tvf test.tar
6)zip 工具
压缩:zip -r 压缩包名 要压缩的文件(含文件或目录)
压缩目录需要参数 -r
解压缩:unzip 压缩包名
解压缩到指定目录:添加参数 -d + 解压目录(不存在会创建)