Skip to content
🗂️ 文章分类: 系统  
🏷️ 文章标签: Linux  
📝 文章创建时间: 2022-10-20
🔥 文章最后更新时间:2026-02-03

[toc]

Linux常用命令

clear命令

clear 是 Linux/Unix 类操作系统中清空终端屏幕的核心命令,适用于所有主流发行版(Ubuntu、CentOS、Debian 等)、macOS 及 BSD 系统。

clear命令 执行后会清空当前终端(Terminal)的所有输出内容,将光标重置到屏幕左上角,让终端界面恢复为干净的初始状态,提升命令行操作的视觉整洁度。

bash
# 基本用法

clear

curl命令

curl 是模拟 HTTP 请求、检测服务状态的首选工具,轻量且功能强大。

基础语法

sh
# 基础语法
curl [选项] [URL]

检测服务是否存活(默认是GET 请求)

sh
# 检测服务端口是否通(最简版)
curl http://localhost:31001  # 访问服务根路径

# 检测接口
curl http://localhost:31001/xxx/xxx  

# 带详细输出(看响应码、响应头,排错用)
curl -v http://localhost:31001/xxx/xxx  # -v:verbose 详细模式

模拟不同 HTTP 请求(POST/PUT/DELETE)

sh
# 模拟 POST 请求(提交 JSON 数据,适配 RESTful 接口)

# -X 指定请求方法
# -H 指定请求头
# -d 指定请求体(JSON)
curl -X POST http://localhost:31001/api/user -H "Content-Type: application/json" -d '{"username":"test","password":"123456"}'  

# 模拟 PUT 请求(修改数据)
curl -X PUT http://localhost:31001/api/user/1 -H "Content-Type: application/json" -d '{"username":"test_update"}'

# 模拟 DELETE 请求(删除数据)
curl -X DELETE http://localhost:31001/api/user/1

tail命令

① 全称和作用

  • tail命令的全称即为tail(尾巴)。
  • 因此tail命令作用是显示后边几行。默认显示最后10行

② 命令参数

shell
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c <> 显示的字节数
-n <> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

使用tail命令案例

shell
$ tail aaa.txt      #默认显示最后10行
$ tail -5 aaa.txt   #显示aaa.txt文件最后5行的内容
$ tail -n +5 aaa.txt  #从第5行开始显示文件内容至文件末尾
$ tail -c 10 aaa.txt  #显示文件的最后10个字符

$ tail -f aaa.txt    # 此命令显示文件的最后 10 行。当aaa.txt文件有更新时,tail -f命令会实时显示。

$ tail -100f aaa.txt  # 显示最后100行文件内容,之后实时显示
  • 当文件内容有更新时。tail -f 命令会实时显示出来。
  • 若要结束tail -f命令,按CTRL + C组合键即可。

cat命令

① 全称和作用

  • cat(英文全拼:concatenate)命令:用于连接文件并打印到标准输出设备上。

cat 命令有3个作用:

  1. 一次显示整个文件
  2. 创建一个文件
  3. 将几个文件合并为一个文件

② 完整语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

③ 命令参数

-n 或 --number:从 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

cat命令实例

shell

# 显示整个文件内容
cat /etc/a.txt

# 创建b.txt文件
cat > b.txt

# 把 textfile1 的文档内容加上行号后,覆盖到 textfile2 这个文档里
# > 是覆盖
cat -n textfile1 > textfile2

# 把 textfile1 的文档内容加上行号后,附件加到 textfile2 这个文档末尾后
# >> 是附加
cat -n textfile1 >> textfile2

# 清空 /etc/a.txt 文档内容
cat /dev/null > /etc/a.txt

tail和cat的区别:

  1. cat显示文档的全部数据,是静态查看文件内容
  2. tail可以查看文档更新情况,可以动态查看文件内容

grep命令

① 全称和作用

  • grep的全程是:Global search Regular Expression and Print out the line (全局 搜索 正则表达式 和 打印出来)。
  • 作用:用正则表达式在文本中查找指定的字符串,类似于windows系统中用ctrl+F去查找一样。

② 完整语法结构

grep   [options]  [pattern]   file
命令   参数        匹配模式   文件

③ 命令参数

-i : 忽略大小写;
-o : 仅显示匹配到目标字符串;
-v : 显示不能被匹配到的字符串(反转);
-E : 支持使用扩展的正则表达式字符串;
-q : 静默模式,不输出任何信息
-n : 显示匹配行与行号
-c :只统计匹配行数
-w :只输出过滤的单词
-l :列出包含匹配项的文件名
-L :列出不包含匹配项的文件名

