搜索会占用大量资源,不建议使用搜索。
服务器规划要做好,各种数据软件存储位置都规划好,方便查找,而不用搜索
1.7.1.find
find [搜索范围] [匹配条件]
文件搜索
1.7.1.1.文件名精确搜索
-name 根据文件名搜索,精确搜索,只有文件名相等才能搜索出来
[root@localhost cn]# find /etc -name init
/etc/sysconfig/init
/etc/selinux/targeted/active/modules/100/init
[root@localhost cn]#
1.7.1.2.星号通配符
以上精确搜索,很多名字不易记全,因此需要模糊搜索
通配符:星号* 匹配任意多个任意字符
查找所有以init开头的文件
[root@localhost cn]# find /etc -name init*
/etc/sysconfig/network-scripts/init.ipv6-global
/etc/sysconfig/init
/etc/init.d
/etc/rc.d/init.d
/etc/inittab
/etc/selinux/targeted/active/modules/100/init
/etc/selinux/targeted/contexts/initrc_context
[root@localhost cn]#
1.7.1.3.问号通配符
通配符?,匹配单个任意字符
以init开头,并且后面有3个字符
[root@localhost cn]# find /etc -name init???
/etc/inittab
[root@localhost cn]#
1.7.1.4.不区分大小写
-iname
[root@localhost cn]# find /etc -iname init???
/etc/inittab
[root@localhost cn]#
1.7.1.5.文件大小查找
-size 根据文件大小查找
size的单位是块
100MB是多少?
1个数据块=512字节=0.5KB
100MB=102400KB=204800块
1KB=2块
+n大于 -n小于 =n等于
查找大于100MB的文件
[root@localhost cn]# find / -size +204800
/proc/kcore
find: ‘/proc/1503/task/1503/fd/6’: No such file or directory
find: ‘/proc/1503/task/1503/fdinfo/6’: No such file or directory
find: ‘/proc/1503/fd/6’: No such file or directory
find: ‘/proc/1503/fdinfo/6’: No such file or directory
/usr/lib/locale/locale-archive
1.7.1.6.根据所有者查找
-user 根据所有者查找
[root@localhost cn]# find ./ -user root
./
./yum.log
./test
./test/log.log
./test1
./test2.log
./test3
[root@localhost cn]#
1.7.1.7.时间属性查找
-amin 访问时间access
-cmin 文件属性change
-mmin 文件内容modify
find /etc –cmin 5
5分钟内被修改过属性的文件和目录
1.7.1.8.复合条件and or
-a 表示and 两个条件都满足
大于50MB,并且小于100MB的文件
find /etc –size +102400 –a –size 204800
-o 表示 or 两个条件满足任意一个即可
1.7.1.9.文件类型
-type 根据文件类型查找
f 文件 d 目录 l 软链接文件
[root@localhost cn]# find ./ -type d
./
./test
./test1
./test3
[root@localhost cn]# find ./ -type f
./yum.log
./test/log.log
./test2.log
[root@localhost cn]#
1.7.1.10.对搜索结果执行命令再处理
-exec 命令 {} \;
{}表示前面查找的结果
\转义
;表示结束
好像查找结果不正确?
[root@localhost cn]# find /tmp/cn -iname 'test*' -exec ls -l {} \;
total 0
-rw-r--r--. 1 root root 0 Apr 24 20:44 log.log
total 0
-rw-r--r--. 1 root root 0 Apr 24 21:10 /tmp/cn/test2.log
total 0
[root@localhost cn]#
-ok 命令 {} \;
这个会确认提示
好像查找结果不正确?
[root@localhost cn]# find /tmp/cn -iname 'test*' -ok ls -l {} \;
< ls ... /tmp/cn/test > ? y
total 0
-rw-r--r--. 1 root root 0 Apr 24 20:44 log.log
< ls ... /tmp/cn/test1 > ? y
total 0
< ls ... /tmp/cn/test2.log > ? y
-rw-r--r--. 1 root root 0 Apr 24 21:10 /tmp/cn/test2.log
< ls ... /tmp/cn/test3 > ? y
total 0
[root@localhost cn]#
多文件查找时,参数需要加单引号:
[root@localhost cn]# find /tmp/cn -iname test*
find: paths must precede expression: test1
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
[root@localhost cn]# find /tmp/cn -iname 'test*'
/tmp/cn/test
/tmp/cn/test1
/tmp/cn/test2.log
/tmp/cn/test3
[root@localhost cn]#
1.7.1.11.i节点查找
-inum 根据i节点查找
[root@localhost cn]# ls -i
5598 test 16777673 test1 201 test2.log 33575346 test3 5597 yum.log
[root@localhost cn]# ls -il
total 4
5598 drwxrwxrwx. 2 root root 21 Apr 24 20:44 test
16777673 drwxr-xr-x. 2 root root 6 Apr 24 21:10 test1
201 -rw-r--r--. 1 root root 0 Apr 24 21:10 test2.log
33575346 drwxr-xr--. 2 root root 6 Apr 24 21:17 test3
5597 -rw-rwx--x. 1 root root 27 Apr 23 21:58 yum.log
[root@localhost cn]# find . -inum 201
./test2.log
[root@localhost cn]# find . -inum 201 -exec ls -l {} \;
-rw-r--r--. 1 root root 0 Apr 24 21:10 ./test2.log
[root@localhost cn]#
1.8.其他文件搜索命令
1.8.1.locate
安装mlocate
locate命令在安装mlocate中,所以需要安装mlocate
[root@localhost ~]# locate init
-bash: locate: command not found
[root@localhost ~]# yum list mlocate
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Available Packages
mlocate.x86_64 0.26-6.el7 base
[root@localhost ~]# yun install mlocate
-bash: yun: command not found
[root@localhost ~]# yum install mlocate
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
省略……………………………………………………….
Complete!
[root@localhost ~]# locate init
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
安装完成后,命令还是搜索不到内容,是因为资料库需要更新:
[root@localhost ~]# updatedb
[root@localhost ~]# locate init
/boot/initramfs-0-rescue-ee8e847af1004327a6a44a0a5a957248.img
/boot/initramfs-3.10.0-693.el7.x86_64.img
/boot/initrd-plymouth.img
/dev/initctl
locate搜索速度很快,他是在文件资料库中查找文件,所以速度很快。
语法:locate 文件名
locate自己维护的资料库:/var/lib/mlocate/mlocate.db
系统中所有的文件都会定期更新到这个文件资料库中。
存在的问题,新建的文件还未收录到资料库中的时间,是搜索不出来的。
更新文件资料库的命令:
updatedb
-i 不区分大小
locate –i init
[root@localhost opt]# locate china
/opt/china.log
[root@localhost opt]# locate -i china
/opt/China.log
/opt/china.log
[root@localhost opt]#
1.8.2.which
命令所在路径:/usr/bin/which
搜索命令所在目录及别名信息
[root@localhost opt]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost opt]# which locate
/usr/bin/locate
[root@localhost opt]#
查找命令别名
rm是rm –i的别名
当我们删除文件的时候一般会有提示,是因为-i起作用。
-i prompt before every removal
[root@localhost opt]# which rm
alias rm='rm -i'
/usr/bin/rm
1.8.3.whereis
查找命令所在的目录及帮助文档路径,类似which
红色部分为文档路径
[root@localhost opt]# whereis rm
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz
1.8.4.grep
在文件内容中搜索字串匹配的行并输出
-i 不区分大小写
-v 排除指定字符串
语法:grep –iv [指定字串] [文件]
[root@localhost opt]# grep to /etc/inittab
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
不区分大小写
[root@localhost opt]# grep -i to /etc/inittab
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
# To view current default target, run:
# To set a default target, run:
[root@localhost opt]#
查找文件中的配置信息,去掉注释,以#开头的行都是注释,都去掉
[root@localhost etc]# grep -v ^# yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
[root@localhost etc]#
相关推荐
【linux学习笔记--17】POSIX IPC——消息队列.doc 【linux学习笔记--18】POSIX IPC——信号量.doc 【linux学习笔记--19】...【linux学习笔记-5】编写自己的ls命令.doc 【linux学习笔记-6】文件IO操作--读写、重定向等.
【linux学习笔记-5】编写自己的ls命令 【linux学习笔记-6】文件IO操作--读写、重定向等 【linux学习笔记-7】用户标识UID与有效用户标识EUID 【linux学习笔记-8】Linux进程相关系统调用(1) 【linux学习笔记-9】...
本篇“Linux学习笔记”详细介绍了Linux的基本目录结构及其各自的功能,这对于初学者理解Linux系统的核心概念非常重要。 #### 二、Linux目录结构解析 1. **/(根目录)** - 根目录是Linux文件系统的起点,所有的...
这份“Linux学习笔记-很不错适合linux入门者”文档恰好为初学者提供了一个很好的起点。 首先,笔记可能会从Linux的起源和发展讲起,包括Linux之父Linus Torvalds创建Linux内核的故事,以及GNU项目与自由软件运动...
【Linux学习笔记】这篇超全总结涵盖了Linux操作系统的基础知识,特别是关于命令行的使用和快捷键,以及一些桌面环境下的快捷操作。以下是笔记中的主要内容: 1. **LINUX常用操作命令**: - `clear`:清空终端屏幕...
### Linux学习笔记—01 Linux操作基础 #### 1. Linux 基础命令与用法 在Linux操作系统中,掌握一系列的基础命令是非常重要的。这些命令可以帮助用户进行各种日常操作,比如文件管理、目录切换、文件查看等。下面将...
《兄弟连Linux教程1-16章学习笔记》是一份全面涵盖Linux基础知识的学习资料,特别适合初学者和希望快速提升Linux技能的人群。这个压缩包包含了一系列文本文件和辅助图片,旨在帮助用户深入理解Linux系统的基本操作和...
### Linux学习笔记-初学者 #### 一、Linux分区命名规则及理解 Linux系统中的分区命名规则对于初学者来说非常重要,因为这直接影响到如何管理和识别不同的存储设备。下面详细介绍几个关键概念: - **MBR(Master ...
Linux学习笔记二 - Liunx命令(基础篇) 本篇学习笔记主要集中于 Linux 命令的基础知识,涵盖了从基本命令到高级命令的使用方法。通过本篇学习笔记,读者可以快速找到自己想要查询的指令功能与相关用语说明,并且...
"armlinux学习笔记--触摸屏驱动程序分析"这本书深入探讨了这个主题,旨在帮助读者理解和开发针对Linux系统的触摸屏驱动。以下是关于这一主题的详细知识解析: 1. **嵌入式Linux**:嵌入式Linux是指将Linux操作系统...
### Linux学习笔记精要 #### 一、Linux操作系统概述与常用命令 - **Shell与GUI**: Linux系统提供了两种主要的用户交互方式,图形用户界面(GUI)如Gnome和命令行界面(CLI)如Bash。GUI适合初学者,而CLI对于高效地...
Linux学习笔记整理资源 1、Linux简介:一种开源的、免费的操作系统,安装在计算机硬件上、用来管理计算机的硬件和软件资源的系统软件。 Linux注重安全性、稳定性、高并发处理能力,但缺乏优异的可视化界面。 2、...
在Linux学习过程中,了解操作系统的核心结构以及主要目录的用途至关重要。Linux系统采用的是层次化的目录结构,这使得系统管理更为有序。以下是对标题和描述中涉及的一些关键知识点的详细解释: 1. **根目录** `/`...
### Linux常用命令学习笔记 #### 一、更改帐号密码 - **命令**: `passwd` - **功能**: 更改用户密码。 - **语法**: `passwd` - 输入旧密码:`Old password:` - 输入新密码:`New password:` - 重新输入新密码...
### Linux学习笔记——初学者必备知识点 #### 一、源列表配置 在Linux系统中,尤其是Ubuntu这样的发行版,为了确保软件包的更新与安装,我们需要正确地配置系统的软件源。给定的内容显示了几个不同的软件源地址: ...
在Linux操作系统的学习中,掌握命令行的使用是至关重要的。...总的来说,Linux学习笔记是一个全面了解和掌握Linux系统操作的基础教程,涵盖了从基本命令到高级管理的诸多方面,对提升Linux技能有很大帮助。
这份"Linux学习笔记(强悍总结值得一看)"是Linux初学者的宝贵资源,也适合有经验的用户作为参考手册。以下是对笔记内容的详细概述: 1. **Linux常用命令**: Linux命令行是其强大的工具,掌握常用命令是Linux学习...
一切的起点,Linux系统中的所有文件和目录都是从根目录派生出来的。 #### /bin 存储了系统中最基本的、最常用的命令二进制文件。这些命令是系统管理员和用户日常操作中必不可少的工具,如`ls`、`cp`、`mv`等。 ##...
这篇Linux学习笔记主要讲解如何使用`mount`命令挂载CDROM,并通过实际操作过程进行演示。首先,我们要理解Linux的目录结构,所有的设备、目录和文件都统一在一个大的目录树下,包括硬件设备。CDROM也不例外,它需要...
这是个人10年前的Linux Ubuntu学习笔记,之后查笔记时,都会补充新知识,也有纠错,涵盖了10个PDF文件,由有道笔记导出,非常适合初学者。这些PDF文件包含了丰富的知识和实用技巧,能够帮助您更好地掌握Linux Ubuntu...