今天是常用命令学习的第四天
第一个是find:文件搜索,所有用户都可以搜索。find命令有许多常用的选项,下面将一个一个介绍
- find / :在根目录下查找;find . :在当前目录下查找。find命令要在某个目录下寻找。
- find /etc -name:-name是一个选项,表示要查找的名字什么。
find /etc -name init:这个操作是在/etc目录下找名叫init的文件,注意这里查找是只会找到名叫init的文件,且区分大小写。这里顺便说一下,根据正则表达式,*:可以匹配任意字符;?:可以匹配单个字符。
这里可以看到,匹配到的是文件中带有init的文件。
这里是匹配到init加上任意三个字符 - find /etc -iname init???:这里iname会忽略大小写,搜索过程中不区分大小写
- find / -size +204800:这里是在根目录下查找下大于100MB的文件。+n:大于,-n:小于,n:等于,1数据块 512字节 0.5k。2048数据块=1M
这里是在根目录下查找下大于100MB的文件 - find /etc -name inittab -exec ls -l {} ;
在/etc目录下查找inittab文件并显示其详细信息,这里-exec是连接命令,指搜索到结果之后对结果进行什么
处理,这里{}是对结果进行整合,\是转移符,;表示结束。{} \;算是固定格式,不理解可以直接死记硬背
- find /etc -name inittab -ok ls -l {} ;
与上面的类似,只不过会逐个询问查询,这个在删除的时候可以使用,避免误删
这里我是寻找/tmp目录下一个叫fengjie的文件并进行删除,系统会提示是否删除。 - find /home -user shenchao:在根目录下查找所有者为shenchao的文件
-group:根据所属组来查找
这里是在/home目录下找到用户名叫shenchao的用户的文件路径。一般来说,用户的数据都是存放在/home目录下面的。 - find /etc -cmin -5:在/etc目录下查找5分钟内被修改过的属性的文件和目录
-amin:访问时间 access
-cmin:文件属性 change
-mmin:文件内容 modify - -a:and,两个条件同时满足;-o:or,两个条件只要满足一个即可
这里我在根目录下寻找名字含有init且文件大于100数据块的文件,并且长显示。 - -type:根据文件类型查找。f:文件 ;d:目录;l:软链接
- -inum:根据i节点查找,如果某个文件的文件名很恶心,可以找到该文件的i节点,然后进行删除
终于写完第一个命令,真的是累死了。接下来是which:搜索命令所在的目录及别名信息
在/user/bin目录中的命令是可以被所有用户访问的,而存放在/usr/sbin中的命令是只能被root所使用的
注意认识别名,其实使用命令都是使用命令的别名,比如rm -i就是rm命令的别名
例子:/bin/rm和是我们所使用的rm是不一样的
第三个是whereis:搜索命令所在的目录及帮助文档路径
这里用whereis命令查找了rm,cd,passwd的目录和文档路径。
接下来是grep:文件中搜寻字符匹配的行并输出
这里是在/etc/services文件中找出关键字为services的行并且显示。
- grep -i:不区分大小写
- grep -v:排除指定字串
^表示行首,^#:表示行首为#。通过测试可以发现,确实屏蔽了行首为#的行,显示余下的行。这里技巧可以用来看shell脚本的代码,因为代码中#为注释,这样可以出去注释,看有效代码。
然后是man:获得帮助信息
这里我用man命令看来services的帮助信息。在查看命令解释中,输入/services就会标记文件中出现的services并且n你可以切换到下一个services的位置。但是查找时要注意,一定不要用绝对路径,不然会打印出全部的文件信息。
通过查看配置文件的信息,可以知道该文件的信息格式和用法会出现查看配置文件时会查看到原文件的信息,比如passwd文件,由于存在两个passwd文件,在使用man命令系统会优先查看命令文件,即man1
可以发现有两个文件,而系统会优先看man1目录下的目录。要想查看man5下的,只需要把命令变成man 5 passwd 即可。
其他帮助命令
- whatis:得到命令的简短介绍信息,比如:whatis cd
- apropos:可以找到配置文件的简短信息,比如:apropos services
- –help:可以查看命令的选项信息,比如:touch --help
- help:用于查询内置命令的帮助,比如在shall中,if是什么作用?可以help if来查看if命令信息
- type:可以查询某个命令的简单描述,比如:type cd