grep命令中常用到的正则表达式

表达式解释说明
^用于模式最左侧,如 “^yu” 即匹配以yu开头的单词
$用于模式最右侧,如 “yu$” 即匹配以yu结尾的单词
^$组合符,表示空行
``
.匹配任意一个且只有一个字符,不能匹配空行
  •   |	重匹配前一个字符连续出现0次或1次以上                      |
    

.* | 匹配任意字符 | ^.* | 组合符,匹配任意多个字符开头的内容 | .*$ | 组合符,匹配任意多个字符结尾的内容 | [^abc] | 匹配除了 ^后面的任意一个字符,a或b或c,[]内 ^ 表示取反操作 | [abc] | 匹配 [] 内集合中的任意一个字符,a或b或c,也可以写成 [ac] |

使用grep命令案例

自定义一个aaa.txt 的文件,内容如下

txt
aaa
bbb
ccc
##这是注释行1
##这是注释行2
shell
#从文件中输出注释行。
# "^#"匹配#开头
$ grep "^#" aaa.txt       

#从文件中输出注释行。-n显示匹配行与行号
$ grep -n "^#" aaa.txt    

# 找出文件中的非注释行,并且不是空行
# -v 反转的意思,| 并且的意思
$ grep  -v "^#" aaa.txt | grep  -v "^$"  

#从文件中输出以h开头的行,不区分大小写
$ grep -i "^h" aaa.txt    

#输出以txt结尾的行。显示匹配行与行号
$ grep -n "txt$" aaa.txt  

# 匹配文本中至少包含一个abc的行
$ grep -i ".abc" aaa.txt

用tail和grep命令查看日志

shell
tail -f xxx.log             # 实时刷新最新日志
tail -100f xxx.log          # 实时刷新最新的100行日志
tail -100f xxx.log | grep [关键字]    # 查找最新的一百行中与关键字匹配的行
tail -100f xxx.log | grep '2019-10-29 16:4[0-9]'    # 查找最新的100行中时间范围在2019-10-29 16:40-2019-10-29 16:49范围中的行
tail -1000f xxx.log | grep -A 5 [关键字] # 查看最新的1000行中与关键字匹配的行加上匹配行后的5行

telnet命令测试端口连通性

telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式和会话模式。

虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23)。

telnet命令用法

若端口未打开

shell
$ telnet 101.199.97.65 62715  #测试101.199.97.65服务器是否开通62715端口
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused

若端口已打开

shell
$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.

此时命令未退出窗口。 根据提示Escape character is '^]'.可知退出字符为'^]'(CTRL+])。 此时输入其它字符不能使其退出,CTRL+C都不行。输入CTRL+]后会自动执行,进入命令模式:

shell
^]
telnet>

此时再运行quit才会真正退出。

shell
telnet> quit
Connection closed.

查询系统内核和系统信息 命令

查询系统内核信息

bash
# 显示所有内核相关信息(内核版本、主机名、架构、系统名称等)
uname -a

# 其中仅显示内核版本(如 5.15.0-88-generic)
uname -r
# 仅显示系统架构(如 x86_64、aarch64)
uname -m
# 仅显示内核名称(Linux)
uname -s

查询系统发行版/版本信息

适用于查询 CentOS、Ubuntu、Debian 等发行版的具体版本。

bash
# 通用方式(主流 Linux 发行版都支持)
cat /etc/os-release
# 输出包含:NAME(发行版名称)、VERSION(版本号)、ID(如 ubuntu/centos)等

# CentOS/RHEL 专属
cat /etc/redhat-release
# 输出示例:CentOS Linux release 7.9.2009 (Core)

# Ubuntu/Debian 专属(需安装 lsb-release 包)
lsb_release -a # 显示所有相关信息
lsb_release -d # 显示发行版名称(如 CentOS、Ubuntu、Debian 等)
lsb_release -r # 显示发行版版本号(如 7.9.2009、20.04、11 等)

查询硬件信息

bash
# CPU 详细信息(核心数、架构、主频、缓存等)
lscpu

# 内存使用信息(-h 人类可读格式,如 GB/MB)
free -h

# 磁盘分区及使用情况(-h 人类可读)
df -h

# 块设备(磁盘、分区、挂载点)列表
lsblk

# PCI 设备(显卡、网卡、主板等)
lspci

# USB 设备
lsusb

# 硬件SMBIOS信息(需root,如主板、BIOS、内存插槽等)
dmidecode