盤(pán)點(diǎn)一些常用的Linux小技巧
1、查看文件校驗(yàn)值
在文件進(jìn)行拷貝或者進(jìn)行傳輸?shù)臅r(shí)候,可能有損壞或者被修改的可能,這時(shí)候可以查看校驗(yàn)值來(lái)確認(rèn)一下。比如我們平時(shí)工作需要用到其它組給我們提供的一些對(duì)接的程序,每次程序運(yùn)行不符合他們的預(yù)期的時(shí)候,我們都會(huì)對(duì)一下兩邊的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)有兩種算法,我們可以通過(guò)參數(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吧,但我覺(jué)得有時(shí)候locate更快一些,所以我一般都會(huì)先使用locate。
locate 與 find 不同: find 是去硬盤(pán)找,locate 只在 /var/lib/slocate 資料庫(kù)中找。locate 的速度比 find 快,它并不是真的查找,而是查數(shù)據(jù)庫(kù)。
有些系統(tǒng)可能不帶有l(wèi)ocate,需要自己安裝。比如,Ubuntu可以輸入如下命令進(jìn)行安裝:
apt-get update
apt-get install mlocate
locate查找文件的命令很簡(jiǎn)單:
lcoate file_name
比如:

(2)find
find命令可以用名字、類(lèi)型、所屬人、大小等來(lái)進(jìn)行搜索。
搜索文件基本語(yǔ)法:
find path -option file_name
如使用名字來(lái)搜索stdio.h文件:
find / -name stdio.h

3、命令行編輯技巧
我們?cè)诮K端里誤輸入了一些比較長(zhǎng)的內(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)移到開(kāi)頭處。
- 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)程過(guò)多,不利于我們查看某些進(jìn)程的運(yùn)行情況,如:

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

這就簡(jiǎn)潔多了。
注意:
這里的 `號(hào) 并不是單引號(hào)!!!
這里的 `號(hào) 并不是單引號(hào)!!!
這里的 `號(hào) 并不是單引號(hào)!!!
這個(gè)符號(hào)在鍵盤(pán)上感嘆號(hào)!鍵的左邊。
查看多個(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信息保存到文件中,有如下兩種方法。這三種方法也在之前的文章里寫(xiě)過(guò),這里再簡(jiǎn)單提一下:
(1)tee
tee工具 用于將數(shù)據(jù)重定向到文件,另一方面還可以提供一份重定向數(shù)據(jù)的副本作為后續(xù)命令的stdin。簡(jiǎn)單的說(shuō)就是 把數(shù)據(jù)重定向到給定文件和屏幕上 。
命令:
executable_file | tee log_file
演示如下:

(2)script
script工具 是一個(gè)非常使用的工具,可以把輸出到終端的信息記錄下來(lái)。使用步驟如:
- 輸入 script log.txt 命令開(kāi)始保存終端輸出的信息 ,其中l(wèi)og.txt為需要寫(xiě)入的log文件,可隨意命名。
- 輸入 exit 退出保存。
演示如下:

(3)使用一些可以保存log的終端工具
一些終端工具具有記錄日志的功能,比如T Terminator終端 :

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

9、查看ELF文件頭
ELF文件有幾種,可查看往期文章 ELF文件解析 進(jìn)行了解。之前剛來(lái)的一位應(yīng)屆生,編譯了一份程序,編譯沒(méi)報(bào)錯(cuò),但是一直運(yùn)行不起來(lái)。然后在PC上運(yùn)行有問(wèn)題,報(bào)錯(cuò)如:
無(wú)法執(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


除此之外,通過(guò)file命令也可以查看到文件的一些信息:

10、文本文件查看
文本文件查看我們一般使用cat命令,但除了cat命令之外,還有其它幾個(gè)實(shí)用的命令,下面依次來(lái)介紹:
(1)cat命令
cat命令常常用于查看內(nèi)容較少的文件。很多人把這個(gè)命令叫做小貓咪命令,但cat其實(shí)是 concatenate(連續(xù)) 的縮寫(xiě),即連續(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命令相反,是從文件末尾開(kāi)始顯示。
(3)more命令
more命令適用于查看內(nèi)容較多的文件。因?yàn)樗梢詫?shí)時(shí)顯示百分比以提示現(xiàn)在已經(jīng)閱讀了多少內(nèi)容。
命令格式為:
more [參數(shù)選項(xiàng)] [文件]
如:

可以使用 空格鍵 或者 回車(chē)鍵 往下翻頁(yè)查看后面的內(nèi)容。
(4)less命令
less也適用于查看內(nèi)容較多的文件。less比more更為靈活,因?yàn)閘ess可以往上、往下翻頁(yè)。按下鍵盤(pán)上 PgUp 鍵可以往上翻頁(yè),按下 PgDn 可以往下翻頁(yè)。但是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í)顯示行號(hào),與 cat -n 命令的作用差不多:

11、設(shè)置LD_LIBRARY_PATH
LD_LIBRARY_PATH 是Linux / Unix中預(yù)定義的環(huán)境變量,它設(shè)置鏈接器在鏈接動(dòng)態(tài)庫(kù)/共享庫(kù)時(shí)應(yīng)該查看的路徑。有時(shí)候需要把當(dāng)前路徑加到LD_LIBRARY_PATH中,如:
export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH
以上就是本次分享的一些實(shí)用的小技巧。
























