查询文件
locate
- 格式:locate 文件(夹)
- 优点:快(相当于目录寻找)
- 缺点:不全,会列出所有包含内容的文件,新建的搜不到(需刷新updatedb)
which
- 只能用于搜索命令位置
- $PATH(命令文件)
- echo $PATH(列出所有命令文件所在的文件夹)
- which 命令=whereis(更详细)
find
- 缺点:慢(相比较而言,需搜索全磁盘)
- 优点:实时查找,可以附加众多条件
- 格式:find 范围 [选项] 条件 处理动作
- 范围:指定具体目标路径;不指定为默认为当前目录
- 条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
- 处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
[选项]
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 -iname "文件名称" 不区分大小写 |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
按inode号 | -inum | 根据文件inode号查找 |
按权限查找 | -perm | 按文件权限查找 |
最大搜索目录深度 | -maxdepth level | 将你的文件已分级的形式查找 |
最小搜索目录深度 | -mindepth level | 同上 find /etc -maxdepth 2 -mindepth 2 |
根据时间
#以“天”为单位
-atime [+|-]#
# #表示[#,#+1) 如#是3 3 到 4天
+# #表示[#+1,∞] 如#是3 代表 4天以上
-# #表示[0,#) 如#是3 3天以内
-mtime
-ctime
-atime
#以“分钟”为单位
-amin
-mmin
-cmin
处理动作
-print:默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行"ls -dils"命令格式输出
-fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete:删除查找到的文件,慎用!
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令
{}: 用于引用查找到的文件名称自身
例:
1.找到/root/best/下的软链接并删除
[root@localhost ~]# ll /root/best
总用量 8
lrwxrwxrwx 1 root root 17 3月 11 18:26 a -> /proc/self/mounts
lrwxrwxrwx 1 root root 17 3月 28 19:08 i -> /proc/self/mounts
-rw-r--r--. 1 root root 357 3月 11 18:51 ifcfg-ens33
lrwxrwxrwx 1 root root 17 3月 11 18:26 p -> /proc/self/mounts
-rw-r--r--. 1 root root 52 3月 11 12:17 yum
[root@localhost ~]# find /root/best/ -type l -delete
[root@localhost ~]# ll /root/best
总用量 8
-rw-r--r--. 1 root root 357 3月 11 18:51 ifcfg-ens33
-rw-r--r--. 1 root root 52 3月 11 12:17 yum
2.找到/root/best/下的普通文件并移动到/mnt/下
[root@localhost ~]# ll /root/best
总用量 8
-rw-r--r--. 1 root root 357 3月 11 18:51 ifcfg-ens33
-rw-r--r--. 1 root root 52 3月 11 12:17 yum
[root@localhost ~]# find /root/best/ -type f -exec mv {} /mnt \;
[root@localhost ~]# ll /root/best
总用量 0
[root@localhost ~]# ll /mnt
总用量 8
-rw-r--r--. 1 root root 357 3月 11 18:51 ifcfg-ens33
-rw-r--r--. 1 root root 52 3月 11 12:17 yum
查询文件内容
head
格式:head [选项] 文件
查看文件前10(默认10)行
[root@localhost saber]# head ip
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
-n k(数字):前k行
[root@localhost saber]# head -n3 ip ----默认为前k行
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
[root@localhost saber]# head -n +3 ip ----k为正数时为前k行
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
[root@localhost saber]# head -n -3 ip ----k为负数时为除了后k行
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=cde66a36-f5f2-4e2b-97ab-77212f4ba18b
DEVICE=ens33
ONBOOT=yes
IPADDR=172.16.87.10
-c k(数字):文件前k字符
[root@localhost saber]# head -c 2 ip ----一个汉字3字符
TY
tail
格式:tail [选项] 文件
查看文件后10(默认10)行
[root@localhost saber]# tail ip
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=cde66a36-f5f2-4e2b-97ab-77212f4ba18b
DEVICE=ens33
ONBOOT=yes
IPADDR=172.16.87.10
NETMASK=255.255.255.0
GATEWAY=172.16.87.2
DNS1=8.8.8.8
-n k(数字):后k行
[root@localhost saber]# tail -n 3 ip ----默认后k行
NETMASK=255.255.255.0
GATEWAY=172.16.87.2
DNS1=8.8.8.8
[root@localhost saber]# tail -n +3 ip ----k为正数时从第k行开始显示
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=cde66a36-f5f2-4e2b-97ab-77212f4ba18b
DEVICE=ens33
ONBOOT=yes
IPADDR=172.16.87.10
NETMASK=255.255.255.0
GATEWAY=172.16.87.2
DNS1=8.8.8.8
[root@localhost saber]# tail -n -3 ip ----k为负数时显示后k行
NETMASK=255.255.255.0
GATEWAY=172.16.87.2
DNS1=8.8.8.8
-f :实时追踪后十行
[root@localhost saber]# tail -f /var/log/yum.log
Mar 11 11:04:47 Installed: libsepol-devel-2.5-6.el7.x86_64
Mar 11 11:04:47 Installed: pcre-devel-8.32-17.el7.x86_64
Mar 11 11:04:48 Installed: libselinux-devel-2.5-11.el7.x86_64
Mar 11 11:04:48 Installed: libcom_err-devel-1.42.9-10.el7.x86_64
Mar 11 11:04:48 Installed: libverto-devel-0.2.5-4.el7.x86_64
Mar 11 11:04:48 Installed: keyutils-libs-devel-1.5.8-3.el7.x86_64
Mar 11 11:04:48 Installed: krb5-devel-1.15.1-8.el7.x86_64
Mar 11 11:04:48 Installed: zlib-devel-1.2.7-17.el7.x86_64
Mar 11 11:04:50 Installed: 1:openssl-devel-1.0.2k-8.el7.x86_64
Mar 27 11:30:19 Installed: tree-1.6.0-10.el7.x86_64
Mar 11 11:04:47 Installed: pcre-devel-8.32-17.el7.x86_64
Mar 11 11:04:48 Installed: libselinux-devel-2.5-11.el7.x86_64
Mar 11 11:04:48 Installed: libcom_err-devel-1.42.9-10.el7.x86_64
Mar 11 11:04:48 Installed: libverto-devel-0.2.5-4.el7.x86_64
Mar 11 11:04:48 Installed: keyutils-libs-devel-1.5.8-3.el7.x86_64
Mar 11 11:04:48 Installed: krb5-devel-1.15.1-8.el7.x86_64
Mar 11 11:04:48 Installed: zlib-devel-1.2.7-17.el7.x86_64
Mar 11 11:04:50 Installed: 1:openssl-devel-1.0.2k-8.el7.x86_64
Mar 27 11:30:19 Installed: tree-1.6.0-10.el7.x86_64
Mar 29 15:03:03 Installed: tree-1.6.0-10.el7.x86_64
wc
wc [选项]... 目标文件..
统计列数,wc本身就是参数 word
- -l:统计行数
- -w:统计单词个数
- -c:统计字节数
[root@localhost saber]# cat -An yum
1 [saber]$
2 $
3 $
4 name=saber$
5 $
6 $
7 baseurl=file:///GZ/CD$
8 $
9 $
10 $
11 gpgcheck=0$
[root@localhost saber]# wc -l yum
11 yum
[root@localhost saber]# wc -w yum
4 yum
[root@localhost saber]# wc -c yum
59 yum
grep
grep [选项]… 查找条件 目标文件
-
-i:查找时忽略大小写
[root@localhost best]# grep ob passwd ----在passwd中查找包含ob的行
nobody:x:99:99:Nobody:/:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@localhost best]# grep -i ob passwd ----忽略大小写在passwd中查找包含ob的行
nobody:x:99:99:Nobody:/:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
OB:x:7777:0::/home/OB:/bin/bash
-
-w:只选取单独的一个词
[root@localhost best]# grep -i ob passwd ----忽略大小写在passwd中查找包含ob的行
nobody:x:99:99:Nobody:/:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
OB:x:7777:0::/home/OB:/bin/bash
[root@localhost best]# grep -iw ob passwd ----忽略大小写在passwd中查找包含ob单词的行
OB:x:7777:0::/home/OB:/bin/bash
-
-v:反向查找,输出与查找条件不相符的行
[root@localhost best]# grep -v nologin passwd ----在passwd中查找可登录用户(nologin代表不可登录)
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
saber:x:1000:1000:saber:/home/saber:/bin/bash
OB:x:7777:0::/home/OB:/bin/bash
-
-o :只显示匹配项
[root@localhost best]# grep root passwd ----在passwd中查找包含root的行
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost best]# grep -o root passwd
root
root
root
root
-
-f: 对比两个文件的相同行
[root@localhost best]# cat head
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost best]# cat tail
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
saber:x:1000:1000:saber:/home/saber:/bin/bash
OB:x:7777:0::/home/OB:/bin/bash
[root@localhost best]# grep -f head tail ----以head中的文本为参照在tail中找到相同的部份
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
-
-E:使用正则表达式
[root@localhost best]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.87.10 netmask 255.255.255.0 broadcast 172.16.87.255
inet6 fe80::d93d:12d9:c437:3ee1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:18:fc:02 txqueuelen 1000 (Ethernet)
RX packets 16548 bytes 1265399 (1.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9054 bytes 5818584 (5.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost best]# ifconfig ens33 | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' ----查找ip配置
inet 172.16.87.10 netmask 255.255.255.0 broadcast 172.16.87.255
[root@localhost best]# ifconfig ens33 | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
172.16.87.10
255.255.255.0
172.16.87.255
标签:11,saber,查询,命令,查找,best,root,localhost
From: https://www.cnblogs.com/GrandOB/p/18110667