DukeDuke
主页
项目文档
技术文档
  • 单机版
  • 微服务
  • 代办项目
  • 优鲜项目
项目管理
关于我们
主页
项目文档
技术文档
  • 单机版
  • 微服务
  • 代办项目
  • 优鲜项目
项目管理
关于我们
  • 技术文档

    • 网络原理

      • 交换机
      • 路由器
      • TCP/IP协议
      • HTTP 与 HTTPS
    • 软件架构

      • 什么是软件架构
      • 分层架构
      • 微服务架构
      • 事件驱动架构
      • 领域驱动设计(DDD)
      • 架构图
      • 高并发系统
    • Vue3

      • Vue3简介
      • Vue3响应式系统
      • Vue3组合式API
      • Vue3生命周期
      • Vue3模板语法
      • Vue3组件系统
      • Vue3 路由系统
      • Vue3 状态管理
      • Vue3 性能优化
      • Vue3 TypeScript 支持
      • Vue3 项目实战
      • VUE 面试题大全
      • Node.js 安装
    • JAVA

      • JVM

        • 认识JVM
        • JVM类加载器
        • 运行时数据区
        • 执行引擎
        • 本地方法接口
        • 本地方法库
        • JVM垃圾回收
        • JVM性能监控
        • JVM调优
      • 设计模式
        • 单例模式
        • 工厂模式
        • 策略模式
        • 适配器模式
        • 建造者模式
        • 原型模式
        • 装饰器模式
        • 代理模式
        • 外观模式
        • 享元模式
        • 组合模式
        • 桥接模式
      • Java多线程

        • Java 线程基础详解
        • Java 线程池详解
        • Java ThreadLocal 详解
        • Java volatile 详解
        • Java 线程间通信详解
        • Java 线程安全详解
        • Java 线程调度详解
        • Java 线程优先级详解

        • Java 线程中断详解
        • Java 线程死锁详解
      • Java反射
      • Java 面试题

        • Java 基础概念面试题
        • Java 面向对象编程面试题
        • Java 集合框架面试题
        • Java 多线程与并发面试题
        • JVM 与内存管理面试题
        • Java I/O 与 NIO 面试题
        • Java 异常处理面试题
        • Java 反射与注解面试题
        • Java Spring 框架面试题
        • Java 数据库与 JDBC 面试题
        • Java 性能优化面试题
        • Java 实际项目经验面试题
        • Java 高级特性面试题
        • Java 面试准备建议
    • Python

      • Python简介
      • Python安装
      • Python hello world
      • Python基础语法
      • Python数据类型
      • Python数字
      • Python字符串
      • Python列表
      • Python元组
      • Python字典
      • Python日期时间
      • Python文件操作
      • Python异常处理
      • Python函数
      • Python类
      • Python模块
      • Python包
      • Python多线程
      • Python面向对象
      • Python爬虫
      • Django web框架
      • Python 面试题

        • Python 面试题导航
        • Python 基础概念
        • Python 面向对象编程
        • Python 数据结构
        • Python 高级特性
        • Python 框架
        • Python 性能优化
        • Python 项目经验
    • Spring

      • Spring
      • Springboot
      • Spring Security 安全框架
      • SpringBoot 中的事件详解
      • SpringBoot 中的定时任务详解
      • SpringBoot 自动装配原理与源码解释
    • Mybatis

      • Mybatis
      • Mybatis-Plus
    • 数据库

      • Redis

        • Redis简介
        • Redis(单机)安装
        • Redis配置
        • Redis数据结构
        • RDB、AOF 和混合持久化机制
        • Redis内存管理
        • Redis缓存一致性
        • Redis缓存穿透
        • Redis缓存击穿
        • Redis缓存雪崩
        • Redis Lua脚本
        • Redis主从复制
        • Redis哨兵模式
        • Redis集群
        • Redis数据分片
        • Redis CPU使用率过高
        • Redis面试题
      • MySQL

        • MySQL简介
        • MySQL安装
        • MySQL配置
        • MYSQL日常维护
        • MYSQL优化-慢查询
        • MYSQL优化-索引
        • MYSQL数据库设计规范
    • 消息队列

      • RocketMQ
      • Kafka
      • RabbitMQ
      • 消息队列面试题
    • 微服务

      • SpringCloud 微服务
      • Eureka 注册中心
      • Nacos 注册中心
      • Gateway 网关
      • Feign 服务调用
      • Sentinel 限流 与 熔断
      • Seata 分布式事务
      • CAP 理论
      • Redis 分布式锁
      • 高并发系统设计
    • ELK日志分析系统

      • Elasticsearch 搜索引擎
      • Logstash 数据处理
      • Kibana 可视化
      • ELK 实战
    • 开放API

      • 开放API设计
      • 开放API示例项目
    • 人工智能

      • 人工智能简介
      • 机器学习

      • 深度学习

      • 自然语言处理

      • 计算机视觉

        • CUDA与cuDNN详细安装
        • Conda 安装
        • Pytorch 深度学习框架
        • yolo 目标检测
        • TensorRT 深度学习推理优化引擎
        • TensorFlow 机器学习
        • CVAT 图像标注
        • Windows 下安装 CUDA、cuDNN、TensorRT、TensorRT-YOLO 环境
        • Windows10+CUDA+cuDNN+TensorRT+TensorRT-YOLO 部署高性能YOLO11推理
    • 大数据

      • 大数据简介
      • Hadoop 数据存储
      • Flume 数据采集
      • Sqoop 数据导入导出
      • Hive 数据仓库
      • Spark 数据处理
      • Flink 数据处理
      • Kafka 数据采集
      • HBase 数据存储
      • Elasticsearch 搜索引擎
    • 图像处理

      • 图像处理简介
      • 医学图像web呈现
      • 医学图像处理
      • 切片细胞分离问题
    • 服务器&运维

      • Linux 系统

        • Linux 系统管理
        • Linux 网络管理
        • Linux 文件管理
        • Linux 命令大全
      • Nginx Web 服务器

        • Nginx 安装 与 配置
        • Nginx 负载均衡
        • Nginx SSL证书配置
        • Nginx Keepalived 高可用
      • Docker 容器

        • Docker 简介
        • Docker 安装与配置
        • Docker 命令
        • Docker 部署 Nginx
        • Docker 部署 MySQL
        • Docker 部署 Redis
      • 服务器

        • 塔式服务器
        • 机架式服务器
        • 刀片服务器
      • Git 版本控制
      • Jenkins 持续集成
      • Jmeter 性能测试
      • Let's Encrypt 免费SSL证书
    • 简历

      • 项目经理简历
      • 开发工程师简历

Linux 命令大全

目录

  • 文件操作命令
  • 系统信息命令
  • 进程管理命令
  • 网络命令
  • 用户管理命令
  • 权限管理命令
  • 文本处理命令
  • 压缩解压命令
  • 系统服务命令
  • 软件包管理命令
  • 磁盘管理命令
  • 远程连接命令
  • 文件传输命令
  • 系统监控命令
  • 日志查看命令
  • 环境变量命令
  • 定时任务命令
  • 防火墙命令
  • 系统信息命令
  • 网络诊断命令
  • 文件系统命令
  • 进程调试命令
  • 关机命令
  • 系统信息命令
  • 硬件信息命令
  • 内核模块命令

文件操作命令

ls - 列出目录内容

命令参数解释表格:

