linux常用命令(六)
用于查找系统文件的相关命令
- grep
- find
- locate
grep:查找文件中符号条件的字符串(关键词)
命令语法:grep [选项] 查找模式 [文件名]
| 选项 | 选项含义 |
|---|---|
| -E | 模式是一个可扩展的正则表达式 |
| -F | 模式是一组有断行符分隔的定长字符串 |
| -P | 模式是一个Perl正则表达式 |
| -b | 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量 |
| -c | 只显示匹配行的数量 |
| -i | 比较时不区分大小写 |
| -h | 抑制输出的文件名前缀 |
| -l | 只显示匹配的文件名 |
| -L | 只显示不匹配的文件名 |
| -n | 在输出前加上匹配字符串所在行的行号(文件首行行号为1) |
| -v | 只显示不包含匹配字符的行 |
| -x | 强制模式仅完全匹配一行 |
| -w | 强制模式仅完全匹配字词 |
| -e<模式> | 用模式来进行匹配操作 |
| -f<文件> | 从文件取得模式 |
| -r | 递归读取每个目录下的所有文件 |
| -q | 禁止一切注册输出 |
| -I | 强制认为该二进制文件没有包含任何搜索样式 |
| -s | 取消错误消息 |
| --color | 显示颜色 |
例子:在/etc/passwd文件中过滤出包含sy的行
[root@localhost ~]# grep sy /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
对匹配的关键词显示颜色
[root@localhost ~]# grep --color sy /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
显示所有以d开头的文件中包含“test“的行数据内容
[root@localhost ~]# cat d1
1
test1
[root@localhost ~]# cat d2
2
test2
[root@localhost ~]# grep "test" d*
d1:test1
d2:test2
在/root/aa文件中找出以b开头的行内容
[root@localhost ~]# cat aa
bbb
111
[root@localhost ~]# grep ^b /root/aa
bbb
在/root/kkk文件种蔬菜以le结尾的行内容
[root@localhost ~]# cat kkk
test file
test file1
123
abc
[root@localhost ~]# grep le$ /root/kkk
test file
查找sshd进程信息
[root@localhost ~]# ps -ef|grep sshd
root 7078 1 0 18:50 ? 00:00:00 /usr/sbin/sshd -D
root 7642 7078 0 20:38 ? 00:00:00 sshd: root@pts/1
root 7958 7646 0 22:04 pts/1 00:00:00 grep --color=auto sshd
find:搜索文件系统内符号条件的文件和目录
命令语法:find [命令选项] [路径] [表达式选项]
| 选项 | 选项含义 |
|---|---|
| -name<文件名> | 按文档名称查找文件 |
| -perm<权限> | 按照文件的权限来查找文件 |
| -user<用户名> | 按照文件德语所有者来查找文件 |
| -group<组名> | 按照文件的组群所有者来查找文件 |
| -atime n | 在过去n天内被访问过(atime)的文件,n代表数字 |
| -amin n | 在过去n分钟内被访问过(atime)的文件,n代表数字 |
| -ctime n | 在过去n天内被更改过(ctime)的文件,n代表数字 |
| -cmin n | 在过去n分钟内被更改过(ctime)的文件,n代表数字 |
| -mtime n | 在过去n天内被修改过(mtime)的文件,n代表数字 |
| -mmin n | 在过去n分钟内被修改过(mtime)的文件,n代表数字 |
| -size n[ckMG] | 查找大写为n的文件,n代表数字,c代表字节,k代表KB,M代表MB,G代表GB |
| -empty | 查找空文件,可以是普通的文件或目录 |
| -type<文件类型> | 按文档类型查找,文件(f)、目录(d)、设备(b,c)、链接(l)等 |
| -fstype<文件系统类型> | 按照指定文件系统类型来查找文件 |
| -nogroup | 没有组群的文件 |
| -nouser | 没有用户的文件 |
| -uid<用户UID> | 按照文件的用户所有者的UID来查找文件 |
| -gid<组群GID> | 按照文件的组群所有者的GID来查找文件 |
| -inum n | 按照文件的inode号码来查找文件 |
| -readable | 匹配只读文件 |
| -samefile<文件名> | 查找和指定文件相同inode文件 |
| -writable | 匹配可写文件 |
| -links n | 按照文件链接数来查找文件,n代表数字 |
在查找文件时可以定义不同的文件类型
| 字符 | 含义 |
|---|---|
| b | 块设备文件 |
| d | 目录 |
| c | 字符设备文件 |
| p | 管道文件 |
| l | 符号链接文件 |
| f | 普通文件 |
| s | socket文件 |
例子:查找/boot目录下的启动菜单配置文件grub.cfg
[root@localhost ~]# find /boot name grub.cfg
查找“/"目录下所有以".conf"为扩展名的文件
[root@localhost ~]# find / -name "*.conf"
列出当前目录及其子目录下所有最近20天内更改过的文件
[root@localhost ~]# find . -ctime -20
查找/root目录中为空的文件或子目录
[root@localhost ~]# find /root -empty
查找/boot目录中查找文件类型为目录的文件
[root@localhost ~]# find /boot -type d
查找/home目录下用户所有者UID为1000的文件
[root@localhost ~]# find /home -uid 1000
查找inode号码是33582158的文件,(使用"start [文件]"命令可以查看文件inode号码)
[root@localhost ~]# find /root -inum 33582158
/root/anaconda-ks.cfg
不区分大小写查找文档jacob
root@localhost ~]# find -iname "cs.log"
./cs.log
查找计算机中2天前的当天被修改过的文档
root@localhost ~]# find / -mtime 2
查找当前目录下大于10MB的文档
[root@localhost ~]# find ./ -size +10M
./boot/initramfs-0-rescue-7ad525c9157940e3847220b1bdb8be06.img
./boot/initramfs-3.10.0-957.el7.x86_64.img
查找当前目录下所有普通文件
[root@localhost ~]# find ./ -type f
查找计算机中tom所拥有的所有文档
[root@localhost ~]# find ./ -user tom
查找大于1MB的文件后列出文件的详细信息
[root@localhost ~]# find ./ -size +1M -exec ls -l {} \;
查找计算机中所有大于1MB的文件
[root@localhost ~]# find / -size +1M -a -type f
locate:在数据库中查找文件
使用locate命令可以通过数据库(var/lib/mlocate/mlocate.db文件)来查找文件,这个数据库每天由cron程序来建立。当创建好这个数据库后,就可以方便地搜索所需文件了,它比find命令搜索速度还要快。 命令语法:locate [选项] [范本样式]
| 选项 | 选项含义 |
|---|---|
| -q | 安静模式,不会显示任何错误信息 |
| -r | 使用正则表达式作为搜索的条件 |
| -i | 匹配模式是忽略区分大小写 |
| -c | 显示找到的条目数 |
| -w | 匹配完整路径名 |
例子:查找httpd.conf文件
[root@localhost ~]# locate
-bash: locate: command not found
[root@localhost ~]# yum -y install mlocate
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.cn99.com
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 166 kB 00:00:02
(2/4): extras/7/x86_64/primary_db | 205 kB 00:00:02
(3/4): base/7/x86_64/primary_db | 6.0 MB 00:00:04
(4/4): updates/7/x86_64/primary_db | 6.4 MB 00:00:04
Resolving Dependencies
--> Running transaction check
---> Package mlocate.x86_64 0:0.26-8.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================
Package Arch Version Repository Size
===========================================================================================================
Installing:
mlocate x86_64 0.26-8.el7 base 113 k
Transaction Summary
===========================================================================================================
Install 1 Package
Total download size: 113 k
Installed size: 379 k
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/mlocate-0.26-8.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for mlocate-0.26-8.el7.x86_64.rpm is not installed
mlocate-0.26-8.el7.x86_64.rpm | 113 kB 00:00:02
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mlocate-0.26-8.el7.x86_64 1/1
Verifying : mlocate-0.26-8.el7.x86_64 1/1
Installed:
mlocate.x86_64 0:0.26-8.el7
Complete!
[root@localhost ~]# updatedb
[root@localhost ~]# locate httpd.conf
/root/httpd.conf
摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
linux常用命令(六)的更多相关文章
- Linux 常用命令六 cp和mv
一.cp命令 Linux中的复制命令. 复制文件: wang@wang:~/workpalce/python$ tree . ├── .txt ├── dir └── module directori ...
- Linux常用命令速查备忘
Linux常用命令速查备忘 PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shutdown ...
- [置顶] linux常用命令手册
前言:整理了一份linux常用命令手册,与大家分享.这是一些比较常用的命令. 我已经整理成一份PDF带书签的手册,可以到CSDN免费下载. 下载地址:http://download.csdn.net/ ...
- Linux常用命令 笔记
Linux常用命令 笔记 一.文件处理命令 1. ls命令:显示目录文件 -a 显示所有文件,包括隐藏文件.(all) ...
- Linux常用命令之文件和目录处理命令
目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...
- Linux系列教程(四)——Linux常用命令之文件和目录处理命令
这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...
- Linux基础学习(4)--Linux常用命令
第四章——Linux常用命令 一.文件处理命令 1.命令格式与目录处理命令ls: (1)命令格式:命令 [-选项] [参数] 例:ls -la /etc (2)说明:个别命令使用不遵循此格式;当有 ...
- Linux常用命令大全(全面)
笔者在这篇文章中跟大家分享一下接近 100 个 Linux 常用命令大全,希望可以帮助到大家. 1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 1 2 3 4 5 6 7 8 9 1 ...
- Linux常用命令last的使用方法详解
http://www.jb51.net/article/120140.htm 最近在学习linux命令,学习到了last命令,发现很多同学对last命令不是很熟悉,last命令的功能列出目前与过去登入 ...
- linux常用命令二
linux常用命令一 常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all ...
随机推荐
- RabbitMQ快速使用代码手册
本篇博客的内容为RabbitMQ在开发过程中的快速上手使用,侧重于代码部分,几乎没有相关概念的介绍,相关概念请参考以下csdn博客,两篇都是我找的精华帖,供大家学习.本篇博客也持续更新~~~ 内容代码 ...
- 使用 nuxt3 开发简约优雅的个人 blog
起因 很早前我就有过搭建个人博客的想法,但是我希望使用纯前端实现,这样就不需要付出额外的后端维护成本,维护成本又低,而且更加安全.网上也有很多博客框架但是也不符合我的需求,所以我使用了nuxt3 + ...
- ##Can not deserialize instance of java.lang.String out of START_OBJECT token
请求中定义了一个String字段,该字段主要是一个JSON Object字符串,对应的Java PO的相关字段类型是String. 但是测试的时候传的参数是JSON对象,例如{"aa&quo ...
- iOS select标签适配去掉iOS默认select样式
iOS端对select标签有独特的适配,如何取消这些默认样式呢 css样式表 加上 1 select { 2 -webkit-appearance: none; 3 } 博客同步更新:地址
- CF1794B Not Dividing题解
如果 \(a_i\) 可以整除 \(a_{i - 1}\),只要在 \(a_i\) 上 \(+1\) 即可,这样 \(a_i \bmod a_{i - 1} = 1\) 就满足题目要求了,如果这样算来 ...
- 一文了解io包中的discard类型
1. 引言 io.discard是Go语言标准库提供一个结构体类型,其在丢弃不需要的数据场景下非常好用.本文我们将从io.discard 类型的基本定义出发,讲述其基本使用和实现原理,接着简单描述 i ...
- RabbitMQ 中 exchange、route、queue 的关系
从 AMQP 协议可以看出,MessageQueue.Exchange 和 Binding 构成了 AMQP 协议的核心,下面我们就围绕这三个主要组件 从应用使用的角度全面的介绍如何利用 Rabbit ...
- 代码随想录算法训练营第二天| LeetCode 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
977.有序数组的平方 题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 文章讲解:https://programmercarl ...
- jsp+servlet实战项目
第一步:新建maven项目,项目中添加dao,entity,service,servlet,util包第二步:导入依赖 第三步:数据库建表 第四步:entity实体包(疯转) 第五步:在util工具包 ...
- Web攻防--xxe实体注入
web攻防--xxe实体注入 漏洞简介 XML 外部实体注入(也称为 XXE)是一种 Web 安全漏洞,允许攻击者干扰应用程序对 XML 数据的处理.它通常允许攻击者查看应用程序服务器文件系统上的文件 ...