溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

我常用的一些linux命令小結(jié)

發(fā)布時(shí)間:2020-10-08 12:18:54 來源:腳本之家 閱讀:176 作者:xindoo 欄目:服務(wù)器

之前做過兩年的運(yùn)維,用過很多命令,深切體會(huì)到某些linux命令熟練掌握后對(duì)效率提升有多大。舉個(gè)簡(jiǎn)單的例子,在做了研發(fā)后經(jīng)常會(huì)有跑一些數(shù)據(jù),對(duì)于結(jié)果數(shù)據(jù)的處理,我們的產(chǎn)品同學(xué)一般都習(xí)慣于用excel做統(tǒng)計(jì),把數(shù)據(jù)復(fù)制到excel里,然后數(shù)據(jù)分列,排序………… 最后得出某些簡(jiǎn)單的結(jié)論,我只需要cat, sort, uniq, awk, grep 這幾個(gè)命令揮手間完成相同的操作。

這里我總結(jié)下我工作這幾年用過的一些命令,當(dāng)然,這里就不提那些vim cd ls mv cp 這種簡(jiǎn)單的命令了,如果你都不會(huì)這些命令的話,建議你先學(xué)習(xí)下。這里命令很多,我只簡(jiǎn)單列出幾個(gè)我常用的參數(shù)。其實(shí)很多命令我也用的不是特別多,這篇文章我也只是希望能讓大家知道有這樣一個(gè)工具,但具體用如果想繼續(xù)深入了解的話建議查看下手冊(cè),部分比較命令我也列出了有些參考資料。

服務(wù)器運(yùn)行狀態(tài)相關(guān)命令

ps

查看系統(tǒng)進(jìn)程線程,我一般都是用這個(gè)命令查看進(jìn)程pid的,然后用pid做更深入的排查。

基本用法

ps -aux 查看所有進(jìn)程
ps -T -p ${pid} 查看某個(gè)進(jìn)程的線程

參考資料
10個(gè)重要的Linux ps命令實(shí)戰(zhàn)

pstree

查看系統(tǒng)進(jìn)程樹,他可以把各個(gè)進(jìn)程之間的關(guān)系用樹形結(jié)構(gòu)標(biāo)識(shí)出來。

基本用法
pstree

top

查看系統(tǒng)進(jìn)程線程運(yùn)行情況,包裹資源的使用情況,系統(tǒng)負(fù)載等。我的用法是看下服務(wù)器上負(fù)載是否很高,然后看具體是哪個(gè)進(jìn)程,哪個(gè)線程占用cpu比較多。

基本用法
top 列出所有線程負(fù)載信息
top -H 列出所有線程的負(fù)載信息
top -H -p ${pid} 列出某個(gè)pid下所有線程的負(fù)載信息

free

查看內(nèi)存及使用情況

基本用法
free

文件操作相關(guān)

cat

我都是用這個(gè)命令查看配置文件,或者是日志文件,但是有點(diǎn)需要注意,cat命令會(huì)把整個(gè)文件輸出到終端了,如果文件內(nèi)容非常多,建議使用grep進(jìn)行過濾,或者直接用less或more命令。

基本用法
cat file.txt

tail
查看某個(gè)文件的尾部,或者查看標(biāo)準(zhǔn)出入的最末尾,默認(rèn)值顯示10行,可以用-n參數(shù)來指定輸出多少行。

基本用法
tail -n 100 file.txt 輸出最末尾的100行
tail -f file.txt 隨著文件新增,持續(xù)輸出新增的內(nèi)容,一般用來看實(shí)時(shí)日志

head

和tail命令很相似,不過head是輸出頭部?jī)?nèi)容,個(gè)人感覺head遠(yuǎn)沒有tail命令用的多。

基本用法
head -n 100 file.txt 輸出最開始的100行

more

也是用來查看文件,但more命令只加載一屏的內(nèi)容,可以向下翻動(dòng),因?yàn)榧虞d的內(nèi)容少,所以比cat快多了。

