當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式大雜燴
[導(dǎo)讀]大家好,我是ZhengN。本次給大家分享一些Linux的實(shí)用小技巧。1、查看文件校驗(yàn)值在文件進(jìn)行拷貝或者進(jìn)行傳輸?shù)臅r(shí)候,可能有損壞或者被修改的可能,這時(shí)候可以查看校驗(yàn)值來確認(rèn)一下。比如我們平時(shí)工作需要用到其它組給我們提供的一些對接的程序,每次程序運(yùn)行不符合他們的預(yù)期的時(shí)候,我們都...

大家好,我是ZhengN。本次給大家分享一些Linux的實(shí)用小技巧。

1、查看文件校驗(yàn)值

在文件進(jìn)行拷貝或者進(jìn)行傳輸?shù)臅r(shí)候,可能有損壞或者被修改的可能,這時(shí)候可以查看校驗(yàn)值來確認(rèn)一下。

比如我們平時(shí)工作需要用到其它組給我們提供的一些對接的程序,每次程序運(yùn)行不符合他們的預(yù)期的時(shí)候,我們都會(huì)對一下兩邊的md5校驗(yàn)值。

生成文件的校驗(yàn)值的方法有很多種,常用的有md5sum校驗(yàn)、crc校驗(yàn)、sum校驗(yàn)等。

命令分別為:

md5sum?file_name
cksum?file_name
sum?算法參數(shù)?file_name
例如:

我們以一個(gè)test.txt文件為例:

  • md5sum校驗(yàn)
md5sum?test.txt
  • crc校驗(yàn)
cksum?test.txt
  • sum校驗(yàn)
sum校驗(yàn)有兩種算法,我們可以通過參數(shù)進(jìn)行配置:

-r:表示使用system v算法。

-s:表示使用BSD算法。

我們不進(jìn)行配置時(shí),默認(rèn)用的是system v算法。

sum?-r?test.txt
sum?-s?test.txt

2、查找文件位置

(1)locate

查找文件大家一般都習(xí)慣用find吧,但我覺得有時(shí)候locate更快一些,所以我一般都會(huì)先使用locate。

locate 與 find 不同: find 是去硬盤找,locate 只在 /var/lib/slocate 資料庫中找。locate 的速度比 find 快,它并不是真的查找,而是查數(shù)據(jù)庫。

有些系統(tǒng)可能不帶有l(wèi)ocate,需要自己安裝。比如,Ubuntu可以輸入如下命令進(jìn)行安裝:

apt-get?update
apt-get?install?mlocate
locate查找文件的命令很簡單:

lcoate?file_name
比如:

(2)find

find命令可以用名字、類型、所屬人、大小等來進(jìn)行搜索。

搜索文件基本語法:

find?path?-option?file_name
如使用名字來搜索stdio.h文件:

find?/?-name?stdio.h

3、命令行編輯技巧

我們在終端里誤輸入了一些比較長的內(nèi)容:

LinuxZn@LinuxZn:~$?dsfdsfdddddddddddddddddddddddddddddddddddfsgadgdsgasdgsdhfdkshfkjdshflksdhfkldshfkj
怎么比較快的刪除掉呢?瘋狂地按退格鍵當(dāng)然可以達(dá)到目的。但是有更快速的方法:

輸入快捷鍵 ctrl u 即可把光標(biāo)前面的內(nèi)容全刪掉。除此之外,還有如下幾個(gè)實(shí)用且常用的快捷鍵:

  • ctrl k:把光標(biāo)后面的內(nèi)容全刪掉。

  • ctrl a:光標(biāo)移到開頭處。

  • ctrl e:光標(biāo)移動(dòng)到末尾處。

除此之外,命令行還有很多實(shí)用常用、實(shí)用不常用的快捷方式,感興趣的小伙伴可以自己去學(xué)習(xí)。

4、查看某個(gè)進(jìn)程的pid

命令:

pidof?process_name
如:

5、查看某些進(jìn)程的一些運(yùn)行情況

top命令可以查看進(jìn)程的一些信息,但是系統(tǒng)運(yùn)行的進(jìn)程過多,不利于我們查看某些進(jìn)程的運(yùn)行情況,如:

這時(shí)候我們可以通過如下命令查看指定進(jìn)程的運(yùn)行情況,例如:

查看kcalc進(jìn)程的情況,命令:

top?-p?`pidof?kcalc`
這就簡潔多了。

注意:

這里的"`號"并不是單引號?。?!

這里的"`號"并不是單引號?。?!

這里的"`號"并不是單引號!??!

這個(gè)符號在鍵盤上感嘆號!鍵的左邊。

查看多個(gè)進(jìn)程,如:

top?-p?`pidof?kcalc`?-p?`pidof?test_x86`

6、殺死進(jìn)程

(1)使用kill

先使用pidof查看進(jìn)程的pid,然后再使用kill命令:

kill?-9?process_pid

(2)使用killall

使用killall,命令:

killall?process_name

7、終端輸出的log同時(shí)保存到文件

有時(shí)候我們需要把終端實(shí)時(shí)輸出的log信息保存到文件中,有如下兩種方法。這三種方法也在之前的文章里寫過,這里再簡單提一下:

(1)tee

tee工具 用于將數(shù)據(jù)重定向到文件,另一方面還可以提供一份重定向數(shù)據(jù)的副本作為后續(xù)命令的stdin。簡單的說就是 把數(shù)據(jù)重定向到給定文件和屏幕上 。

命令:

executable_file?|?tee?log_file
演示如下:

(2)script

script工具 是一個(gè)非常使用的工具,可以把輸出到終端的信息記錄下來。使用步驟如:

  • 輸入 ?script log.txt 命令開始保存終端輸出的信息 ?,其中l(wèi)og.txt為需要寫入的log文件,可隨意命名。

  • 輸入 exit 退出保存。

演示如下:

(3)使用一些可以保存log的終端工具

一些終端工具具有記錄日志的功能,比如T Terminator終端

8、查看程序依賴的動(dòng)態(tài)庫

有些程序依賴一些動(dòng)態(tài)庫,可以通過ldd命令查看依賴的動(dòng)態(tài)庫。命令:

ldd?executable_file

9、查看ELF文件頭

ELF文件有幾種,可查看往期文章 ?ELF文件解析 進(jìn)行了解。之前剛來的一位應(yīng)屆生,編譯了一份程序,編譯沒報(bào)錯(cuò),但是一直運(yùn)行不起來。然后在PC上運(yùn)行有問題,報(bào)錯(cuò)如:

無法執(zhí)行二進(jìn)制文件:?可執(zhí)行文件格式錯(cuò)誤
原因是他那份工程里設(shè)置了使用交叉編譯器進(jìn)行編譯,但是他卻在PC運(yùn)行,所以就報(bào)錯(cuò)了。

我們可以可執(zhí)行文件的ELF頭,ELF頭包含了很多信息,其中就包括有系統(tǒng)架構(gòu)這一項(xiàng)。命令如:

readelf?-h?elf_file
除此之外,通過file命令也可以查看到文件的一些信息:

10、文本文件查看

文本文件查看我們一般使用cat命令,但除了cat命令之外,還有其它幾個(gè)實(shí)用的命令,下面依次來介紹:

(1)cat命令

cat命令常常用于查看內(nèi)容較少的文件。很多人把這個(gè)命令叫做小貓咪命令,但cat其實(shí)是 concatenate(連續(xù)) 的縮寫,即連續(xù)顯示文本內(nèi)容。命令格式為:

cat?[參數(shù)選項(xiàng)]?[文件]
如:

cat?-n?/etc/profile
其中,加上參數(shù) ?-n ?用可以顯示行數(shù)。cat的更多的參數(shù)選項(xiàng)可以輸入 man cat 進(jìn)行查看。以下列舉的其他命令的詳細(xì)介紹也可以輸入 man 命令 進(jìn)行查看。

(2)tac命令

tac命令的正好與cat命令相反,是從文件末尾開始顯示。

(3)more命令

more命令適用于查看內(nèi)容較多的文件。因?yàn)樗梢詫?shí)時(shí)顯示百分比以提示現(xiàn)在已經(jīng)閱讀了多少內(nèi)容。

命令格式為:

more?[參數(shù)選項(xiàng)]?[文件]
如:

可以使用 空格鍵 或者 回車鍵 往下翻頁查看后面的內(nèi)容。

(4)less命令

less也適用于查看內(nèi)容較多的文件。less比more更為靈活,因?yàn)閘ess可以往上、往下翻頁。按下鍵盤上 ?PgUp ?鍵可以往上翻頁,按下 ?PgDn ?可以往下翻頁。但是less命令不會(huì)實(shí)時(shí)顯示當(dāng)前閱讀的百分比。

命令格式為:

less?[參數(shù)選項(xiàng)]?[文件]

(5)head命令

head命令用于查看文件的前n行。如使用命令

head?-n?20?/etc/profile
查看/etc目錄下profile文件的前20行內(nèi)容:

(6)tail命令

tail命令與head命令相反,tail命令用于查看文件后n行內(nèi)容。如:

(7)nl命令

nl命令可以顯示內(nèi)容的同時(shí)顯示行號,與 cat -n 命令的作用差不多:

11、設(shè)置LD_LIBRARY_PATH

LD_LIBRARY_PATH 是Linux / Unix中預(yù)定義的環(huán)境變量,它設(shè)置鏈接器在鏈接動(dòng)態(tài)庫/共享庫時(shí)應(yīng)該查看的路徑。有時(shí)候需要把當(dāng)前路徑加到LD_LIBRARY_PATH中,如:

export?LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH
以上就是本次分享的一些實(shí)用的小技巧。

大家日常工作、學(xué)習(xí)過程中有用過哪些Linux實(shí)用的小技巧呢?歡迎留言討論


往期推薦:

一個(gè)小巧、開源的信號發(fā)生器,酷!

盤點(diǎn)一些嵌入式實(shí)時(shí)系統(tǒng),你用過哪些?

在公眾號聊天界面回復(fù)1024,可獲取嵌入式資源;回復(fù)?m?,可查看文章匯總。


點(diǎn)擊閱讀原文,查看更多分享。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