参数说明示例
-a显示所有文件,包括隐藏文件ls -a
-l使用长列表格式显示ls -l
-h以人类可读的格式显示文件大小ls -lh
-t按修改时间排序ls -lt
-r反向排序ls -lr
-R递归显示子目录ls -R

输出参数解释表格:

输出字段说明示例
权限字段文件类型和权限drwxr-xr-x
链接数硬链接数量2
所有者文件所有者user
用户组文件所属组group
文件大小文件大小(字节)4096
修改时间最后修改时间Dec 15 10:30
文件名文件或目录名example.txt

指令输出示例:

$ ls -la
total 32
drwxr-xr-x  5 user group 4096 Dec 15 10:30 .
drwxr-xr-x  3 user group 4096 Dec 15 10:25 ..
-rw-r--r--  1 user group  220 Dec 15 10:30 .bash_logout
-rw-r--r--  1 user group 3771 Dec 15 10:30 .bashrc
-rw-r--r--  1 user group  807 Dec 15 10:30 .profile
drwxr-xr-x  2 user group 4096 Dec 15 10:30 documents
-rw-r--r--  1 user group   25 Dec 15 10:30 test.txt

cp - 复制文件或目录

命令参数解释表格:

参数说明示例
-r递归复制目录cp -r dir1 dir2
-p保留文件属性cp -p file1 file2
-v显示详细过程cp -v file1 file2
-f强制覆盖cp -f file1 file2
-i交互式复制cp -i file1 file2

指令输出示例:

$ cp -v test.txt backup/
'test.txt' -> 'backup/test.txt'

$ cp -r documents/ backup/
documents/file1.txt -> backup/documents/file1.txt
documents/file2.txt -> backup/documents/file2.txt

mv - 移动或重命名文件

命令参数解释表格:

参数说明示例
-i交互式移动mv -i file1 file2
-v显示详细过程mv -v file1 file2
-f强制移动mv -f file1 file2
-n不覆盖已存在文件mv -n file1 file2

指令输出示例:

$ mv -v oldname.txt newname.txt
'oldname.txt' -> 'newname.txt'

$ mv -i file1.txt documents/
mv: overwrite 'documents/file1.txt'? y

rm - 删除文件或目录

命令参数解释表格:

参数说明示例
-r递归删除目录rm -r directory
-f强制删除,不提示rm -f file
-i交互式删除rm -i file
-v显示详细过程rm -v file

指令输出示例:

$ rm -i test.txt
rm: remove regular file 'test.txt'? y

$ rm -rf temp/
# 静默删除temp目录及其内容

系统信息命令

top - 显示系统进程信息

命令参数解释表格:

参数说明示例
-p指定进程 IDtop -p 1234
-u指定用户名top -u username
-n刷新次数top -n 5
-d刷新间隔(秒)top -d 2

输出参数解释表格:

输出字段说明示例
PID进程 ID1234
USER进程所有者root
PR进程优先级20
NInice 值0
VIRT虚拟内存使用量123456
RES物理内存使用量1234
SHR共享内存大小456
S进程状态S (睡眠)
%CPUCPU 使用率2.5
%MEM内存使用率1.2
TIME+累计 CPU 时间0:15.30
COMMAND命令名称bash

指令输出示例:

$ top
top - 14:30:45 up 2 days,  3:45,  2 users,  load average: 0.52, 0.58, 0.59
Tasks: 125 total,   1 running, 124 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.5 us,  1.2 sy,  0.0 ni, 96.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   8192.0 total,   1234.5 free,   2345.6 used,   4611.9 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   5123.4 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 root      20   0  123456   1234    456 S   2.5   1.2   0:15.30 bash
 5678 user      20   0  234567   2345    567 S   1.8   2.1   0:25.45 nginx

df - 显示磁盘空间使用情况

命令参数解释表格:

参数说明示例
-h以人类可读格式显示df -h
-T显示文件系统类型df -T
-i显示 inode 信息df -i
-a显示所有文件系统df -a

输出参数解释表格:

输出字段说明示例
Filesystem文件系统名称/dev/sda1
Size总大小20G
Used已使用空间15G
Avail可用空间4.0G
Use%使用率百分比79%
Mounted on挂载点/

指令输出示例:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G   15G  4.0G  79% /
tmpfs           3.2G     0  3.2G   0% /dev/shm
/dev/sdb1       100G   50G   45G  53% /home

free - 显示内存使用情况

命令参数解释表格:

参数说明示例
-h以人类可读格式显示free -h
-s持续监控,指定间隔free -s 5
-t显示总计行free -t
-m以 MB 为单位显示free -m

输出参数解释表格:

输出字段说明示例
total总内存8192
used已使用内存4096
free空闲内存2048
shared共享内存512
buff/cache缓冲/缓存内存1536
available可用内存3584

指令输出示例:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           8.0Gi       4.0Gi       2.0Gi       512Mi       2.0Gi       3.5Gi
Swap:          2.0Gi          0Bi       2.0Gi

进程管理命令

ps - 显示进程状态

命令参数解释表格:

参数说明示例
aux显示所有用户的所有进程ps aux
-ef显示所有进程的详细信息ps -ef
-p指定进程 IDps -p 1234
-u指定用户名ps -u username
-o自定义输出格式ps -o pid,ppid,cmd

输出参数解释表格:

输出字段说明示例
USER进程所有者root
PID进程 ID1234
PPID父进程 ID1
%CPUCPU 使用率2.5
%MEM内存使用率1.2
VSZ虚拟内存大小123456
RSS物理内存大小1234
TTY终端pts/0
STAT进程状态S
START启动时间10:30
TIME累计 CPU 时间0:15.30
COMMAND命令bash

指令输出示例:

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  123456  1234 ?        Ss   10:30   0:01 /sbin/init
root       123  0.0  0.0  234567  2345 ?        S    10:30   0:00 /usr/sbin/sshd
user      1234  0.5  1.2  345678  3456 pts/0   Ss   10:35   0:15 bash
user      5678  0.0  0.5  456789  4567 pts/0   R+   14:30   0:00 ps aux

kill - 终止进程

命令参数解释表格:

参数说明示例
-9强制终止进程kill -9 1234
-15正常终止进程(默认)kill -15 1234
-l列出所有信号kill -l
-s指定信号kill -s SIGTERM 1234

指令输出示例:

$ kill -9 1234
# 强制终止进程ID为1234的进程

$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM

网络命令

netstat - 显示网络连接状态

命令参数解释表格:

参数说明示例
-t显示 TCP 连接netstat -t
-u显示 UDP 连接netstat -u
-l显示监听端口netstat -l
-n显示数字地址netstat -n
-p显示进程信息netstat -p
-a显示所有连接netstat -a

输出参数解释表格:

输出字段说明示例
Proto协议类型tcp
Recv-Q接收队列0
Send-Q发送队列0
Local Address本地地址127.0.0.1:8080
Foreign Address远程地址0.0.0.0:*
State连接状态LISTEN
PID/Program name进程 ID/程序名1234/nginx

指令输出示例:

$ netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8080         0.0.0.0:*               LISTEN      1234/nginx
tcp        0      0 0.0.0.0:22             0.0.0.0:*               LISTEN      5678/sshd
tcp6       0      0 :::80                   :::*                    LISTEN      9012/apache2

ping - 测试网络连通性

命令参数解释表格:

参数说明示例
-c指定发送次数ping -c 4 8.8.8.8
-i指定发送间隔(秒)ping -i 2 8.8.8.8
-s指定数据包大小ping -s 1000 8.8.8.8
-t设置 TTL 值ping -t 64 8.8.8.8
-W设置超时时间ping -W 5 8.8.8.8

输出参数解释表格:

输出字段说明示例
icmp_seqICMP 序列号1
ttl生存时间64
time响应时间2.5 ms
bytes数据包大小64

指令输出示例:

$ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=64 time=2.5 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=64 time=2.3 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=64 time=2.4 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=64 time=2.6 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 2.300/2.450/2.600/0.100 ms

用户管理命令

useradd - 创建新用户

命令参数解释表格:

参数说明示例
-m创建用户主目录useradd -m username
-s指定默认 shelluseradd -s /bin/bash username
-g指定主组useradd -g users username
-G指定附加组useradd -G sudo username
-u指定用户 IDuseradd -u 1001 username

指令输出示例:

$ useradd -m -s /bin/bash -G sudo newuser
# 创建用户newuser,包含主目录,默认shell为bash,加入sudo组

$ id newuser
uid=1001(newuser) gid=1001(newuser) groups=1001(newuser),27(sudo)

passwd - 设置用户密码

命令参数解释表格:

参数说明示例
-l锁定用户账户passwd -l username
-u解锁用户账户passwd -u username
-d删除用户密码passwd -d username
-S显示密码状态passwd -S username

指令输出示例:

$ passwd newuser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

$ passwd -S newuser
newuser P 12/15/2023 0 99999 7 -1

权限管理命令

chmod - 修改文件权限

命令参数解释表格:

参数说明示例
-R递归修改目录权限chmod -R 755 dir
-v显示详细过程chmod -v 644 file
-c只在有变化时显示chmod -c 755 file

权限数字说明:

数字权限说明
0---无权限
1--x执行权限
2-w-写权限
3-wx写和执行权限
4r--读权限
5r-x读和执行权限
6rw-读和写权限
7rwx读、写和执行权限

指令输出示例:

$ chmod 755 script.sh
$ ls -l script.sh
-rwxr-xr-x 1 user group 1234 Dec 15 10:30 script.sh

$ chmod -R 644 documents/
$ ls -la documents/
total 8
drwxr-xr-x 2 user group 4096 Dec 15 10:30 .
drwxr-xr-x 3 user group 4096 Dec 15 10:30 ..
-rw-r--r-- 1 user group   25 Dec 15 10:30 file1.txt
-rw-r--r-- 1 user group   30 Dec 15 10:30 file2.txt

chown - 修改文件所有者

命令参数解释表格:

参数说明示例
-R递归修改目录chown -R user:group dir
-v显示详细过程chown -v user file
-c只在有变化时显示chown -c user file

指令输出示例:

$ chown newuser:newgroup file.txt
$ ls -l file.txt
-rw-r--r-- 1 newuser newgroup 25 Dec 15 10:30 file.txt

$ chown -R user:group documents/
$ ls -la documents/
total 8
drwxr-xr-x 2 user group 4096 Dec 15 10:30 .
drwxr-xr-x 3 user group 4096 Dec 15 10:30 ..
-rw-r--r-- 1 user group   25 Dec 15 10:30 file1.txt
-rw-r--r-- 1 user group   30 Dec 15 10:30 file2.txt

文本处理命令

cat - 查看文件内容

命令参数解释表格:

参数说明示例
-n显示行号cat -n file.txt
-A显示所有字符cat -A file.txt
-s压缩空行cat -s file.txt
-T显示制表符cat -T file.txt
-E显示行结束符cat -E file.txt

指令输出示例:

$ cat -n example.txt
     1	这是第一行
     2	这是第二行
     3	这是第三行

$ cat -A example.txt
这是第一行$
这是第二行$
这是第三行$

grep - 搜索文本

命令参数解释表格:

| 参数 | 说明 | 示例 | | ---- | -------------- | ----------------------- | -------- | | -i | 忽略大小写 | grep -i "hello" file | | -r | 递归搜索目录 | grep -r "pattern" dir | | -n | 显示行号 | grep -n "hello" file | | -v | 反向匹配 | grep -v "hello" file | | -l | 只显示文件名 | grep -l "hello" * | | -c | 只显示匹配行数 | grep -c "hello" file | | -E | 使用扩展正则 | grep -E "a | b" file |

指令输出示例:

$ grep -n "error" log.txt
15:ERROR: Connection failed
23:ERROR: Timeout occurred
45:ERROR: Invalid input

$ grep -i "hello" *.txt
file1.txt:Hello World
file2.txt:hello there

sed - 流编辑器

命令参数解释表格:

参数说明示例
-i直接修改文件sed -i 's/old/new/g' file
-n不输出默认行sed -n '1,5p' file
-e指定编辑命令sed -e 's/a/b/' -e 's/c/d/' file
-f从文件读取命令sed -f script.sed file

常用编辑命令:

命令说明示例
s替换s/old/new/g
p打印1,5p
d删除1,5d
a追加1a\new line
i插入1i\new line

指令输出示例:

$ sed 's/old/new/g' file.txt
# 替换所有old为new

$ sed -n '1,5p' file.txt
# 只显示第1-5行

$ sed -i 's/^/# /' file.txt
# 在每行开头添加注释符号

awk - 文本处理工具

命令参数解释表格:

参数说明示例
-F指定分隔符awk -F: '{print $1}' /etc/passwd
-v定义变量awk -v var=value '{print var}'
-f从文件读取脚本awk -f script.awk file

常用内置变量:

变量说明示例
$0整行内容{print $0}
$1第一个字段{print $1}
NF字段数量{print NF}
NR当前行号{print NR}
FS输入字段分隔符BEGIN{FS=":"}
OFS输出字段分隔符BEGIN{OFS="\t"}

指令输出示例:

$ awk -F: '{print $1, $3}' /etc/passwd
root 0
bin 1
daemon 2

$ awk '{sum += $1} END {print sum}' numbers.txt
150

$ awk 'NR>1 {print $1, $2}' data.csv
John 25
Jane 30
Bob 35

head - 查看文件开头

命令参数解释表格:

参数说明示例
-n指定行数head -n 10 file
-c指定字节数head -c 100 file
-q不显示文件名head -q file1 file2
-v显示文件名head -v file

指令输出示例:

$ head -n 5 large_file.txt
第1行内容
第2行内容
第3行内容
第4行内容
第5行内容

$ head -c 50 file.txt
这是文件的前50个字符内容

tail - 查看文件结尾

命令参数解释表格:

参数说明示例
-n指定行数tail -n 10 file
-c指定字节数tail -c 100 file
-f持续监控文件tail -f log.txt
-q不显示文件名tail -q file1 file2
-v显示文件名tail -v file

指令输出示例:

$ tail -n 5 log.txt
2023-12-15 14:30:15 INFO: Service started
2023-12-15 14:30:16 INFO: Database connected
2023-12-15 14:30:17 INFO: Cache initialized
2023-12-15 14:30:18 INFO: API ready
2023-12-15 14:30:19 INFO: Server listening

$ tail -f /var/log/nginx/access.log
# 实时监控nginx访问日志

find - 查找文件

命令参数解释表格:

参数说明示例
-name按文件名查找find /path -name "*.txt"
-iname忽略大小写按文件名查找find /path -iname "*.txt"
-type按文件类型查找find /path -type f (文件)
-size按文件大小查找find /path -size +100M
-mtime按修改时间查找find /path -mtime -7 (7 天内)
-atime按访问时间查找find /path -atime +30 (30 天前)
-user按所有者查找find /path -user username
-group按组查找find /path -group groupname
-perm按权限查找find /path -perm 644
-exec执行命令find /path -name "*.txt" -exec rm {} \;
-delete删除找到的文件find /path -name "*.tmp" -delete
-print打印找到的文件find /path -name "*.txt" -print
-maxdepth最大搜索深度find /path -maxdepth 2 -name "*.txt"
-mindepth最小搜索深度find /path -mindepth 2 -name "*.txt"

文件类型说明:

类型说明
f普通文件
d目录
l符号链接
c字符设备
b块设备
p命名管道
s套接字

时间参数说明:

参数说明
-mtime -nn 天内修改的文件
-mtime +nn 天前修改的文件
-mtime n正好 n 天前修改的文件
-atime -nn 天内访问的文件
-atime +nn 天前访问的文件
-ctime -nn 天内状态改变的文件

大小参数说明:

参数说明
-size +100M大于 100MB 的文件
-size -100M小于 100MB 的文件
-size 100M正好 100MB 的文件
-size +100c大于 100 字节的文件
-size +100k大于 100KB 的文件

指令输出示例:

$ find /home -name "*.txt"
/home/user/documents/file1.txt
/home/user/documents/file2.txt
/home/user/backup/old.txt

$ find /var/log -type f -mtime -7
/var/log/syslog
/var/log/auth.log
/var/log/nginx/access.log

$ find /tmp -name "*.tmp" -size +1M
/tmp/large_file.tmp
/tmp/backup.tmp

$ find /home -user user -type f -exec ls -lh {} \;
-rw-r--r-- 1 user user 25 Dec 15 10:30 /home/user/file1.txt
-rw-r--r-- 1 user user 30 Dec 15 10:31 /home/user/file2.txt

$ find /var/www -name "*.php" -exec grep -l "mysql_connect" {} \;
/var/www/app/config.php
/var/www/app/database.php

$ find /home -type f -name "*.log" -mtime +30 -delete
# 删除30天前的日志文件

$ find /usr -name "*.conf" -maxdepth 3
/usr/share/doc/nginx/examples/nginx.conf
/usr/share/apache2/conf-available/security.conf

$ find /home -type f -perm 644 -user user
/home/user/.bashrc
/home/user/.profile
/home/user/documents/readme.txt

压缩解压命令

tar - 打包压缩

命令参数解释表格:

参数说明示例
-c创建归档tar -cf archive.tar dir
-x解压归档tar -xf archive.tar
-t列出归档内容tar -tf archive.tar
-v显示详细过程tar -cvf archive.tar dir
-f指定文件名tar -cf archive.tar dir
-z使用 gzip 压缩tar -czf archive.tar.gz dir
-j使用 bzip2 压缩tar -cjf archive.tar.bz2 dir
-J使用 xz 压缩tar -cJf archive.tar.xz dir
-C指定解压目录tar -xf archive.tar -C /tmp

指令输出示例:

$ tar -czf backup.tar.gz documents/
documents/file1.txt
documents/file2.txt
documents/subdir/file3.txt

$ tar -tf backup.tar.gz
documents/
documents/file1.txt
documents/file2.txt
documents/subdir/
documents/subdir/file3.txt

$ tar -xzf backup.tar.gz -C /tmp/
# 解压到/tmp目录

gzip - 压缩文件

命令参数解释表格:

参数说明示例
-d解压缩gzip -d file.gz
-v显示详细信息gzip -v file
-k保留原文件gzip -k file
-l显示压缩信息gzip -l file.gz
-r递归处理目录gzip -r dir

指令输出示例:

$ gzip -v large_file.txt
large_file.txt:	85.2% -- replaced with large_file.txt.gz

$ gzip -l file.gz
         compressed        uncompressed  ratio uncompressed_name
               1234               5678  78.3% file

$ gzip -d file.gz
# 解压文件

unzip - 解压 ZIP 文件

命令参数解释表格:

参数说明示例
-l列出压缩包内容unzip -l archive.zip
-d指定解压目录unzip archive.zip -d /tmp
-o覆盖已存在文件unzip -o archive.zip
-q静默模式unzip -q archive.zip
-v显示详细信息unzip -v archive.zip

指令输出示例:

$ unzip -l archive.zip
Archive:  archive.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
      123  2023-12-15 10:30   file1.txt
      456  2023-12-15 10:31   file2.txt
---------                     -------
      579                     2 files

$ unzip archive.zip -d /tmp/
Archive:  archive.zip
  inflating: /tmp/file1.txt
  inflating: /tmp/file2.txt

系统服务命令

systemctl - 系统服务管理

命令参数解释表格:

参数说明示例
start启动服务systemctl start nginx
stop停止服务systemctl stop nginx
restart重启服务systemctl restart nginx
status查看服务状态systemctl status nginx
enable开机自启systemctl enable nginx
disable禁用自启systemctl disable nginx
reload重新加载配置systemctl reload nginx

服务状态说明:

状态说明
active (running)服务正在运行
active (exited)服务已退出但成功
inactive (dead)服务未运行
failed服务启动失败

指令输出示例:

$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2023-12-15 10:30:00 CST; 2h ago
     Docs: man:nginx(8)
 Main PID: 1234 (nginx)
    Tasks: 3 (limit: 4915)
   Memory: 2.5M
   CGroup: /system.slice/nginx.service
           ├─1234 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ├─1235 nginx: worker process
           └─1236 nginx: worker process

$ systemctl start nginx
# 启动nginx服务

$ systemctl enable nginx
# 设置nginx开机自启

service - 传统服务管理

命令参数解释表格:

参数说明示例
start启动服务service nginx start
stop停止服务service nginx stop
restart重启服务service nginx restart
status查看状态service nginx status
reload重新加载service nginx reload

指令输出示例:

$ service nginx status
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: active (running) since Mon 2023-12-15 10:30:00 CST; 2h ago
     Docs: man:nginx(8)
 Main PID: 1234 (nginx)
    Tasks: 3 (limit: 4915)
   Memory: 2.5M
   CGroup: /system.slice/nginx.service
           ├─1234 nginx: master process
           ├─1235 nginx: worker process
           └─1236 nginx: worker process

软件包管理命令

apt - Debian/Ubuntu 包管理

命令参数解释表格:

参数说明示例
update更新包列表apt update
upgrade升级包apt upgrade
install安装包apt install nginx
remove删除包apt remove nginx
purge完全删除包apt purge nginx
search搜索包apt search nginx
show显示包信息apt show nginx
list列出包apt list --installed

指令输出示例:

$ apt update
Get:1 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Fetched 379 kB in 2s (189 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

$ apt install nginx
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  nginx-common nginx-core
The following NEW packages will be installed:
  nginx nginx-common nginx-core
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,234 kB of archives.
After this operation, 3,456 kB of additional disk space will be used.
Do you want to continue? [Y/n] y

yum - CentOS/RHEL 包管理

命令参数解释表格:

参数说明示例
install安装包yum install nginx
remove删除包yum remove nginx
update更新包yum update
search搜索包yum search nginx
info显示包信息yum info nginx
list列出包yum list installed
clean清理缓存yum clean all

指令输出示例:

$ yum install nginx
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.16.1-1.el7 will be installed
--> Finished dependency resolution

Dependencies Resolved

================================================================================
 Package        Arch           Version                Repository            Size
================================================================================
Installing:
 nginx          x86_64         1:1.16.1-1.el7        epel                 1.5 M

Transaction Summary
================================================================================
Install  1 Package

Total download size: 1.5 M
Installed size: 5.2 M
Is this ok [y/d/N]: y

磁盘管理命令

fdisk - 磁盘分区管理

命令参数解释表格:

参数说明示例
-l列出所有分区fdisk -l
-u显示扇区信息fdisk -u -l
-s显示分区大小fdisk -s /dev/sda1

常用交互命令:

命令说明
p打印分区表
n新建分区
d删除分区
w写入并退出
q退出不保存
t更改分区类型

指令输出示例:

$ fdisk -l
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 12345678-1234-1234-1234-123456789012

Device       Start       End   Sectors   Size Type
/dev/sda1     2048  209715166 209713119 100G Linux filesystem

mount - 挂载文件系统

命令参数解释表格:

参数说明示例
-t指定文件系统类型mount -t ext4 /dev/sda1 /mnt
-o指定挂载选项mount -o ro /dev/sda1 /mnt
-a挂载所有文件系统mount -a
-l显示已挂载信息mount -l

常用挂载选项:

选项说明
ro只读挂载
rw读写挂载
noexec禁止执行
nosuid禁止 SUID
defaults默认选项

指令输出示例:

$ mount /dev/sda1 /mnt
# 挂载分区到/mnt目录

$ mount -l
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=1638400k,mode=755)
/dev/sdb1 on /home type ext4 (rw,relatime)

$ mount -o ro /dev/sdc1 /backup
# 只读挂载备份分区

umount - 卸载文件系统

命令参数解释表格:

参数说明示例
-f强制卸载umount -f /mnt
-l延迟卸载umount -l /mnt
-a卸载所有文件系统umount -a

指令输出示例:

$ umount /mnt
# 卸载/mnt目录

$ umount -f /mnt
# 强制卸载,即使有进程在使用

$ umount -l /mnt
# 延迟卸载,等进程结束后自动卸载

远程连接命令

ssh - 安全远程连接

命令参数解释表格:

参数说明示例
-p指定端口号ssh -p 2222 user@host
-i指定私钥文件ssh -i ~/.ssh/id_rsa user@host
-X启用 X11 转发ssh -X user@host
-L本地端口转发ssh -L 8080:localhost:80 user@host
-D动态端口转发ssh -D 1080 user@host
-t强制分配伪终端ssh -t user@host
-v详细模式ssh -v user@host

指令输出示例:

$ ssh user@192.168.1.100
user@192.168.1.100's password:
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-74-generic x86_64)

$ ssh -p 2222 -i ~/.ssh/id_rsa user@host
# 使用指定端口和私钥连接

$ ssh -L 8080:localhost:80 user@host
# 本地8080端口转发到远程80端口

scp - 安全文件传输

命令参数解释表格:

参数说明示例
-r递归复制目录scp -r dir/ user@host:/path/
-P指定端口号scp -P 2222 file user@host:/path/
-i指定私钥文件scp -i ~/.ssh/id_rsa file user@host:/path/
-v详细模式scp -v file user@host:/path/
-C启用压缩scp -C file user@host:/path/
-p保留文件属性scp -p file user@host:/path/

指令输出示例:

$ scp file.txt user@192.168.1.100:/home/user/
user@192.168.1.100's password:
file.txt                                    100%   25     0.0KB/s   00:00

$ scp -r documents/ user@192.168.1.100:/home/user/
user@192.168.1.100's password:
file1.txt                                  100%   25     0.0KB/s   00:00
file2.txt                                  100%   30     0.0KB/s   00:00

rsync - 远程同步

命令参数解释表格:

参数说明示例
-a归档模式rsync -a source/ dest/
-v详细模式rsync -v file dest/
-z压缩传输rsync -z file dest/
-r递归复制rsync -r dir/ dest/
-P显示进度rsync -P file dest/
-n试运行rsync -n -a source/ dest/
--delete删除目标多余文件rsync -a --delete source/ dest/
-e指定远程 shellrsync -e "ssh -p 2222" file user@host:/path/

指令输出示例:

$ rsync -avz /local/dir/ user@host:/remote/dir/
sending incremental file list
./
file1.txt
file2.txt

sent 1234 bytes  received 567 bytes  3602.00 bytes/sec
total size is 8901  speedup is 4.94

$ rsync -avz --delete /backup/ user@host:/backup/
sending incremental file list
deleting old_file.txt
./
new_file.txt

sent 2345 bytes  received 678 bytes  6046.00 bytes/sec
total size is 12345  speedup is 2.04

文件传输命令

wget - 下载文件

命令参数解释表格:

参数说明示例
-c断点续传wget -c http://example.com/file
-O指定输出文件名wget -O filename http://example.com/file
-P指定下载目录wget -P /downloads/ http://example.com/file
-r递归下载wget -r http://example.com/
-np不跟随父目录链接wget -r -np http://example.com/
-q静默模式wget -q http://example.com/file
-b后台下载wget -b http://example.com/file
--limit-rate限制下载速度wget --limit-rate=1m http://example.com/file

指令输出示例:

$ wget http://example.com/file.txt
--2023-12-15 14:30:00--  http://example.com/file.txt
Resolving example.com... 93.184.216.34
Connecting to example.com|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1234 (1.2K) [text/plain]
Saving to: 'file.txt'

100%[======================================>] 1,234       --.-K/s   in 0.1s

2023-12-15 14:30:00 (12.3 KB/s) - 'file.txt' saved [1234/1234]

$ wget -c -O backup.tar.gz http://example.com/backup.tar.gz
# 断点续传并指定输出文件名

curl - 传输数据

命令参数解释表格:

参数说明示例
-o保存到文件curl -o file http://example.com/file
-O使用远程文件名curl -O http://example.com/file.txt
-L跟随重定向curl -L http://example.com/redirect
-H添加 HTTP 头curl -H "Authorization: Bearer token" http://api.com
-d发送 POST 数据curl -d "name=value" http://api.com
-X指定 HTTP 方法curl -X POST http://api.com
-k忽略 SSL 证书curl -k https://example.com
-s静默模式curl -s http://example.com
-w自定义输出格式curl -w "%{http_code}" http://example.com

指令输出示例:

$ curl -o file.txt http://example.com/file
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1234  100  1234    0     0  12340      0 --:--:-- --:--:-- --:--:-- 12340

$ curl -H "Content-Type: application/json" -d '{"key":"value"}' http://api.com
{"status":"success","message":"Data received"}

$ curl -w "HTTP Status: %{http_code}\nTime: %{time_total}s\n" http://example.com
HTTP Status: 200
Time: 0.123s

系统监控命令

htop - 交互式进程查看器

命令参数解释表格:

参数说明示例
-p指定进程 IDhtop -p 1234
-u指定用户名htop -u username
-d设置刷新间隔htop -d 5
-C隐藏 CPU 使用率htop -C
-t显示树状结构htop -t

htop 界面说明:

按键功能
F1显示帮助
F2设置
F3搜索进程
F4过滤进程
F5树状显示
F6排序
F9杀死进程
F10退出

指令输出示例:

$ htop
# 显示交互式进程管理器界面
# 显示CPU、内存使用情况,可交互操作

iotop - 监控磁盘 I/O

命令参数解释表格:

参数说明示例
-o只显示有 I/O 的进程iotop -o
-b批处理模式iotop -b
-n指定刷新次数iotop -n 10
-d设置刷新间隔iotop -d 2
-p指定进程 IDiotop -p 1234

指令输出示例:

$ iotop
Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/s
    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
   1234 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd
   1235 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % kthreadd

nethogs - 监控网络使用

命令参数解释表格:

参数说明示例
-t跟踪模式nethogs -t
-d设置刷新间隔nethogs -d 5
-v详细模式nethogs -v
-c指定刷新次数nethogs -c 10

指令输出示例:

$ nethogs
# 显示网络使用情况
# 按进程显示网络流量

日志查看命令

journalctl - 查看系统日志

命令参数解释表格:

参数说明示例
-f实时跟踪日志journalctl -f
-n显示最后 N 行journalctl -n 50
-u指定服务journalctl -u nginx
-p指定优先级journalctl -p err
-S指定开始时间journalctl -S "2023-12-15 10:00"
-U指定结束时间journalctl -U "2023-12-15 11:00"
--since相对时间journalctl --since "1 hour ago"
--until相对时间journalctl --until "30 minutes ago"

优先级说明:

优先级说明
emerg紧急
alert警报
crit严重
err错误
warning警告
notice通知
info信息
debug调试

指令输出示例:

$ journalctl -f
-- Logs begin at Mon 2023-12-15 10:00:00 CST. --
Dec 15 14:30:00 hostname systemd[1]: Started nginx.service.
Dec 15 14:30:01 hostname nginx[1234]: nginx: [notice] 1#1: start worker processes
Dec 15 14:30:02 hostname nginx[1235]: nginx: [notice] 1#1: start worker processes

$ journalctl -u nginx -f
-- Logs begin at Mon 2023-12-15 10:00:00 CST. --
Dec 15 14:30:00 hostname nginx[1234]: nginx: [notice] 1#1: start worker processes
Dec 15 14:30:01 hostname nginx[1235]: nginx: [notice] 1#1: start worker processes

$ journalctl -p err --since "1 hour ago"
-- Logs begin at Mon 2023-12-15 10:00:00 CST. --
Dec 15 14:15:30 hostname kernel: [ERROR] Disk I/O error on /dev/sda1

dmesg - 查看内核日志

命令参数解释表格:

参数说明示例
-T显示时间戳dmesg -T
-H人类可读格式dmesg -H
-w实时监控dmesg -w
-k显示内核消息dmesg -k
-l指定日志级别dmesg -l err

指令输出示例:

$ dmesg -T
[Mon Dec 15 14:30:00 2023] Linux version 5.4.0-74-generic (buildd@lgw01-amd64-038) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #83-Ubuntu SMP Sat May 8 02:35:39 UTC 2021
[Mon Dec 15 14:30:01 2023] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-74-generic root=UUID=12345678-1234-1234-1234-123456789012 ro quiet splash
[Mon Dec 15 14:30:02 2023] KERNEL supported cpus:
[Mon Dec 15 14:30:03 2023]  Intel GenuineIntel

环境变量命令

export - 设置环境变量

命令参数解释表格:

参数说明示例
-p显示所有环境变量export -p
-n取消环境变量export -n VAR

指令输出示例:

$ export PATH=$PATH:/usr/local/bin
$ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
$ export -p
declare -x HOME="/home/user"
declare -x JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin"

env - 显示环境变量

命令参数解释表格:

参数说明示例
-i忽略继承的环境变量env -i command
-u取消指定变量env -u VAR command
-0以 null 结尾env -0

指令输出示例:

$ env
USER=user
HOME=/home/user
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/bash
TERM=xterm-256color

$ env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

unset - 删除环境变量

指令输出示例:

$ export TEST_VAR="test value"
$ echo $TEST_VAR
test value
$ unset TEST_VAR
$ echo $TEST_VAR

定时任务命令

crontab - 管理定时任务

命令参数解释表格:

参数说明示例
-e编辑定时任务crontab -e
-l列出定时任务crontab -l
-r删除所有任务crontab -r
-u指定用户crontab -u username -e

crontab 时间格式:

字段说明范围
分钟分钟0-59
小时小时0-23
日期日期1-31
月份月份1-12
星期星期几0-7 (0 和 7 都是周日)

常用时间表达式:

表达式说明
* * * * *每分钟执行
0 * * * *每小时执行
0 0 * * *每天 0 点执行
0 0 * * 0每周日 0 点执行
0 0 1 * *每月 1 号 0 点执行
*/5 * * * *每 5 分钟执行

指令输出示例:

$ crontab -l
# m h  dom mon dow   command
0 2 * * * /usr/bin/backup.sh
0 0 * * 0 /usr/bin/weekly-cleanup.sh
*/15 * * * * /usr/bin/check-disk-space.sh

$ crontab -e
# 打开编辑器,可以添加新的定时任务
# 0 3 * * * /usr/bin/daily-backup.sh

at - 一次性定时任务

命令参数解释表格:

参数说明示例
-f从文件读取命令at -f script.sh 10:00
-m任务完成时发送邮件at -m 10:00
-l列出待执行任务at -l
-d删除指定任务at -d 1

时间格式示例:

格式说明
10:00今天 10:00
10:00 tomorrow明天 10:00
now + 1 hour1 小时后
now + 2 days2 天后
midnight午夜
noon中午

指令输出示例:

$ at 10:00
at> echo "Hello World" > /tmp/hello.txt
at> <EOT>
job 1 at Mon Dec 15 10:00:00 2023

$ at -l
1	Mon Dec 15 10:00:00 2023 a user

$ at now + 1 hour
at> /usr/bin/backup.sh
at> <EOT>
job 2 at Mon Dec 15 15:30:00 2023

防火墙命令

ufw - Ubuntu 防火墙

命令参数解释表格:

参数说明示例
enable启用防火墙ufw enable
disable禁用防火墙ufw disable
status查看状态ufw status
allow允许端口ufw allow 80
deny拒绝端口ufw deny 22
delete删除规则ufw delete allow 80
reload重新加载ufw reload

指令输出示例:

$ ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
22/tcp (v6)               ALLOW IN    Anywhere (v6)
80/tcp (v6)               ALLOW IN    Anywhere (v6)
443/tcp (v6)              ALLOW IN    Anywhere (v6)

$ ufw allow 8080
Rules updated
Rules updated (v6)

$ ufw deny 3306
Rules updated
Rules updated (v6)

iptables - Linux 防火墙

命令参数解释表格:

参数说明示例
-A添加规则iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-D删除规则iptables -D INPUT -p tcp --dport 80 -j ACCEPT
-L列出规则iptables -L
-F清空规则iptables -F
-P设置默认策略iptables -P INPUT DROP
-s指定源地址iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
-d指定目标地址iptables -A OUTPUT -d 8.8.8.8 -j ACCEPT
-p指定协议iptables -A INPUT -p tcp -j ACCEPT
--dport目标端口iptables -A INPUT -p tcp --dport 22 -j ACCEPT
--sport源端口iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

常用链说明:

链说明
INPUT入站流量
OUTPUT出站流量
FORWARD转发流量

常用动作说明:

动作说明
ACCEPT接受
DROP丢弃
REJECT拒绝
LOG记录日志

指令输出示例:

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
DROP       tcp  --  anywhere             anywhere            tcp dpt:telnet

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

$ iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许80端口入站流量

$ iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
# 允许192.168.1.0/24网段的入站流量

firewall-cmd - CentOS 防火墙

命令参数解释表格:

参数说明示例
--state查看状态firewall-cmd --state
--reload重新加载firewall-cmd --reload
--list-all列出所有规则firewall-cmd --list-all
--add-port添加端口firewall-cmd --add-port=80/tcp
--remove-port删除端口firewall-cmd --remove-port=80/tcp
--add-service添加服务firewall-cmd --add-service=http
--remove-service删除服务firewall-cmd --remove-service=http
--permanent永久规则firewall-cmd --permanent --add-port=80/tcp

指令输出示例:

$ firewall-cmd --state
running

$ firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 80/tcp 443/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich-rules:

$ firewall-cmd --add-port=8080/tcp
success

$ firewall-cmd --permanent --add-service=http
success

文件系统命令

mount - 挂载文件系统

命令参数解释表格:

参数说明示例
-t指定文件系统类型mount -t ext4 /dev/sda1 /mnt
-o指定挂载选项mount -o ro /dev/sda1 /mnt
-a挂载所有文件系统mount -a
-l显示已挂载信息mount -l

常用挂载选项:

选项说明
ro只读挂载
rw读写挂载
noexec禁止执行
nosuid禁止 SUID
defaults默认选项

指令输出示例:

$ mount /dev/sda1 /mnt
# 挂载分区到/mnt目录

$ mount -l
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=1638400k,mode=755)
/dev/sdb1 on /home type ext4 (rw,relatime)

$ mount -o ro /dev/sdc1 /backup
# 只读挂载备份分区

umount - 卸载文件系统

命令参数解释表格:

参数说明示例
-f强制卸载umount -f /mnt
-l延迟卸载umount -l /mnt
-a卸载所有文件系统umount -a

指令输出示例:

$ umount /mnt
# 卸载/mnt目录

$ umount -f /mnt
# 强制卸载,即使有进程在使用

$ umount -l /mnt
# 延迟卸载,等进程结束后自动卸载

关机命令

shutdown - 关机

命令参数解释表格:

参数说明示例
-h关机shutdown -h now
-r重启shutdown -r now
-c取消关机shutdown -c
-t设置延迟时间shutdown -t 60
-k发送信号但不关机shutdown -k

指令输出示例:

$ shutdown -h now
# 立即关机

$ shutdown -r now
# 立即重启

$ shutdown -c
# 取消关机

$ shutdown -t 60
# 设置延迟时间为60秒

$ shutdown -k
# 发送信号但不关机

reboot - 重启

命令参数解释表格:

参数说明示例
-f强制重启reboot -f
-w模拟重启reboot -w
-d不写入日志reboot -d
-i关闭网络接口reboot -i
-n不同步磁盘reboot -n

指令输出示例:

$ reboot
# 重启系统

$ reboot -f
# 强制重启

$ reboot -w
# 模拟重启,不实际重启

halt - 停止系统

命令参数解释表格:

参数说明示例
-f强制停止halt -f
-i关闭网络接口halt -i
-n不同步磁盘halt -n
-w模拟停止halt -w
-d不写入日志halt -d

指令输出示例:

$ halt
# 停止系统

$ halt -f
# 强制停止系统

$ halt -w
# 模拟停止,不实际停止

poweroff - 关闭电源

命令参数解释表格:

参数说明示例
-f强制关闭poweroff -f
-w模拟关闭poweroff -w
-d不写入日志poweroff -d
-i关闭网络接口poweroff -i
-n不同步磁盘poweroff -n

指令输出示例:

$ poweroff
# 关闭电源

$ poweroff -f
# 强制关闭电源

$ poweroff -w
# 模拟关闭电源,不实际关闭

init - 切换运行级别

命令参数解释表格:

参数说明示例
0关机init 0
1单用户模式init 1
2多用户模式init 2
3多用户模式(无图形)init 3
5多用户模式(有图形)init 5
6重启init 6

指令输出示例:

$ init 0
# 关机

$ init 6
# 重启

$ init 3
# 切换到多用户模式(无图形界面)

$ init 5
# 切换到多用户模式(有图形界面)

systemctl - 系统控制

命令参数解释表格:

参数说明示例
poweroff关机systemctl poweroff
reboot重启systemctl reboot
halt停止系统systemctl halt
suspend挂起systemctl suspend
hibernate休眠systemctl hibernate

指令输出示例:

$ systemctl poweroff
# 关机

$ systemctl reboot
# 重启

$ systemctl halt
# 停止系统

$ systemctl suspend
# 挂起系统

$ systemctl hibernate
# 休眠系统

硬件信息命令

lscpu - 显示 CPU 信息

命令参数解释表格:

参数说明示例
-p显示所有核心lscpu -p
-e显示扩展信息lscpu -e
-a显示所有信息lscpu -a

指令输出示例:

$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  2
Core(s) per socket:  4
Socket(s):           2
NUMA node(s):        2
Vendor ID:           GenuineIntel
CPU family:          6
Model:               142
Model name:          Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
Stepping:            10
CPU MHz:             1992.000
CPU max MHz:         4100.0000
CPU min MHz:         1200.0000
BogoMIPS:            4192.00
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            8192K
NUMA node0 CPU(s):    0-3
NUMA node1 CPU(s):    4-7

lsblk - 显示块设备信息

命令参数解释表格:

参数说明示例
-f显示文件系统lsblk -f
-b显示块设备lsblk -b
-p显示挂载点lsblk -p
-a显示所有设备lsblk -a

指令输出示例:

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 1000.2G  0 disk
├─sda1        8:1    0   512M  0 part /boot/efi
├─sda2        8:2    0 995.2G  0 part /
└─sda3        8:3    0    5G  0 part /home

hdparm - 显示硬盘信息

命令参数解释表格:

参数说明示例
-i显示硬盘信息hdparm -i /dev/sda
-x显示扩展信息hdparm -x /dev/sda
-C显示缓存信息hdparm -C /dev/sda
-T显示传输速度hdparm -T /dev/sda

指令输出示例:

$ hdparm -i /dev/sda
/dev/sda:
 Timing cached reads:   12 ms
 Timing buffered disk reads:  12 ms

内核模块命令

lsmod - 显示已加载的内核模块

命令参数解释表格:

参数说明示例
-e显示扩展信息lsmod -e
-a显示所有模块lsmod -a

指令输出示例:

$ lsmod
Module                  Size  Used by

modprobe - 加载或卸载内核模块

命令参数解释表格:

参数说明示例
-r移除模块modprobe -r module_name
-a添加模块modprobe module_name
-c显示配置文件modprobe -c

指令输出示例:

$ modprobe -r module_name
$ modprobe module_name
$ modprobe -c

系统信息命令

uname - 显示系统信息

命令参数解释表格:

参数说明示例
-a显示所有信息uname -a
-s显示内核名称uname -s
-n显示主机名uname -n
-r显示内核版本uname -r
-v显示内核编译信息uname -v
-m显示硬件架构uname -m
-p显示处理器类型uname -p
-i显示硬件平台uname -i
-o显示操作系统uname -o

指令输出示例:

$ uname -a
Linux hostname 5.4.0-74-generic #83-Ubuntu SMP Sat May 8 02:35:39 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

$ uname -r
5.4.0-74-generic

$ uname -m
x86_64

hostname - 显示或设置主机名

显示命令参数解释表格:

参数说明示例
-f显示完整主机名hostname -f
-s显示短主机名hostname -s
-d显示域名hostname -d
-i显示 IP 地址hostname -i
-y显示 NIS 域名hostname -y

指令输出示例:

$ hostname
hostname

$ hostname -f
hostname.example.com

$ hostname -i
192.168.1.100

设置主机名命令参数解释表格:

参数说明示例
set临时设置主机名hostname newname
ctl永久设置主机名(需 root 权限,推荐)hostnamectl set-hostname newname
-F从文件读取主机名hostname -F /etc/hostname

设置主机名指令输出示例:


# 永久设置主机名(推荐方法)
$ sudo hostnamectl set-hostname myserver
$ hostname
myserver

uptime - 显示系统运行时间

命令参数解释表格:

参数说明示例
-p显示运行时间uptime -p
-s显示启动时间uptime -s
-V显示版本信息uptime -V

指令输出示例:

$ uptime
14:30:45 up 2 days, 3:45, 2 users, load average: 0.52, 0.58, 0.59

$ uptime -p
up 2 days, 3 hours, 45 minutes

$ uptime -s
2023-12-13 10:45:00

who - 显示当前登录用户

命令参数解释表格:

参数说明示例
-a显示所有信息who -a
-b显示系统启动时间who -b
-d显示死进程who -d
-H显示标题行who -H
-l显示登录进程who -l
-m显示当前用户who -m
-q显示用户数量who -q
-r显示运行级别who -r
-s显示简短信息who -s
-T显示终端状态who -T
-u显示空闲时间who -u
-w显示终端写状态who -w

指令输出示例:

$ who
user     pts/0        2023-12-15 10:30 (192.168.1.100)
user     pts/1        2023-12-15 14:25 (192.168.1.101)

$ who -a
           system boot  2023-12-13 10:45
           run-level 5  2023-12-13 10:45
user     + pts/0        2023-12-15 10:30   .          1234 (192.168.1.100)
user     + pts/1        2023-12-15 14:25   .          5678 (192.168.1.101)

w - 显示当前登录用户和系统负载

命令参数解释表格:

参数说明示例
-h不显示标题行w -h
-s显示简短格式w -s
-f显示远程主机w -f
-i显示 IP 地址w -i
-u显示用户信息w -u

指令输出示例:

$ w
14:30:45 up 2 days, 3:45, 2 users, load average: 0.52, 0.58, 0.59
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user     pts/0    192.168.1.100    10:30    4:05m  0.05s  0.05s bash
user     pts/1    192.168.1.101    14:25    5:05m  0.02s  0.02s w

last - 显示用户登录历史

命令参数解释表格:

参数说明示例
-n显示指定行数last -n 10
-f指定日志文件last -f /var/log/wtmp
-R不显示主机名last -R
-x显示系统关闭last -x
-a显示主机名last -a

指令输出示例:

$ last -n 5
user     pts/1        192.168.1.101    Wed Dec 15 14:25   still logged in
user     pts/0        192.168.1.100    Wed Dec 15 10:30   still logged in
user     pts/1        192.168.1.101    Wed Dec 15 09:15 - 14:20  (05:05)
user     pts/0        192.168.1.100    Tue Dec 14 16:30 - 18:45  (02:15)
user     pts/1        192.168.1.101    Tue Dec 14 14:20 - 16:25  (02:05)

wtmp begins Tue Dec 14 14:20:01 2023

date - 显示或设置系统时间

命令参数解释表格:

参数说明示例
-d显示指定日期date -d "2023-12-15"
-s设置系统时间date -s "2023-12-15 14:30:00"
-u显示 UTC 时间date -u
-R显示 RFC 格式date -R
-I显示 ISO 格式date -I

指令输出示例:

$ date
Wed Dec 15 14:30:45 CST 2023

$ date -R
Wed, 15 Dec 2023 14:30:45 +0800

$ date -I
2023-12-15

$ date -d "2023-12-15"
Fri Dec 15 00:00:00 CST 2023

cal - 显示日历

命令参数解释表格:

参数说明示例
-1显示当月cal -1
-3显示前月、当月、后月cal -3
-s以周日为第一天cal -s
-m以周一为第一天cal -m
-j显示儒略日cal -j
-y显示整年cal -y

指令输出示例:

$ cal
   December 2023
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

$ cal -3
   November 2023         December 2023          January 2024
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
          1  2  3  4                     1      1  2  3  4  5  6
 5  6  7  8  9 10 11   2  3  4  5  6  7  8   7  8  9 10 11 12 13
12 13 14 15 16 17 18   9 10 11 12 13 14 15  14 15 16 17 18 19 20
19 20 21 22 23 24 25  16 17 18 19 20 21 22  21 22 23 24 25 26 27
26 27 28 29 30         23 24 25 26 27 28 29  28 29 30 31
                       30 31

常用命令速查表

命令功能常用参数
ls列出目录内容-la, -lh, -R
cd切换目录-, ~, ..
pwd显示当前目录无
cp复制文件-r, -v, -p
mv移动文件-i, -v
rm删除文件-r, -f, -i
mkdir创建目录-p, -v
rmdir删除空目录-p
cat查看文件内容-n, -A
less分页查看文件-N, -S
head查看文件开头-n, -c
tail查看文件结尾-n, -f
grep搜索文本-i, -r, -n
find查找文件-name, -type, -mtime
sed流编辑器-i, -n, -e
awk文本处理-F, -v, -f
tar打包压缩-c, -x, -z, -f
gzip压缩文件-d, -v
ssh远程连接-p, -i, -X, -L
scp远程复制-r, -P, -i
rsync远程同步-a, -v, -z, --delete
wget下载文件-c, -O, -P, -r
curl传输数据-o, -O, -L, -H, -d
top进程监控-p, -u, -d
htop交互式进程监控-p, -u, -d
ps显示进程aux, -ef, -p
kill终止进程-9, -15, -l
df磁盘空间-h, -T, -i
free内存使用-h, -s, -t
netstat网络连接-tulpn, -a
ping网络连通性-c, -i, -s
systemctl服务管理start, stop, status
service传统服务管理start, stop, restart
aptUbuntu 包管理install, update, upgrade
yumCentOS 包管理install, update, remove
fdisk磁盘分区-l, -u
mount挂载文件系统-t, -o, -a
umount卸载文件系统-f, -l, -a
chmod修改权限-R, -v, -c
chown修改所有者-R, -v, -c
useradd创建用户-m, -s, -g, -G
passwd设置密码-l, -u, -d, -S
journalctl系统日志-f, -n, -u, -p
dmesg内核日志-T, -H, -w
export环境变量-p, -n
env显示环境变量-i, -u
unset删除环境变量无
crontab定时任务-e, -l, -r
at一次性任务-f, -l, -d
ufwUbuntu 防火墙enable, status, allow
iptablesLinux 防火墙-A, -D, -L, -F
firewall-cmdCentOS 防火墙--state, --reload, --add-port
shutdown关机-h, -r, -c
reboot重启-f, -w
halt停止系统-f, -w
poweroff关闭电源-f, -w
init切换运行级别0, 1, 3, 5, 6
lscpu显示 CPU 信息-p, -e, -a
lsblk显示块设备信息-f, -b, -p, -a
hdparm显示硬盘信息-i, -x, -C, -T
lsmod显示内核模块-e, -a
modprobe加载或卸载模块-r, -a, -c
uname显示系统信息-a, -r, -m
hostname显示主机名-f, -i
uptime显示运行时间-p, -s
who显示登录用户-a, -H, -u
w显示用户和负载-h, -s
last显示登录历史-n, -f
date显示系统时间-d, -s, -R
cal显示日历-1, -3, -y
最近更新:: 2025/8/14 09:20
Contributors: Duke
Prev
Linux 文件管理