find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。
find的使用格式如下:
find <指定目录> <指定条件> <指定动作>
- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
- <指定条件>: 所要搜索的文件的特征。
- <指定动作>: 对搜索结果进行特定的处理。
[root@localhost /]# find . -name ‘bin*‘ 查找当前目录下以bin开头的所有文件
./etc/binfmt.d
./etc/selinux/targeted/modules/active/modules/bind.pp
[root@localhost /]# find . -name ‘bin*‘ -ls 查找当前目录下以bin开头的所有文件,并列出文件信息
您还可以在搜索字符串中指定多个起始目录。如果以具有相应权限的用户身份运行,以下命令将下到 /usr、/home /tmp 目录查找所有 jar 文件:
find /usr /home /tmp -name "*.jar"
[root@localhost /]# find . -type d -type制定要搜索文件的类型
其他 find 可以找到的文件类型包括:
b — 块(缓存)特殊
c — 字符(未缓存)特殊
p — 命名管道 (FIFO)
s — 套接字
查找时间
find 命令有几个用于根据您系统的时间戳搜索文件的选项。这些时间戳包括
mtime — 文件内容上次修改时间
atime — 文件被读取或访问的时间
ctime — 文件状态变化时间
mtime 和 atime 的含义都是很容易理解的,而 ctime 则需要更多的解释。由于 inode 维护着每个文件上的元数据,因此,如果与文件有关的元数据发生变化,则 inode 数据也将变化。这可能是由一系列操作引起的,包括创建到文件的符号链接、更改文件权限或移动了文件等。由于在这些情况下,文件内容不会被读取或修改,因此 mtime 和 atime 不会改变,但ctime 将发生变化。
这些时间选项都需要与一个值 n 结合使用,指定为 -n、n 或 +n。
-n 返回项小于 n
+n 返回项大于 n
n 返回项正好与 n 相等
[root@localhost /]# find /etc -mtime -1 //查看一个小时内/etc目录下被修改的文件
/etc
/etc/resolv.conf
/etc/tuned/active_profile
/etc/sysconfig
/etc/sysconfig/network-scripts
按大小查找文件
-size 选项查找满足指定的大小条件的文件。
[root@localhost /]# find /etc -size -1k //查看/etc目录下大小小于1k的文件
/etc/crypttab
/etc/motd
/etc/cron.deny
/etc/.pwd.lock
/etc/environment
/etc/sysconfig/run-parts
/etc/selinux/targeted/modules/semanage.read.LOCK
/etc/selinux/targeted/modules/active/netfilter_contexts
/etc/selinux/targeted/modules/semanage.trans.LOCK
/etc/selinux/targeted/contexts/files/file_contexts.local
/etc/selinux/targeted/contexts/files/file_contexts.subs
/etc/security/opasswd
/etc/exports
[root@localhost /]# find /etc -empty //-empty 空文件
/etc/terminfo
/etc/systemd/user
/etc/gnupg
/etc/crypttab
/etc/opt
/etc/motd
/etc/gcrypt
/etc/ppp/peers
/etc/chkconfig.d
/etc/rwtab.d
/etc/groff/site-font
/etc/firewalld/services
/etc/firewalld/icmptypes
按权限和所有者查找
find . -type f -perm a=rwx -exec ls -l {} \;
[root@localhost /]# find /etc -perm 777 -exec ls -l {} \; //-perm 按权限查看
lrwxrwxrwx. 1 root root 38 Aug 31 03:07 /etc/systemd/system/getty.target.wants/getty@tty1.service -> /usr/lib/systemd/system/getty@.service
lrwxrwxrwx. 1 root root 41 Aug 31 03:08 /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service -> /usr/lib/systemd/system/firewalld.service
lrwxrwxrwx. 1 root root 46 Aug 31 03:08 /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
[root@localhost /]# find /etc/ -perm u=rwx -exec ls -l {} \; //根据属主的权限来查看文件
-rwx------. 1 root root 180 Jul 31 2013 /etc/cron.daily/logrotate
total 0
total 0
total 68
-rwxr-xr-x. 1 root root 8702 Mar 26 16:27 00_header
-rwxr-xr-x. 1 root root 992 Oct 17 2014 00_tuned
-rwxr-xr-x. 1 root root 10114 Mar 26 16:27 10_linux
-rwxr-xr-x. 1 root root 10275 Mar 26 16:27 20_linux_xen
-rwxr-xr-x. 1 root root 2559 Mar 26 16:27 20_ppc_terminfo
-rwxr-xr-x. 1 root root 11169 Mar 26 16:27 30_os-prober
-rwxr-xr-x. 1 root root 214 Mar 26 16:27 40_custom
-rwxr-xr-x. 1 root root 216 Mar 26 16:27 41_custom
-rw-r--r--. 1 root root 483 Mar 26 16:27 README
[root@localhost /]# find /etc/ -perm u=rwx -exec ls -l {} \; 2>/dev/null //添加错误重定向
控制 find
与 Linux 中的许多命令不同,find 不需要 -r 或 -R 选项即可下到子目录中。它默认情况下就这样操作。但是,有时您可能希望限制这一行为。因此,选项 -depth、-maxdepth 和 -mindepth 以及操作 -prune 就派上用场了.
-maxdepth 和 -mindepth 选项允许您指定您希望 find 搜索深入到目录树的哪一级别.通过运行以下命令在目录树的前三个级别中查找日志文件,您可以看到 -maxdepth 的效果。使用该选项较之不使用该选项所生成的输出要少得多。
[root@localhost /]# find / -maxdepth 3 -name ‘*.log‘
/tmp/yum.log
/var/log/boot.log
/var/log/yum.log
vim -->vi improved
vim [options] [file]...
模式切换
默认为编辑模式
编辑模式-->输入模式
i:当前光标所在处
I:在当前光标所在行行首
a: 光标所在字符后方
A:在当前光标所在行的行尾
o:在当前所在行的下方新建
O:在当前所在行的上方新建
末行模式:
:q! 强制退出
:wq 保存退出
:x 保存退出
:wq! 强制保存退出
:ZZ 保存退出
编辑模式: cc 删除光标所在行,并进入插入模式
C 删除光标后面的字符
可视化模式
v:选择光标所在行的左侧的内容
V:光标所在行整行都会选定
编辑模式的翻屏命令
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
文本查找
/word
?word
地址定界 startline ,endline #:第n行 .:当前行 $:最后一行 %:全文
相对定界: +#:从指定位置向下n行 -#:从指定位置向上n行
文本替换操作
s/要查找内容/要替换的内容/修饰符
/:分隔符 如#,@
g:全局替换
i:不区分大小写
要查找的内容:可以使用正则表达式
要替换的内容:不可以使用正则表达式
界面显示特性
语法高亮开启和关闭:
:syntax on/off
搜索高亮的开启和关闭:
:set hlsearch
: set nohlsearch
自动缩进
:set autoindent
: set noautoindent
vim 全局配置文件 /etc/vimrc
本文出自 “laoli110” 博客,请务必保留此出处http://laoli110.blog.51cto.com/9136611/1690411
原文地址:http://laoli110.blog.51cto.com/9136611/1690411