基本用法
more file.txt

less
和more很像,但是可以上下翻動(dòng),感覺less和more只需要less就可以了,完全可以去掉more啊

基本用法
less file.txt

grep
這個(gè)是我非常常用的一個(gè)命令了,尤其是在問題排查的時(shí)候,需要用grep從大量的數(shù)據(jù)中篩選出一些我想要的。 grep也支持正則表達(dá)式匹配。

基本用法
grep "abc" file 從file中篩選出包含 abc的行。

awk

開頭我也說過,這個(gè)命令是我最常用的命令之一,比如在文件有多列的時(shí)候,我可以用awk輸出具體某幾列,或者做一些簡(jiǎn)單的統(tǒng)計(jì) 求和,求平均值啊,再或者做一下簡(jiǎn)單的數(shù)據(jù)格式化。

基本用法
cat data | awk '{print $1,$3,$5}' 輸出第1 3 5列,注意下標(biāo)是從1開始
cat data | awk '{ sum += $1 } END { print sum }' 對(duì)第一列求和
cat data | awk -F'\t' '{print $1,$3}' 把每行數(shù)據(jù)按tab分列,并輸出1 3列

參考資料
阮一峰 awk介紹

sort

對(duì)標(biāo)準(zhǔn)內(nèi)容做排序,

基本用法
cat file|sort 把file里的數(shù)據(jù)排序,注意是按字典序排的,如果想按數(shù)值排,需要能夠加-n參數(shù)
cat file|sort -k2 -n -r 按第二列 數(shù)值 倒序 排序,-k指定第幾列,-r是翻轉(zhuǎn)reverse的意思

uniq

對(duì)排序好的內(nèi)容去重,注意它只是把相鄰且相同的去重,所以如果想要全局去重,需要先用sort排序。

基本用法
cat file|sort|uniq 把file里的文件排序并去重
cat file|sort|uniq -c 把file里的文件排序并去重,且輸出每行出現(xiàn)的次數(shù)

wc

我都是用wc來數(shù)有多上行,其實(shí)wc不僅僅能數(shù)多少行,還可以數(shù)多少單詞,多少字符。

基本用法
wc -l file 數(shù)下file里有多少行
wc -w file 多少個(gè)單詞
wc -c file 多少個(gè)字節(jié)
wc -m file 多少個(gè)字符

參考資料
https://www.jb51.net/LINUXjishu/62056.html

sed

parallel

linux大部分命令都是單進(jìn)程的,這個(gè)命令可以讓其他命令多進(jìn)程執(zhí)行。

參考資料
15分鐘神器gnu parallel 入門觀止

scp

之前運(yùn)維大量機(jī)器的時(shí)候,通常需要批量修改某個(gè)配置文件,都是在一臺(tái)機(jī)器上改好,然后用scp腳本分發(fā)到其他機(jī)器上去的,大大提高效率。

基本用法
scp aaa.txt test@192.168.1.3:/tmp/ 把當(dāng)前目錄下的aaa.txt文件通過192.168.1.3上的test賬號(hào)放到/tmp目錄下
scp test@192.168.1.3:/tmp/aaa.txt . 和上一條相反

磁盤及IO

du

查看目錄大小

基本用法
du -h --max-depth=1 輸出最深1層的目錄,然后文件大小用人類可讀的方式,比如1K 234M 2G

df

查看磁盤大小和占用情況

基本用法
df -h 查看各個(gè)分區(qū)的大小和使用情況

iostat

查看磁盤的io狀態(tài)

iotop

可以類似于top目錄一樣,實(shí)時(shí)顯示各個(gè)進(jìn)程的io狀態(tài)。

find

查找文件,查找條件可以是文件名,文件日期,文件大小,很強(qiáng)大。 我們之前服務(wù)器上有個(gè)磁盤滿就強(qiáng)制刪除服務(wù)器某個(gè)目錄下大于1g,且時(shí)間大于2天,且文件名是*.log的文件,就是用find加xargs命令做的

