一:链接命令
ln [-s] [原文件] [目标文件]
功能描述:生成链接文件;选项:-s创建软链接。
硬链接特征:
1.拥有相同的i节点(ls -i文件命令可以查看i节点)和存储的block块,可以看做是同一个文件;
2.可通过i节点识别;
3.不能跨分区;
4.不能针对目录使用。
使用硬链接方式创建的文件同原文件相比:修改任何一方文件的内容都会影响另外一方;删除其中一个文件都不影响另外一个文件的数据。
软链接特征:
1.类似Windows快捷方式;
2.软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据;
3. lrwxrwxrwx l表示软链接,软链接文件权限都为 rwxrwxrwx,但访问该文件时,权限还要看原文件的权限;
4.修改任意文件,另一个都会改变;
5.删除原文件,软链接不能使用。
注:做软链接时,原文件的路径一定要写绝对路径!
二:搜索命令:
1)文件搜索命令
(1)locate命令
locate 文件名:在后台数据库中按文件名搜索,搜索速度更快。
locate命令所搜索的后台数据库:/var/lib/mlocate(默认自动一天一更新);我们可以使用updatedb命令手动更新数据库。
locate命令是根据/etc/updatedb.conf这个配置文件进行搜索的:
- PRUNE_BIND_MOUNTS = "yes" 表示开启搜索限制;
- PRUNEFS = 表示搜索时,不搜索的文件系统;
- PRUNENAMES = 表示搜索时,不搜索的文件类型;
- PRUNEPATHS = 表示搜索时,不搜索的路径。
(2)find命令
find [搜索范围] [搜索条件]:搜索文件。
如:find / -name install.log。
避免大范围搜索,会非常耗费系统资源;
find是在系统当中搜索符合条件的文件名,需要文件名完全匹配。使用通配符后可以进行模糊查询。
Linux中的通配符
通配符 | 说明 |
* | 匹配任意内容 |
? | 匹配任意一个字符 |
[] | 匹配任意一个中括号内的字符 |
如:
find /root-name "ab*":在/root目录下查找文件名以ab开头的文件或目录。(匹配“ab”)
find /root-name "ab?":在/root目录下查找以ab开头的3个字符命令的文件或目录。(不匹配“ab”)
find /root-name "ab[cd]":在/root目录下查找文件名为abc或abd的文件或目录。
如:find /root -iname install.log:不区分大小写根据文件名进行搜索。
find /root-user root:按照所有者搜索。这里表示按root用户搜索其所拥有的文件。
find /root-nouser:查找没有所有者的文件。
注:没有所有者的文件一般都是垃圾文件,我们可以手动把它们删除。除了下面两种情况,第一种,由系统内核产生的文件,如/proc和/sys目录下的文件,文件可能没有所有 者;第二种,外来接入的U盘、光盘等,此外里面的文件如果由Windows产生则不存在所有者。(Windows系统不是没有文件所有者这个概念,而是它忽略了这个概念。)
find/var/log/ -mtime +10:查找10天前修改的文件。
选项:
-atime:文件访问时间
-ctime:改变文件属性
mtime:修改文件内容
参数,如:
-10:10天内修改的文件
10:10天当天修改的文件
+10:10天前修改的文件
find .-size 25k:查找文件大小为25KB的文件。这里查找的是当前目录下。
参数,如:
-25k:小于25KB的文件
25:等于25KB的文件
+25k:大于25KB的文件
注:可以搜索以MB为单位的文件,如find . -size 2M。
find . inum234567:查找i节点为234567的文件。(通过ls -i [文件名]可以查看文件的i节点)
find /etc-size +20k -a -size -50k:查找/etc/目录下,大于20KB并且小于50KB的文件。
选项:
-a(and):逻辑与,两个条件都要满足
-o(or):逻辑或,两个条件满足一个即可
find /etc-size +20k -a -size -50k -exec ls -lh {} \;:查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息。其中-exec命令 {}\;表示将前一个命令的结果作为参数执行-exec后面的这条命令。此外-ok命令 {}\;也具有相同的功能,不同的是,对每次命令结果作为后面命令的参数执行前会询问用户是否执行,输入y则执行。
三:命令搜索命令
(1)搜索命令的命令whereis
whereis 命令名:搜索命令所在路径及帮助文档所在位置。
选项:
-b:只查找可执行文件所在路径
-m:只查找命令的帮助文件所在路径
(2)搜索命令的命令which
which 命令名:搜索命令所在路径及别名。
注:whereis和which命令搜索的都是系统命令。
(3)PATH环境变量
- PATH环境变量:定义的是使用命令时系统搜索命令的路径,同样也是whereis和which搜索命令时查找的路径。
[root@localhost~]# echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/wml/.local/bin:/home/wml/bi
四:字符串命令
(1)搜索字符串命令grep
grep [选项]字符串文件名:在文件当中匹配符合条件的字符串。
选项:
-i 忽略大小写
-v 排除指定字符串
五:find命令与grep命令的区别
- find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
- grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。