一網打進Linux下那些查找命令

查找是我們每天都在做的事情,早上醒來找下手機,出門之前查下公交,坐下之后查下資料,分析數據查下模式。

查找文件,查找信息,查找錯誤是應用起來更為具體的一些工作,而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。

(個人用戶也可以構建自己的updatedb, 使用locate在局部環境中查找。)

普通文件多條件查找 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 . -regex “.*(.png|.jpg)$”

find . -type f -size +100G可以獲取大小超過100G的文件。

限制查找深度

只看當前目錄2層子目錄內的文件find . -maxdepth 2 -name *.log。

查看不是log結尾的文件find . -not -name *.log。還有更多組合操作,詳見find文檔。

按文件內容查找 grep

find可以查找包含某句話的文件嗎? 還是拿我們的日志說事吧,find . -name *.log -exec grep -l ‘Error’ {} ;就可以返回所有包含Error單詞的文件名。

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)。

匹配次數

grep -c ‘Bioinfo’ ehbio.log可以統計包含Bioinfo的行數

grep -ci ‘Bioinfo’ ehbio.log則會在匹配時忽略大小寫。

統計FASTA序列中的序列數 grep ‘^>’ ehbio.fa

統計FASTQ序列中的序列數 grep '^+ ′ e h b i o . f q 。 ( 表 示以什么開頭, ' ehbio.fq。(^表示以什么開頭, 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。

更好的序列批量提取見 awk的使用。

模式匹配

grep強大的功能是支持正則匹配,默認使用基本正則表達式,-E使用擴展的正則表達式,-P使用perl格式的正則表達式。

比如想去掉文件中所有的空行grep -v ‘^$’ ehbio.fa >ehbio.clean.fa;

從公眾號文章中搜索跟文章寫作相關的文章 grep ‘writ.*’ *.md (可以匹配write, writing等字);

正則表達式就比較多了,具體可以看http://mp.weixin.qq.com/s/4lUiZ60-aXLilRk9–iQhA。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13371.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13371.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13371.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

對稱加密算法的應用場景

隨著信息技術的飛速發展,數據安全成為了至關重要的議題。在保護數據傳輸和存儲的過程中,加密算法扮演著不可或缺的角色。其中,對稱加密算法,由于其高效性和易用性,被廣泛應用于各種場景中。本文將探討對稱加密算法的主…

Kubernets多master集群構建負載均衡

前言 在構建 Kubernetes 多 Master 集群時,實現負載均衡是至關重要的一環。通過多臺 Master 節點配合使用 Nginx 和 Keepalived 等工具,可以有效提高集群的可靠性和穩定性,確保系統能夠高效運行并有效應對故障。接下來將介紹如何配置這些組件…

Kotlin 編譯器和工具鏈:深入解析與實踐案例

Kotlin 編譯器和工具鏈是構建 Kotlin 項目的核心組件,它們負責將 Kotlin 代碼轉換為可在 JVM 或 JavaScript 環境中運行的代碼。本文將詳細介紹 Kotlin 編譯器和工具鏈的工作原理、使用方法,以及在實際開發中的應用案例。 1. 引言 Kotlin 作為一種現代…

JAVA GUI 植物大戰僵尸

公眾號:編程驛站 沒有做太多封裝。難免有冗余。源碼全部放出,有興趣者可以再改之。 1. pea 類 package com.hm;import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOExce…

物業水電抄表系統的全面解析

1.系統概述 物業水電抄表系統是現代物業管理中的重要組成部分,它通過自動化的方式,實時監控和記錄居民或企業的水電使用情況,極大地提高了工作效率,降低了人工抄表的錯誤率。該系統通常包括數據采集、數據傳輸、數據分析和數據展…

鏈表OJ題(移除鏈表元素,反轉鏈表,分割鏈表,環形鏈表(是否成環問題),鏈表中間節點(快慢指針講解),環形鏈表(找入環節點))“題目來源力扣附帶題目鏈接”

目錄 1.移除鏈表元素 2.反轉鏈表 2.1三指針法 2.2頭插法 3.分割鏈表 4.鏈表的中間節點(快慢指針) 4.1快慢指針 4.2求鏈表的中間節點 5.環形鏈表 5.1環形鏈表是否成環 5.2環形鏈表入環節點 5.3入環節點推論的不完備性說明 1.移除鏈表元素 移除…

Microsoft Threat Modeling Tool 使用(三)

Boundary(邊界) 本文介紹信任邊界,基于 SDL TM Knowledge Base (Core) 模版,這是一個通用的威脅建模模板,非常適合初學者和大多數威脅建模需求。 這些邊界(Boundary)在微軟威脅建模工具中用于表…

Java多線程與高并發

1、什么是進程?什么是線程? 進程:進程是程序的基本執行實體;另外一種解釋是進程是一個應用程序(1個進程是一個軟件)。 線程:線程是操作系統能夠進行運算調度的最下單位。它被包含在進程之中,是進程中的實際運作單位;是一個進程中的執行場景/執行單元。 注意:。一個進…

uniapp實現列表拖拽排序+滑動刪除功能

此篇代碼在原插件基礎進行了bug修改與滑動功能的新增 原插件地址 HM-dragSorts.vue組件使用 HM-dragSorts.vue <template><view class""><view class"HM-drag-sort" :style"{height: ListHeightrpx,background-color: listBackground…

魔法方法介紹

【一】什么是魔法方法 在類內部達到指定條件會自動觸發的方法 【二】魔法方法 # 【1】__init__ &#xff1a; 實例化類得到對象的時候會自動觸發 class Student(object):def __init__(self):print(f"實例化類的時候觸發") # 實例化類的時候觸發 ? s Student…

在云服務器上運行StyleGAN3生成偽樣本

首先是傳入數據&#xff0c;這里我們不做贅述。 對于數據格式的裁剪&#xff0c;可以通過以下代碼進行&#xff1a; from glob import glob from PIL import Image import os from tqdm import tqdm from tqdm.std import trangeimg_path glob(r"C:\Users\Administrato…

【Oracle篇】rman物理備份工具的基礎理論概述(第一篇,總共八篇)

??博主介紹??&#xff1a; ?又是一天沒白過&#xff0c;我是奈斯&#xff0c;DBA一名? ???擅長Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式數據倉庫)、Linux&#xff0c;也在擴展大數據方向的知識面??? ??????大佬們都喜歡靜靜的看文章&am…

嵌入式是大坑的說法,是否與學生的信息不對稱有關?

在開始前我有一些資料&#xff0c;是我根據網友給的問題精心整理了一份「嵌入式的資料從專業入門到高級教程」&#xff0c; 點個關注在評論區回復“888”之后私信回復“888”&#xff0c;全部無償共享給大家&#xff01;&#xff01;&#xff01; 目前也算是在搞嵌入式&#…

【深度學習】時空圖卷積網絡(STGCN),預測交通流量

論文地址&#xff1a;https://arxiv.org/abs/1709.04875 Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 文章目錄 一、摘要二、數據集介紹美國洛杉磯交通數據集 METR-LA 介紹美國加利福尼亞交通數據集 PEMS-BAY 介紹美國…

Cocktail for Mac 激活版:一站式系統優化與管理神器

Cocktail for Mac是一款專為Mac用戶打造的系統優化與管理工具&#xff0c;憑借其強大的功能和簡便的操作&#xff0c;贏得了廣大用戶的喜愛。這款軟件集系統清理、修復和優化于一身&#xff0c;能夠幫助用戶輕松解決Mac系統中的各種問題&#xff0c;提高系統性能。 Cocktail fo…

Leetcode-有效的括號(帶圖)

20. 有效的括號 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/valid-parentheses/ 題目 給定一個只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判斷字符串是否有效。 有效字符串需滿足&…

在做題中學習(59):除自身以為數組的乘積

238. 除自身以外數組的乘積 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;前綴積和后綴積 思路&#xff1a;answer中的每一個元素都是除自己以外所有元素的和。那就處理一個前綴積數組和后綴積數組。 而前綴積(f[i])是&#xff1a;[0,i-1]所有元素的乘積 后綴…

如何利用香港多IP服務器實現定制化的網絡服務

如何利用香港多IP服務器實現定制化的網絡服務 在當今數字化快速發展的時代&#xff0c;企業對于網絡服務的需求日益增加&#xff0c;尤其是對于定制化和高度可調整的網絡服務的需求。香港&#xff0c;作為國際金融中心和數據中心的樞紐&#xff0c;提供了優越的網絡基礎設施和…

什么是蜜罐,在當前網絡安全形勢下,蜜罐能提供哪些幫助

在當前的互聯網時代&#xff0c;網絡安全威脅日益嚴峻&#xff0c;攻擊手段層出不窮。為了應對這些威脅&#xff0c;網絡安全專家們不斷探索新的防御手段&#xff0c;在過去的幾年里&#xff0c;一種更加積極主動的網絡安全方法正在興起。蜜罐技術便是這樣一種備受矚目的主動防…

【教學類-55-05】20240516圖層順序挑戰(三格長條紙加黑色邊框、3*3、5張,不重復7186張,9坐標點顏色哈希值去重、保留5色)

背景需求&#xff1a; 前期測試了4*4框格種的8種顏色&#xff0c;隨機抽取7種&#xff0c;隨機排列圖層&#xff0c;去掉相同的圖片、保留7種顏色的圖片&#xff0c;最后獲得5400張樣圖 【教學類-55-04】20240515圖層順序挑戰&#xff08;四格長條紙加黑色邊框、4*4、7張&…