盤點(diǎn)一些常用的Linux小技巧
1、查看文件校驗(yàn)值
在文件進(jìn)行拷貝或者進(jìn)行傳輸?shù)臅r(shí)候,可能有損壞或者被修改的可能,這時(shí)候可以查看校驗(yàn)值來確認(rèn)一下。比如我們平時(shí)工作需要用到其它組給我們提供的一些對接的程序,每次程序運(yùn)行不符合他們的預(yù)期的時(shí)候,我們都會對一下兩邊的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更快一些,所以我一般都會先使用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命令不會實(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í)用的小技巧。