- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
在 2025 年的 Linux 運維領域,容器化技術雖已普及,但掌握核心 Linux 命令仍是開發者的必備技能。本文結合藍隊云工程師的實戰經驗,系統梳理了文本管理、搜索查找、內存監控、磁盤管理及 MySQL 操作等 7 大類高頻命令,涵蓋 cat/tail 高效查看日志、find 正則精準搜索、grep 文本過濾、free/top 實時監控等場景,幫助大家在開發與運維中實現降本增效。
一、前言
作為開發人員及運維人員,在日常開發、運維過程中經常用到Linux系統,熟練掌握一些基本的Linux命令,對于提升工作效率、高效工作很有必要(雖然目前容器化技術日益普及,可能并不一定需要直接操作Linux)。這篇文章結合藍隊云技術人員的工作經驗及之前整理的筆記,專門對Linux系統使用過程中日常開發、維護經常用到的命令作一總結。
二、文本管理命令
查看文件內容
1、cat,用法為:
cat 文件名
2、tail
動態打印文件末尾的100行內容,在Linux系統中查看實時日志時常用到該命令。
tail -100f 文件名
三、搜索/查找命令
1、find
查找命令。一些常見的用法如下。
示例1:Linux中刪除指定目錄下中包含log的所有文件,排除bbbbb-2021-06-30-17.log這個文件,然后刪除找到的文件
find /export/xxx/aaa/ -name '*log*'| grep -v bbbbb-2021-06-30-17.log |xargs sudo rm -rf
find /export/xxxx/ -name '*log*'| grep -v test-2021-06-26-11.log |grep -v /export/xxxx/logs |xargs sudo rm -rf
示例2:
輸入:
find ./libs/ -name \\\\\\\\*kafka_\\\\\\\\* | head -1 | grep -o '\\\\\\\\kafka[^\\\\\\\\n]*'
輸出結果:kafka_2.12-1.0.0-javadoc.jar.asc
find dir -name
就是在dir目錄下根據名稱去查找,這地方使用的是\\\\\\\\ 也是 “kafka_”,就是中間包含關鍵字的名稱文件,然后管道之后是head -n,就是顯示查詢結果的前n行,之后再管道,再grep -o,就是 — 只輸出匹配的具體字符串,匹配行中其他內容不會輸出,比如沒有這個grep -o的結果如下:
find ./libs/ -name "*kafka_*" |head -3./libs/kafka_2.12-1.0.0-javadoc.jar.asc./libs/kafka_2.12-1.0.0-test-sources.jar.asc./libs/kafka_2.12-1.0.0-test.jar
示例3:模糊搜索
find /usr/local/nginx/logs/access/host/ -name '*.access.log.log'|xargs rm -rf
以上命令表示模糊搜索/usr/local/nginx/logs/access/host/目錄下文件名中包含access.log.log的所有文件:find /usr/local/nginx/logs/access/host/ -name '*.access.log.log'
查找文件名中包含某字符(如"elm")的文件:
find /home/lijiajia/ -name '*elm*'
find /home/lijiajia/ -name 'elm*'
find /home/lijiajia/ -name '*elm'
示例4:正則表達式:注意:. 表示普通字符,并不是java正則表達式中的任意字符。
sudo find ./ -name "*.log.*" -type f | xargs sudo rm -rf
sudo find ./ -name "*.log" -type f | xargs sudo rm -rf
示例5:
find /tmp -name core -type f -print | xargs /bin/rm -f
find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
find . -type f -exec file '{}' \\\\\\\\;
find $HOME -mtime 0
find /usr/local/src/all2 -name aaa.txt -type f -print | xargs /bin/cat
以上命令表示將find命令的搜索結果作為后面命令的輸入
示例6:
find / -name docker.service -type f
示例7:
查找指定目錄下含有指定詞的文件
find /export/mulu/ -name "*screen*.jar" -print
在/dir目錄及其子目錄下面查找名字為filename的文件
find /dir -name filename
在當前目錄及其子目錄(用“.”表示)中查找任何擴展名為“c”的文件
find . -name "*.c"
在 etc 目錄下,查找大寫字母開頭的 txt 文件
find /etc -name "[A-Z]*.txt" -print
在當前目錄下查找不是 out 開頭的 txt 文件
find . -name "out*" -prune -o -name "*.txt" -print
在當前目錄除 git 子目錄外查找 txt 文件
find . -path "./git" -prune -o -name "*.txt" -print找出某個文件的所有硬鏈接,ls 命令 -i 選項可以查看文件的inode號
ls -i 1.txt # 138956 1.txt
find . -num 138956
搜索文件時使用 -iname 參數可以忽略文件名稱大小寫
2、locate命令
1)功能介紹
locate命令其實是“find -name”的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數據庫(/var/lib/locatedb),這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,并且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。
2)使用實例
搜索etc目錄下所有以sh開頭的文件:
locate /etc/sh
搜索用戶主目錄下,所有以m開頭的文件,并且忽略大小寫:
locate -i ~/m
四、文本搜索命令grep
grep應用示例:
ls -l | grep '^a'
通過管道過濾ls-l輸出的內容,只顯示以a開頭的行。
grep 'test' d*
顯示所有以d開頭的文件中包含test的行。
grep 'test' aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
grep '[a-z]' aa
顯示所有包含每個字符串至少有5個連續小寫字符的字符串的行。
grep 'w(es)t.*' aa
如果west被匹配,則es就被存儲到內存中,并標記為1,然后搜索任意個字符(.),這些字符后面緊跟著另外一個es(),找到就顯示該行。如果用egrep或grep-E,就不用""號進行轉義,直接寫成’w(es)t.'就可以了。
grep -i pattern files
不區分大小寫的搜索。默認情況區分大小寫
grep -l pattern files
只列出匹配的文件名
grep -L pattern files
列出不匹配的文件名
grep -w pattern files
只匹配整個單詞,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)
grep -C number pattern files
匹配的上下文分別顯示[number]行
grep pattern1 | pattern2 files
顯示匹配pattern1或pattern2的行
grep pattern1 files | grep pattern2
顯示既匹配pattern1又匹配pattern2的行。
五、內存查看命令
在Linux系統中常用的查看內存信息的命令有top、free。
1、top
2、free,每隔2秒顯示一次當前內存信息。
free -h -s 2該命令的結構列說明:
第一列
Mem內存的使用信息
Swap交換空間的使用信息
第一行
total系統總的可用物理內存大小
used已被使用的物理內存大小
free還有多少物理內存可用
shared被共享使用的物理內存大小
buff/cache被buffer和cache使用的物理內存大小
available還可以被應用程序使用的物理內存大小
其中有兩個概念需要注意:free與available的區別
free是真正尚未被使用的物理內存數量。
available是應用程序認為可用內存數量,available=free+buffer+cache(注:只是大概的計算方法)
Linux為了提升讀寫性能,會消耗一部分內存資源緩存磁盤數據,對于內核來說,buffer和cache其實都屬于已經被使用的內存。但當應用程序申請內存時,如果free內存不夠,內核就會回收buffer和cache的內存來滿足應用程序的請求。
六、磁盤信息查詢常用命令
查看磁盤空間占用情況
df -hT
查看當前目錄下的文件及文件夾所占大小
du -h --max-depth=1 ./*
七、Linux下操作MySQL
Linux下導入導出 MySQL 數據庫表結構數據
1、導出完整數據:表結構+數據
mysqldump -hIP -Pport -u數據庫用戶名 -pdatabasePass databaseName> dump.sql
2、導出數據庫表結構:增加一個’-d’參數,忽略數據,只導出結構。
mysqldump -h localhost -u數據庫用戶名 -pXXXXX -d database > dump.sql
3、導出單個數據表結構和數據
mysqldump -h localhost -u數據庫用戶名 -pXXXXX database table > dump.sql
4、導出單個數據表結構(不包含數據)
mysqldump -h localhost -u數據庫用戶名 -pXXXXX -d database table > dump.sql
本文通過典型示例與原理解析,構建了 Linux 命令的實用知識圖譜。無論是實時日志分析、復雜文件清理,還是數據庫遷移操作,文中提供的命令組合與技巧均可直接復用。建議收藏本文并定期復習,持續提升 Linux 操作的專業性與高效性。藍隊云官網上擁有完善的技術支持庫可供參考,大家可自行查閱,更多技術問題,也可以直接咨詢。同時,藍隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。更多技術知識,藍隊云期待與你一起探索,助力你在 Linux 運維之路上穩步前行。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP