帮助中心 >  行业资讯 >  云计算 >  Linux系统常用命令用法详解

Linux系统常用命令用法详解

2025-03-18 09:40:23 730

在 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 运维之路上稳步前行。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: