本文整理于 2026 年 03 月,记录并归纳了一些在日常工作与学习中经常使用的 Linux 命令。通过分类整理并附以简要说明,方便后续查阅,也希望在需要时能够快速定位到对应命令。
1. 文件与目录操作
1.1 查看
1.2 创建与删除
1.3 复制与移动
2. 文件内容查看与编辑
2.1 文件内容查看
2.2 文件搜索
2.3 编辑文件
3. 权限管理
3.1 一些权限命令相关的知识
3.2 修改权限(chmod)
3.3 修改文件的拥有者(chown)
3.4 修改所属组(chgrp)
4. 归档(打包)、压缩与解压
4.1 归档(打包)和 解压
4.2 压缩
4.3 归档(打包)+ 压缩
5. 系统信息和监控
5.1 系统基本信息查看
5.2 CPU 信息查看
5.3 内存信息查看
5.4 磁盘信息查看
6. 进程管理
6.1 查看进程
6.2 查找指定进程
6.3 结束进程
1. 文件与目录操作
1.1 查看
ls # 平铺形式显示全部文件(不包含隐藏文件)
ls -a # 平铺形式显示全部文件(包含隐藏文件)
ll 或者 ls -l # 列表形式显示全部文件(不包含隐藏文件)
ll -a # 列表形式显示显示全部文件(包含隐藏文件)
ls testdir # 查看 testdir 文件夹下的相关文件
tree # 以树形结构展示目录层级
pwd # 显示当前路径
cd /path # 进入指定目录
cd .. # 返回上一级目录
cd ../.. #返回上2级目录 , 可拓展: ../../../.. 返回上多级目录
cd ~ 或 cd # 回到用户主目录
cd - # 切换回上一次目录
stat file # 查看文件详细状态信息
1.2 创建与删除
mkdir testdir # 创建一个名为 testdir 的文件夹
mkdir -p testdir/subdir # 递归创建多级目录文件夹: testdir 的文件夹下面同时有 subdir 的文件夹,可拓展:testdir/subdir/c/d...
touch file # 创建一个空文件
rm file # 删除 文件
rm -r testdir # 删除一个名为 testdir 的文件夹,包含子文件和子文件夹 (☢️慎用)
rm -rf testdir # 强制删除 testdir 文件夹下所有的文件和文件夹 (☢️危险慎用)
📚 rm -r testdir 与 rm -rf testdir 区别:
参数解释:
-r= recursive(递归)-f= force(强制)
📝 假设有如下目录结构:
testdir(主文件夹)
├── file1(子文件)
├── file2(子文件)
└── subdir(子文件夹)
└── file3(子文件只读)
如果执行:
rm -r testdir
系统会提示:
rm: remove write-protected regular file 'testdir/subdir/file3'?
你需要输入 y ,才会删除。
如果执行:
rm -rf testdir
即使各个目录下文件存在只读或者权限问题,此命令也会直接删除,不会提示询问。
☢️ 执行 rm 命令前,请再次确认目标文件是否需要删除,以避免误删重要数据。
1.3 复制与移动
cp file1 file2 # 复制文件file1,生成 file2
cp -r testdir1 testdir2 # 复制整个文件夹 testdir1,生成文件夹 testdir2
mv a b # 移动/重命名
ln -s source_name/dir_name link_name # 创建一个链接名(软连接),指向原文件或者文件夹。 解释:软链接可以理解为 Windows 的快捷方式。
2. 文件内容查看与编辑
2.1 文件内容查看
cat file # 查看文件全部内容
cat -n file # 带行号查看文件内容
tac file # 反向显示文件
nl file # 显示行号
less file # 分页查看,支持上下滚动,q 键 退出查看
more file # 分页查看(空格键翻页)
head file # 查看前10行;拓展:head -20 file, 查看前20行。
tail file # 查看后10行;拓展:tail -20 file, 查看前20行。
tail -f file.log # 实时查看日志
tail -f file.log | grep ERROR # 实时过滤错误日志
wc -l file # 统计文件总行数
wc -w file # 统计单词数
wc -c file # 统计字节数
diff file1 file2 # 比较两个文件内容的差异
sort file # 对文件内容进行排序
uniq file # 去除重复行,通常配合 sort 使用,如:sort file | uniq
2.2 文件搜索
find / -name file.txt # 查找文件
find . -type f # 查找所有文件
find . -type d # 查找目录
locate file.txt # 快速查找文件(基于数据库)
which python # 查找命令路径
whereis python # 查找程序路径和源码
grep "error" file.log # 搜索含 error 关键词的行
grep -i "error" file.log # 忽略大小写搜索
grep -n "error" file.log # 显示错误的行号
grep -r "error" /logs/ # 递归搜索,搜索整个目录
grep -v "debug" file.log # 反向过滤,排除 debug
grep -c "error" file.log #统计 error 行的数量
2.3 编辑文件
vi file #打开文件
vim file #打开文件
进入文件后相关的操作:
按键 i 进入vim编辑模式;
按键 Esc 退出编辑;
:wq # 保存并退出vim
:wq! # 保存并强制退出vim
:q # 不保存并退出vim
:q! # 不保存并强制退出vim
:w # 保存但不退出vim
:w! # 强制保存但不退出vim 解释:w-write q=quit
awk '{print $1}' file # 提取第1列的文本内容 ;可拓展:awk '{print $2}' file
📚 解释:awk ‘{print $1}’ file
📝 假设 testfile 文件内容如下:
Tom 18
Jack 20
Lucy 19
执行命令:
awk '{print $1}' testfile
结果:
Tom
Jack
Lucy
3. 权限管理
3.1 一些权限命令相关的知识
3.1.1 查看当前用户
whoami # 查看当前用户
id # 查看用户 UID GID 和所在的组
groups # 查看用户所在组
3.1.2 查看文件的权限
ls -l # 查看文件权限;更多命令,请参考 1.1 小节内容
可以显示文件的权限、拥有者、所属组、大小、时间 等详细信息。
📚 示例
-rwxr-xr-x 1 wangsan design 1024 Mar 5 15:55 test.sh
相关字段解释:
| 字段 | 含义 |
|---|---|
| – | 表示这是一个文件 ,拓展:(-文件、 d目录、 l软链接、c字符设备、b块设备) |
rwx | 拥有者(owner)的权限:可读 r,可写 w,可执行 x |
r-x | 所属组(group)的权限:可读 r,不可写 -,可执行 x |
r-x | 其他用户(others)的权限:可读 r,不可写 -,可执行 x |
| 1 | 目录项(硬链接)数量,表示有几个文件名指向这个文件目录 |
| wangsan | 拥有者用户(user) |
| design | 所属用户组(group) |
| 1024 | 文件目录大小(字节) |
| Mar 5 15:55 | 最后修改时间 |
| test.sh | 文件名 |
3.1.3 权限分组
u — 用户(文件拥有者)(User)
g — 组(Group)
o — 其他人(Others)
a — 所有人(all)
对应的结构:
rwx r-x r--
│ │ │
│ │ └── 其他用户权限
│ └────── 同组用户权限
└───────── 文件拥有者权限
其中:
r = read # 读权限
w = write # 写权限
x = execute # 执行权限
- # 无权限
3.1.4 文件权限和目录权限具有不同含义
| 权限 | 文件含义 | 目录含义 |
|---|---|---|
| r | 读取文件 | 查看目录内容 |
| w | 修改文件 | 创建删除文件 |
| x | 执行文件 | 进入目录 |
3.2 修改权限(chmod)
权限的2种表达方式
1️⃣ 符号模式
2️⃣ 数字模式
🔸 符号模式:使用字母和符号修改权限
基本格式:
chmod [对象] [操作符] [权限] 文件
- 对象:u — 用户(文件拥有者)(User)、g — 组(Group)、o — 其他人(Others)、a — 所有人(all)
- 操作符:
| 符号 | 含义 |
|---|---|
| + | 增加权限 |
| – | 删除权限 |
| = | 设置权限 |
- 权限:r=read(读)、w=write(写)、x=execute(执行)
📚 举例:
chmod g-w file # 删除组写权限
chmod u+x file # 给所有者增加执行权限
chmod u=rwx file # 用户权限设为rwx
chmod u+x,g+w,o-r file # 用户增加执行、组增加写、其他人删除读
🔸 数字模式:使用数字表示权限
权限结构:
用户 组 其他人
数字来源(二进制):
| 权限 | 二进制 | 数字 |
|---|---|---|
| r | 100 | 4 |
| w | 010 | 2 |
| x | 001 | 1 |
权限组合:
| 权限 | 数字 |
|---|---|
| — | 0 |
| –x | 1 |
| -w- | 2 |
| -wx | 3 |
| r– | 4 |
| r-x | 5 |
| rw- | 6 |
| rwx | 7 |
常见权限对照:
| 数字权限 | 字符权限 | 含义 |
|---|---|---|
| 777 | rwxrwxrwx | 所有人可读写执行 |
| 755 | rwxr-xr-x | 所有者全部权限,其他人只读执行 |
| 644 | rw-r–r– | 所有者读写,其他只读 |
| 600 | rw——- | 只有所有者可读写 |
| 700 | rwx—— | 只有所有者可操作 |
📚 举例:
chmod 777 file # 所有人可读写执行
chmod -R 755 dir # 递归修改目录权限; 其中:-R 表示递归将目录下所有文件权限全部修改
3.3 修改文件的拥有者(chown)
作用:改变 文件或目录 属于哪个用户。
chown user file # 修改文件拥有者
chown user:group file.txt # 修改拥有者和组
chown -R user:group dir/ # 递归修改目录
📚 举例:
chown root file.txt # file.txt 归 root 用户所有
3.4 修改所属组(chgrp)
作用:修改 文件所或目录 所属的用户组。
chgrp group file.txt
📚 举例:
chgrp design file.txt # 使file.txt 属于 design 组
4. 归档(打包)、压缩与解压
一个重要的概念:归档≠ 压缩
简单理解:
- 归档(Archive):把多个文件打包成一个文件
- 压缩(Compress):让文件体积变小
在 Linux 中通常是 先归档,再压缩。
4.1 归档(打包)和 解压
| 命令 | 作用 | 简单理解 |
|---|---|---|
tar -cvf file.tar dir/ | 归档目录 | 把 dir 打包成 file.tar |
tar -xvf file.tar | 解归档 | 解压 file.tar 包 |
tar -tvf file.tar | 查看内容 | 查看包内文件 |
tar -rvf file.tar file.txt | 添加文件 | 向 file.tar 中追加 |
tar -cvf backup.tar file1 file2 | 打包多个文件 | 一起归档 |
相关参数解释:
| 参数 | 含义 |
|---|---|
-c | create 创建 |
-x | extract 解压 |
| -t | list 列出内容,看看包里有什么文件 |
| -r | append 追加文件,往包里再加文件 |
-v | verbose 显示过程 |
-f | file 指定文件 |
📚 举例:
tar -cvf file.tar mydir # 把 mydir 打包成 file.tar
tar -cvf /backup/file.tar mydir # 把 mydir 打包到 backup 目录下,/backup/file.tar
tar -xvf file.tar # 解压 file.tar
tar -xvf file.tar -C /backup # 解压 file.tar 到指定目录 /backup中。解释: -C 解压到指定目录。
4.2 压缩
🔸 gzip(最常见压缩)
| 命令 | 作用 | 简单理解 |
|---|---|---|
gzip file.txt | 压缩文件 | 生成 file.txt.gz |
gunzip file.txt.gz | 解压 | 恢复原文件 |
gzip -d file.txt.gz | 解压 | 与 gunzip 相同 |
gzip -k file.txt | 保留原文件压缩 | 生成 file.txt.gz |
🔸 bzip2
| 命令 | 作用 | 简单理解 |
|---|---|---|
bzip2 file.txt | 压缩 | 生成 file.txt.bz2 |
bunzip2 file.txt.bz2 | 解压 | 恢复原文件 |
bzip2 -d file.txt.bz2 | 解压 | 与 bunzip2 相同 |
bzip2 -k file.txt | 保留原文件压缩 | 生成 file.txt.bz2 |
🔸 xz
| 命令 | 作用 | 简单理解 |
|---|---|---|
xz file.txt | 压缩 | 生成 file.txt.xz |
unxz file.txt.xz | 解压 | 恢复原文件 |
🔸 zip(跨平台常用)
Windows / Linux 都支持
| 命令 | 作用 |
|---|---|
zip file.zip file1 file2 | 压缩 |
zip -r file.zip dir/ | 压缩目录 |
unzip file.zip | 解压 |
unzip -l file.zip | 查看内容 |
📝 压缩命令对比:
| 工具 | 压缩率 | 压缩速度 | 解压速度 | 常见后缀 | 典型用途 |
|---|---|---|---|---|---|
| gzip | 中 | 很快 | 很快 | .gz | Linux最常用 |
| bzip2 | 高 | 较慢 | 较慢 | .bz2 | 比gzip压缩率高 |
| xz | 非常高 | 慢 | 中 | .xz | 高压缩率场景 |
| zip | 中 | 中 | 快 | .zip | 跨平台 |
4.3 归档(打包)+ 压缩
实际使用中通常是先打包在压缩。
常见的组合:
| 格式 | 压缩命令 | 解压命令 |
|---|---|---|
.tar.gz | tar -czvf a.tar.gz dir(常用) | tar -xzvf a.tar.gz(常用) |
.tar.bz2 | tar -cjvf a.tar.bz2 dir | tar -xjvf a.tar.bz2 |
.tar.xz | tar -cJvf a.tar.xz dir | tar -xJvf a.tar.xz |
其中:参数里的 z/j/J 分别代表 gzip / bzip2 / xz。
💡 -cvf 等类似命令,实际是三个参数:-c -v -f ,只是 Linux 命令允许把多个短参数 合并写在一起,所以:
tar -c -v -f file.tar dir/ 与 tar -cvf file.tar dir/ 效果等价
5. 系统信息和监控
5.1 系统基本信息查看
| 命令 | 作用 | 简单理解 |
|---|---|---|
uname -a | 查看系统内核信息 | 查看 Linux 系统版本 |
hostname | 查看主机名 | 当前服务器名字 |
date | 显示当前时间 | 系统时间 |
uptime | 查看系统运行时间 | 开机多久 + 系统负载 |
whoami | 当前登录用户 | 我是谁 |
who | 当前登录用户列表 | 谁在登录系统 |
w | 查看在线用户及操作 | 谁在做什么 |
5.2 CPU 信息查看
| 命令 | 作用 | 简单理解 |
|---|---|---|
lscpu | 查看CPU详细信息 | CPU型号、核心数 |
top | 实时查看系统资源 | CPU / 内存 / 进程 |
htop | 增强版top | 更直观(需要安装) |
💡 top / htop 按 q 退出实时监控。
5.3 内存信息查看
| 命令 | 作用 | 简单理解 |
|---|---|---|
free -h | 查看内存使用情况 | RAM 和 Swap |
vmstat | 内存和系统状态 | 系统性能统计 |
cat /proc/meminfo | 查看内存详细信息 | Linux内存详细数据 |
5.4 磁盘信息查看
| 命令 | 作用 | 简单理解 |
|---|---|---|
df -h | 查看磁盘空间 | 硬盘使用情况 |
du -sh | 查看目录大小 | 文件夹占用空间 |
lsblk | 查看磁盘结构 | 磁盘分区 |
fdisk -l | 查看磁盘分区表 | 磁盘信息 |
6. 进程管理
6.1 查看进程
| 命令 | 作用 | 简单理解 |
|---|---|---|
ps | 查看当前终端进程 | 查看当前窗口运行的程序 |
ps -ef | 查看系统所有进程 | 最常用查看全部进程 |
ps aux | 另一种显示全部进程方式 | 显示更详细 |
6.2 查找指定进程
| 命令 | 作用 | 示例 |
|---|---|---|
grep | 过滤进程 | ps -ef | grep nginx |
pgrep | 查找进程PID | pgrep nginx |
pidof | 查找程序PID | pidof nginx |
6.3 结束进程
| 命令 | 作用 | 简单理解 |
|---|---|---|
kill PID | 结束进程 | 根据PID结束 |
kill -9 PID | 强制结束 | 强制杀死 |
killall 进程名 | 按名称结束 | 杀死所有同名进程 |
pkill 进程名 | 按名称结束 | 类似 killall |
| xkill | 鼠标点击窗口杀死程序 | 图形界面程序的进程 |
一些实用命令:
clear 或 Ctrl+l #清除当前命令窗口显示,但保留历史记录,可以鼠标滚动查看
Ctrl + c #终止正在执行的命令
Ctrl + d # 退出 terminal
↑/↓ 键 # 切换历史命令
输入前几个字母然后按 Tab 命令自动补全
vncconfig //表示可以从window系统复制文本到linux系统;
vncserver –list //列出正在使用的端口;
vncserver –kill 端口 //结束相关端口;