(一)find命令详解
find:功能:文件搜索;
语法:find[搜索范围][匹配条件]; 只要匹配条件完全符合才可以被显示,使用通配符*匹配条件*则可以显示匹配条件的所有目录,问号?匹配单个字符
所在路径:/bin/find;
按照名字查找文件:
eg:# find /tmp -name *test*:区分大小写,显示所有包含test的文件; # find /tmp -iname *test* :不区分大小写,显示所有包含test的文件
按照所有者查找文件:
find / -user zxh:在系统文件中查找用户zxh的所有文件
按照组别查找文件:
find /home -group zxh:在系统中查找组别是zxh的所有的文件
按照时间查找文件:
find /etc -cmin -5:在/etc下查找五分钟内被修改过属性的文件和目录
{-amin:访问时间 a:access;-cmin:文件属性c:change即:ls -l可以看到的那些属性;-mmin:文件内容m:modify即:文档内容被改变}
根据文件类型查找文件:
find / -type f:按照文件类型查找文件,f代表文件,d代表目录,l代表软连接文件,例:# find / -mmin -30 -type f
-inum:根据i节点查找
对查找到的文件进行操作:
# find /etc -name inittab -exec -ok ls -l {} \:查看找到的文件的详细信息;其中-exec [操作命令] {} \;是固定的格式;
-ok的时候会再次询问你是否真的要进行如此的操作,例:
[root@localhost ~]# find /etc -name inittab -ok -exec ls -l {} \; < ls ... /etc/inittab > ? y -rw-r--r--. 1 root root 491 6月 10 2014 /etc/inittab
详情请参考:http://man.linuxde.net/find
(2)locate命令详解
locate:功能:在文件资料库中查找文件,locate命令其实是find -name
的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索数据库/var/lib/locatedb
,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
语法:locate 文件名;eg:locate inittab
locate -i 文件名:不区分大小写的在资料库里面查找文件
问题一:[linux]centos7及以上找不到locate命令及locate搜索不到存在的文件:安装mlocate包:yum -y install mlocate;更新数据库:updatedb
问题二:仍然有一些文件无法通过locate命令找到
原因:
查看配置文件
cat /etc/updatedb.conf
输入命令后可看到:
PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp"
PRUNE_BIND_MOUNTS = “yes” 开启搜索限制,如果为’no’则表示不开启搜索限制;
PRUNEFS = 搜索时,不搜索的文件系统;
PRUNENAMES = 搜索时,不搜索的文件类型;
PRUNEPATHS = 搜索时,不搜索的路径;
不只locate命令遵循搜索限制,whereis与which也遵循
(3)which命令详解
which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which:功能:搜索命令所在目录以及别名信息,语法:which 命令 ;例:
[root@node001 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
(4)whereis 命令详解
whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径
语法:whereis(选项)(参数)
选项:
-b:只查找二进制文件; -B<目录>:只在设置的目录下查找二进制文件; -f:不显示文件名前的路径名称; -m:只查找说明文件; -M<目录>:只在设置的目录下查找说明文件; -s:只查找原始代码文件; -S<目录>只在设置的目录下查找原始代码文件; -u:查找不包含指定类型的文件。
参数:
要查找的二进制程序、源文件和man手册页的指令名
[root@node001 ~]# whereis ls ls: /usr/bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
(5)grep命令详解
grep:功能:在文件中搜索字串匹配的行并输出。
语法:grep -iv [指定字串][指定文件],-i代表不区分大小写,-v排除指定字符串,例:
[root@node001 tmp]# cat file match pattern test 1 wode ceshi oooo hahahha 哈哈哈哈 [root@node001 tmp]# grep ceshi file ceshi
详情请参考:http://man.linuxde.net/grep
(6)man命令详解
man :功能:获得帮助信息;语法:man [命令或者配置文件];一般优先显示命令帮助,1是命令帮助,5是文件帮助 ,例:man 5 passwd;
选项:
-a:在所有的man帮助手册中搜索; -f:等价于whatis指令,显示给定关键字的简短描述信息; -P:指定内容时使用分页程序; -M:指定man手册搜索的路径。
输入:man services的时候显示没有 services 的手册页条目,则解决办法是:安装man帮助文档包:sudo yum install man-pages
(7)whatis 命令详解
功能:获得一个简短的命令的信息,是用于查询一个命令执行什么功能,并将查询结果打印到终端上。例:
[root@node001 tmp]# whatis ls ls (1p) - list directory contents ls (1) - list directory contents [root@node001 tmp]# whatis passwd sslpasswd (1ssl) - compute password hashes passwd (1) - update user's authentication tokens passwd (5) - password file
(8)apropos命令详解
apropos:获得一个配置文件的信息,相当于man -k 关键字
语法:apropos [配置文件名]
[root@node001 tmp]# apropos who at.allow (5) - determine who can submit jobs via at or batch at.deny (5) - determine who can submit jobs via at or batch btrfs-filesystem (8) - command group of btrfs that usually work on the whole filesystem docker-trust-signer (1) - Manage entities who can sign Docker images Font::TTF::Manual (3pm) - Information regarding the whole module set ipsec_newhostkey (8) - generate a new raw RSA authentication key for a host ipsec_showhostkey (8) - show host's authentication key Net::LDAP::Extension::WhoAmI (3pm) - LDAP "Who am I?" Operation w (1) - Show who is logged on and what they are doing. who (1) - show who is logged on who (1p) - display who is on the system whoami (1) - print effective userid
(9)info命令详解
info:获得帮助信息;语法:info(选项)(参数);
选项:
-d:添加包含info格式帮助文档的目录; -f:指定要读取的info格式的帮助文档; -n:指定首先访问的info帮助文件的节点; -o:输出被选择的节点内容到指定文件。
参数:帮助主题:指定需要获得帮助的主题,可以是指令、函数以及配置文件。
常用快捷键和命令:
快捷键: ?键:它就会显示info的常用快捷键。 N键:显示(相对于本节点的)下一节点的文档内容。 P键:显示(相对于本节点的)前一节点的文档内容。 U键:进入当前命令所在的主题。 M键:敲M键后输入命令的名称就可以查看该命令的帮助文档了。 G键:敲G键后输入主题名称,进入该主题。 L键:回到上一个访问的页面。 SPACE键:向前滚动一页。 BACKUP或DEL键:向后滚动一页。 Q:退出info。 命令: q 退出 info n 打开与本 Node 关联的下一个 Node p 打开与本 Node 关联的前一个 Node u 打开与本 Node 关联的上一个 Node l 回到上一次访问的 Node m或g 选择一个菜单项(Node 的名字) 输入指定菜单的名字后按回车,打开指定菜单项关联的 Node 空格键 下一页(PageDown 也可以,下一页从当前页的最后两行开始算起) 下一个 Node (若当前页在 Node 文档的末尾) Del 键 上一页(PageUp 也可以,上一页从当前页的开始两行开始算起) 上一个 Node (若当前页 Node 文档的开始) b 或 t 或 Home 文档的开始(b 是 begining 的意思) e 或 End 文档的末尾(b 是 ending 的意思) Ctrl-l 刷新当前页,若当前文档显示情况有问题时 Ctrl-g 取消所键入的指令
(10)help命令详解
功能:用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。
语法:help(选项)(参数)
选项:-s:输出短格式的帮助信息。仅包括命令格式。
参数:内部命令:指定需要显示帮助信息的shell内部命令。
[root@node001 tmp]# help shopt shopt: shopt [-pqsu] [-o] [optname ...] Set and unset shell options. Change the setting of each shell option OPTNAME. Without any option arguments, list all shell options with an indication of whether or not each is set. Options: -o restrict OPTNAMEs to those defined for use with `set -o' -p print each shell option with an indication of its status -q suppress output -s enable (set) each OPTNAME -u disable (unset) each OPTNAME Exit Status: Returns success if OPTNAME is enabled; fails if an invalid option is given or OPTNAME is disabled.
以上个人学习笔记,仅供参考!!!