作家
登录

一网打进Linux下那些查找命令

作者: 来源: 2018-03-27 11:28:45 阅读 我要评论

沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践!

查找是我们天天都在做的工作,早上醒来找下手机,出门之前查下公交,坐下之后查下材料,分析数据查下模式。


查找文件,查找信息,查找缺点是应用起来更为具体的一些工作,而Linux敕令行动我们供给了很多快捷强大年夜的查找方法。

匹配行的前后行

whereis program_name: 会在体系默认安装目次(一般是有root权限时默认安装的软件)查找二进制文件、源码、文档中包含给定萌芽关键词典文件。(默认目次有 /bin, /sbin, /usr/bin, /usr/lib, /usr/local/man等类似路径)

which program_name: 会给出所有在情况变量中的法度榜样的路径,一来便利知道运行的法度榜样在哪,二来便利修改。

比如vim `which sp_pheatmap.sh`就可以直接修改绘制热图的脚本,cp \which sp_pheatmap.sh` .`可以直接把源码拷贝到当前目次,省去了写全路径的麻烦。

如不雅运行which bwa,体系返回是 /usr/bin/which: no bwa in (/home/usr/bin:/bin)则解释bwa没有放置在情况变量中,弗成以直接写名字调用。

通俗文件快速定位 locate

locate是快速查沉着位文件的好办法,但其依附于updatedb建立的索引。而updatedb一般是天天运行一次,所以当天的新文件是索引不到的。

如不雅有根用户权限,可以手动运行updatedb做个更新,然后再locate bwa。

通俗文件多前提查找 find

find / -name bwa可以搜刮根目次下所有名字为bwa的文件

敕令/可履行法度榜样查找

运行膳绫擎的敕令时会输出很多Permission denied,是因为 作为通俗用户,无权限拜访一些目次,是以会有提示输出,可以应用find / -name bwa 2>/dev/null重定向标准缺点到空设备,报错信息就被扔掉落了,还不影响正常输出。

按时光查找

我们开辟的在线画图网站 (www.ehbio.com/ImageGP),为了追踪天天用户应用时碰着了什愦问题,须要天天准时去查看日记。

这个敕令find . -name *.log -mmine -60可以查看当前目次下(包含所有子目次)一小时内修改的日记文件。再合营head就可以查看每个日记文件的内容,以便利查看应用过程中出现了哪些缺点,若何增长提示或修改画图法度榜样。

恰是有了这个利器,前台的缺点提示中才出现了这么一句话,如不雅您查对后数据和参数没问题,请过1天再进行测验测验。若是法度榜样问题,我们平日会在1天内修复。

当然后台数据都是用时光戳存储的,并且若无报错,数据会直接删掉落,有报错的才会保存日记,不会泄漏用户信息,这点大年夜家不消担心。

如今画图网站越来越稳定,出现的问题越来越少,前台提示也越来越完美,欲望大年夜家应用时多看下提示,查看日记的频率也少了,就应用find . -name *.log -mtime -1查看大年夜如今起24小时内的日记了。

这个也有个问题,每次查看的时光可能不一致,会漏查或有重叠,于是在某次查看完日记后,应用touch check在当前目次下新建了个空文件。今后再查日记文件时,只要应用find . -name *.log -newer check就可以获得所有前次查看过之后的新日记。每次查看完之后,都做个书签,就便利多了。

慢慢发明有空日记文件, 应用find . -name *.log -newer check -size +0过滤掉落, 只保存大年夜小大年夜于0的文件。就如许在小伙伴聪慧勤奋地保持下,我们画图网站为3万多用户供给了近10万次办事。

比来画图网站新增了曼哈顿图,PcOA, CPcOA和桑基图的绘制,近日会推出一份更新文档,迎接应用。

按类型和大年夜小查找

如不雅我想获得当前目次下所有png和jpg照片呢?

应用 find . \( -name "*.png" -o -name "*.jpg" \) | less

find . -type f -size +100G可以获取大年夜小跨越100G的文件。

find可以查找包含某句话的文件吗? 照样拿我们的日记说事吧,find . -name *.log -exec grep -l 'Error' {} \;就可以返回所有包含Error单词典文件名。

限制查找深度

只看当前目次2层子目次内的文件find . -maxdepth 2 -name *.log。

查看不是log结尾的文件find . -not -name *.log。还有更多组合操作,详见find文档。

按文件内容查找 grep

find . -name *.log | xargs grep -l 'Error'也可以。

grep -rl 'Error' *也可以,不加-l还可以趁便返回匹配的行。

grep -A 5 -B 1 'Bioinfo' ehbio.log可以查看匹配行的前1行(B, before)和后5行(A, after)。

匹配次数

或 find . -regex ".*\(\.png\|\.jpg\)$"

grep -c 'Bioinfo' ehbio.log可以统计包含Bioinfo的行数

grep -ci 'Bioinfo' ehbio.log则会在匹配时忽视大年夜小写。

统计FASTA序列中的序列数 grep '^>' ehbio.fa

统计FASTQ序列中的序列数 grep '^+$' ehbio.fq。(^表示以什么开首,$表示以什么结尾)。

获取未匹配行

grep -v 'Bioinfo' ehbio.log,读读手册(man grep),可以看到更多参数应用。

序列提取

假设有个基因列表文件 (ID),有个单行序列的FASTA文件 (ehbio.fa), 运行如下敕令grep -A 1 -Fw -f id ehbio.fa | grep -v -- '--'就可以批量提取序列了。

-f id表示把id文件中的每一行作为一个匹配模式。-F表示匹配模式作为原始字符串,而非正则表达式,这是以防有特别字符被解析。-w则表示作为一个单词匹配,即假如id中有Sox2,那么它会匹配Sox2,也会匹配Sox21;如不雅加了-w,则不会匹配Sox21。

(小我用户也可以构建本身的updatedb, 应用locate在局部情况中查找。)


  推荐阅读

  安卓手机遭RottenSys恶意攻击 360揭秘其花式“隐匿术”

起首,“体系Wi-Fi办事”会假装成体系办事过程,打着“向用户供给任何Wi-Fi相干办事”的旗号招摇过市。因为很多用户对这一假装并不懂得,大年夜多半会误认为该法度榜样不存在威逼,就不会进行删>>>详细阅读


本文标题:一网打进Linux下那些查找命令

地址:http://www.17bianji.com/lsqh/40939.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)