基本用法

find /home/test -iname "test.txt 在/home/test/下找文件名為test.txt的文件,也支持通配符
find /home/test -isize +100M 查找/home/test下大于100M的文件

參考資料
wikipedia unix find

locate

定位某個(gè)具體文件的位置,locate命令要比find -name快得多,原因是它不搜索具體目錄,而是搜索一個(gè)數(shù)據(jù)庫/var/lib/mlocate/mlocate.db,這個(gè)數(shù)據(jù)庫會(huì)通過一個(gè)cron定時(shí)更新,所以有可能新建的文件會(huì)檢索不到。

基本用法
locate a.txt 定位a.txt的位置,如果系統(tǒng)中有多個(gè)a.txt,會(huì)全部顯示出來。

tree

可以看到樹狀目錄結(jié)構(gòu),

基本用法
tree -L 2 只顯示兩層樹狀結(jié)構(gòu)

網(wǎng)絡(luò)

ping

查看網(wǎng)絡(luò)是否通

基本用法
ping www.baidu.com

nc

netcat,可以用來看遠(yuǎn)程某個(gè)端口是否打開,功能很強(qiáng)大,但是我用到的不多。

基本用法
nc -z xindoo.me 443 檢測(cè)我服務(wù)器上的443端口是否開放(當(dāng)然是開的)

參考資料
linux nc命令介紹

route

查看和操作本機(jī)路由表

基本用法
route 列出本地路由表

參考資料
route命令

netstat

查看本機(jī)的網(wǎng)絡(luò)狀態(tài),可以看到端口占用情況和網(wǎng)絡(luò)鏈接情況。

基本用法
netstat -antp

traceroute

查看一個(gè)請(qǐng)求到目標(biāo)服務(wù)器所經(jīng)過的所有路由節(jié)點(diǎn),一般用來排查網(wǎng)絡(luò)問題。

基本用法
traceroute www.baidu.com

參考資料

netstat命令

iftop

查看實(shí)時(shí)網(wǎng)絡(luò)io情況

lsof

查看端口占用

dig

查看域名的信息,之前做運(yùn)維的時(shí)候,經(jīng)常需要驗(yàn)證某個(gè)域名解析改動(dòng)是否生效,因?yàn)橐话阋粋€(gè)域名會(huì)-A到多個(gè)ip上,用ping命令只能看到一個(gè)ip,這個(gè)時(shí)候我就會(huì)用dig來看域名解析信息了。

基本用法
dig www.baidu.com

參考資料
dig 命令介紹

curl

發(fā)起一個(gè)http請(qǐng)求,我一般都是用這個(gè)命令來驗(yàn)證服務(wù)是否能正常訪問的,它有獲取html源碼的功能。

基本用法
curl www.baidu.com
curl -I www.baidu.com 獲取請(qǐng)求baidu.com的請(qǐng)求頭

參考資料
curl的用法(英文)

wget

下載網(wǎng)絡(luò)上一個(gè)文件,基本上就是有個(gè)命令行版的下載工具了。

基本用法
wget xindoo.me/test.txt 把我服務(wù)器上test.txt文件下載到本地

其他

yum|apt install

很多時(shí)候服務(wù)器上沒有我們想要的工具,可以用這個(gè)命令安裝下,yum是Fedora和RedHat以及CentOS中的Shell前端軟件包管理器, apt是ubuntu平臺(tái)上的。

基本用法
yum install curl
apt install curl

man

這個(gè)命令是用來查看其它命令手冊(cè)的,可以看到具體某個(gè)命令的詳細(xì)作用,和具體參數(shù)。這個(gè)是個(gè)很重要的命令了,一般他會(huì)比各命令自帶的–help詳細(xì)很多。

基本用法
man curl 查看curl命令的手冊(cè)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI