一切皆文件
| 目录 | 作用 |
|---|---|
| /bin | 存放着最经常使用的命令的可执行文件,本质是/usr/bin的软链接。 |
| /usr | 用户的很多应用程序和文件都放在这个目录下 |
| /proc | 一个系统中运行的进程的虚拟映射的目录 |
| /home | 每个用户都有一个自己的目录 |
文件与目录
| 命令 | 说明 | 示例 / 常用选项 |
|---|---|---|
pwd |
显示绝对路径 | pwd |
ls |
列出目录内容 | -a 所有文件 -l 详细信息 -R 递归 ls-al缩写为ll |
cd |
切换目录 | cd .. 上级 cd ~回家 cd - 返回上次目录 |
mkdir |
创建目录 | -p 递归创建多层 mkdir -p a/b/c |
touch |
创建空文件 | touch a.txt |
cp |
复制 | -r 递归复制目录 cp -r dir1 dir2 |
rm |
删除 | -r 递归 -f 强制 ⚠️ rm -rf ./目录.防止误删 |
mv |
重命名 / 移动 | mv 旧 新 /mv 文件 目录 |
cat |
查看文件 | -n 显示行号 |
tail |
查看文件尾部 | -n 20 显示20行 -F 实时追踪 |
echo |
输出内容到控制台 | echo "hello" |
> >> |
重定向(区分管道|) | > 覆盖 >> 追加 (可以结合ls、cat、echo使用) |
ln |
创建链接 | -s 软链接 ln -s 原文件 链接名 |
查找与过滤
find --- 查找文件或目录
find [搜索范围] [选项]
大小单位:
c字节k千字节M兆字节G吉字节
find ./ -name "*.txt" # 查找所有 .txt 文件(支持通配符)
find ./ -user "zxf" # 查找用户 zxf 的所有文件
find ./ -size +200c # 查找大于 200 字节的文件(`+n` 大于 `-n` 小于 `n` 等于)
grep 与管道符 | --- 过滤搜索
管道符 |:将前一个命令的输出传递给后面的命令处理。
grep:对文本根据正则表达式匹配,匹配成功的行,把整行输出到终端。
grep [选项] 查找内容 源文件
| 选项 | 功能 |
|---|---|
-n |
显示匹配行及其行号 |
find ./ | grep a.txt # 在 find 结果中过滤
ll | grep -n zx # 过滤包含 zx 的行并显示行号
cat passwd | grep -n wu # 在文件中查找包含 wu 的行
软件包管理(APT)
APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。
| 命令 | 说明 |
|---|---|
sudo apt update |
更新软件包列表(装软件前先跑) |
sudo apt install 包名 |
安装软件 -y 自动确认 |
sudo apt remove 包名 |
卸载软件 |
sudo apt search 关键词 |
搜索软件包 |
sudo apt list --installed | grep 关键词 |
查看已安装的包 |
Vim 编辑器
vim是Unix操作系统最通用的文本编辑器。可以通过颜色辨别语法正确性
sudo apt install vim安装
三种模式: i/a/o → 编辑模式 : → 命令模式(w保存 q退出 !强制执行)
| 操作 | 命令 |
|---|---|
| 复制一行 | yy |
| 复制 n 行 | y数字y |
| 粘贴 | p |
| 撤销 | u |
| 删除一行 | dd |
| 删除 n 行 | d数字d |
用户与权限
用户管理
root 用户是具有最高权限的超级用户
默认root 用户是被锁定的,通过 sudo 命令来临时获取 root 权限
| 命令 | 说明 |
|---|---|
sudo passwd root |
设置 root 密码 |
passwd -l 用户名 |
锁定账号,禁止密码登录 |
passwd -u 用户名 |
解锁账号 |
su 用户名 / su - 用户名 |
切换用户(- 同时切换环境变量) |
exit |
退出当前用户 |
useradd -m 用户名 |
添加用户(-m 同时创建家目录) |
useradd -g 组名 用户名 |
添加用户到指定组 |
userdel -r 用户名 |
删除用户及家目录 |
usermod -l 新名 旧名 |
修改用户名 |
usermod -g 组名 用户名 |
修改用户所属组 |
id 用户名 |
查看用户信息 |
cat /etc/passwd |
查看所有用户 |
用户组管理
| 命令 | 说明 |
|---|---|
groupadd 组名 |
新增组 |
groupdel 组名 |
删除组 |
groupmod -n 新名 旧名 |
修改组名 |
cat /etc/group |
查看所有组 |
文件权限

ls -l 显示的权限位:- rwx r-x r-- → 类型 所有者 所属组 其他人
文件类型: - 普通文件 d 目录 l 链接
用户:u所有者 g所有组 o其他人 a所有人(u、g、o的总和)
权限值: r=4 w=2 x=1
| 命令 | 说明 |
|---|---|
chmod 755 文件 |
数字方式修改权限 |
chmod u+x,g-w 文件 |
符号方式修改权限 |
chmod -R 755 目录 |
递归修改 |
chown 用户:组 文件 |
修改所有者和所属组 |
chgrp 组名 文件 |
修改所属组 |
压缩解压(tar)
| 命令 | 说明 |
|---|---|
tar -zcvf 包名.tar.gz 内容 |
打包压缩 |
tar -zxvf 包名.tar.gz |
解压缩 |
选项:
zgzip压缩c创建x解压v显示过程f指定文件(放最后)
磁盘与网络
| 命令 | 说明 |
|---|---|
df -h |
查看磁盘空间 |
du -a 目录 |
查看目录磁盘占用 |
ifconfig |
查看网络接口(需装 net-tools) |
ping 主机 |
测试网络连通性 |
hostname |
查看主机名 |
whoami |
当前登录用户名 |
who |
所有登录用户 |
进程管理
| 命令 | 说明 |
|---|---|
ps -aux |
查看所有进程 |
ps -ef |
查看进程父子关系 |
ps -ef | grep 关键词 |
过滤查找进程 |
free -mh |
查看服务器内存使用 |
top |
实时监控系统状态(-d3 每3秒刷新 -p端口指定进程) |
netstat -anp | grep 进程号 |
查看进程网络信息 |
netstat -nlp | grep 端口号 |
查看端口占用 |
kill 进程PID 或者killall 进程名 |
杀死进程(-9强制杀死) |
常用快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + L |
清屏(clear) |
Ctrl + C |
停止进程 / 退出 |
Tab |
自动补全(按两次列出所有) |
↑ ↓ |
历史命令 |
Ctrl + U或者clear |
清空当前行 |
| win + 空格 | 在虚拟机里切换语言 |
帮助命令
帮助手册:man man
默认手册不完整:安装完整sudo apt install manpages manpages-dev
| 命令 | 说明 |
|---|---|
man 命令 |
查看命令手册 |
help 命令 |
查看 shell 内建命令(没有单独的可执行文件或手册页)帮助 |
路径工具
| 命令 | 说明 | 示例 |
|---|---|---|
basename |
取路径里的文件名称 | basename /a/b/c.txt → c.txt |
dirname |
去除文件名,返回剩下的目录路径 | dirname /a/b/c.txt → /a/b |
定时任务(crontab)
服务管理
| 命令 | 说明 |
|---|---|
sudo systemctl restart cron |
重启 crontab 服务 |
systemctl status cron |
查看服务状态 |
crontab 选项
crontab [选项]
| 选项 | 功能 |
|---|---|
-e |
编辑 crontab 定时任务 |
-l |
查询 crontab 任务 |
-r |
删除当前用户所有的 crontab 任务 |
时间格式
分 时 日 月 周 执行的命令
* * * * * command
| 项目 | 含义 | 范围 |
|---|---|---|
第一个 * |
分钟 | 0-59 |
第二个 * |
小时 | 0-23 |
第三个 * |
天 | 1-31 |
第四个 * |
月 | 1-12 |
第五个 * |
星期几 | 0-7(0 和 7 都代表星期日) |
特殊符号
| 符号 | 含义 | 示例 |
|---|---|---|
* |
任何时间 | * * * * * 每分钟执行 |
, |
不连续的时间 | 0 8,12,16 * * * 每天 8/12/16 点执行 |
- |
连续的时间范围 | 0 5 * * 1-6 周一到周六 5 点执行 |
*/n |
每隔多久执行一次 | */10 * * * * 每隔 10 分钟执行 |
💡 复杂的 cron 表达式可以直接让 AI 生成。