Linux命令全场景分类记忆法:从“小白”到“大神”# 欢迎使用Markdown编辑器
将Linux所有常用命令按照功能场景分类,用“故事串联法”帮你记忆。就像搭积木一样,每个场景一组命令。
一、文件操作类(文件系统就像文件柜)
1. 导航与查看(在文件柜里找东西)
# 基础三件套
pwd # 我在哪? (Print Working Directory)
ls # 这里有什么? (LiSt)
cd # 去那里! (Change Directory)
# 高级查看
ls -l # 看详细信息(权限、大小等)
ls -a # 看所有(包括隐藏文件)
ls -lh # 看人性化大小(KB/MB/GB)
tree # 树状显示(需要安装)
记忆口诀:
pwd:我在哪?(Where am I?) ls:这里有啥?(What’s here?) cd:去那里!(Go there!)
-l:long(详细),-a:all(全部),-h:human(人性化)
2. 创建与删除(往文件柜放/取东西) bash
2. 创建和删除
```bash
#创建
touch file.txt # 创建空文件(像"触摸"一下就出现了)
mkdir folder # 创建文件夹(Make DIRectory)
mkdir -p a/b/c # 创建多级目录(-p = parents)
# 删除(危险!)
rm file.txt # 删除文件(ReMove)
rm -r folder # 删除文件夹(-r = recursive递归)
rm -rf folder # 强制删除(-f = force强制)
rm -i file.txt # 删除前询问(-i = interactive交互)
# 删除空目录
rmdir folder # 只能删除空目录(Remove DIRectory)
故事记忆:
小明整理文件柜:
轻轻touch一下,文件出现了
mkdir一个文件夹放进去
后悔了?rm掉!但要小心,-rf就像碎纸机,不可恢复!
3. 复制与移动(整理文件柜)
# 复制
cp source.txt dest.txt # 复制文件(CoPy)
cp -r source_dir dest_dir # 复制文件夹
cp -i source.txt dest.txt # 覆盖前询问
# 移动/重命名
mv old.txt new.txt # 重命名(MoVe)
mv file.txt folder/ # 移动到文件夹
mv -i old.txt new.txt # 覆盖前询问
形象比喻:
cp:复印机(复制一份)
mv:搬家公司(移动位置)或 改名贴纸(重命名)
4. 查看文件内容(阅读文件) bash
# 简单查看
cat file.txt # 全部显示(conCATenate)
head -n 10 file.txt # 看前10行
tail -n 10 file.txt # 看后10行
tail -f log.txt # 实时追踪(看日志神器)
# 分页查看
less file.txt # 上下翻页查看(比more更好)
more file.txt # 只能向下翻页
# 统计信息
wc file.txt # 统计行数、单词数、字节数
实用场景:
看配置文件:cat /etc/hosts
看日志前100行:head -n 100 app.log
实时看日志:tail -f app.log(CTRL+C退出)
二、文本处理类(文字编辑室)
1. 文本搜索(在文章中找关键词)
# grep家族(文本搜索瑞士军刀)
grep "error" log.txt # 找包含"error"的行
grep -i "error" log.txt # 忽略大小写(-i = ignore case)
grep -r "error" . # 递归搜索所有文件
grep -n "error" log.txt # 显示行号
grep -v "success" log.txt # 反选,不包含"success"的行
grep -E "error|warning" # 正则表达式(-E = Extended regex)
# 快速查找(按文件名)
find . -name "*.txt" # 找所有txt文件
find . -type f -name "*.py" # 找所有py文件(-type f = 文件)
locate filename.txt # 更快,但需要先updatedb
记忆口诀:grep = “Global Regular Expression Print”
-i:不区分大小写(i=ignore)
-r:递归搜索(r=recursive)
-n:显示行号(n=number)
-v:反选(v=reverse)
2. 文本编辑(修改文章)
三大编辑器(按学习难度排序)
nano file.txt # 最简单,有菜单提示
vim file.txt # 强大,需要学习(:q退出,:wq保存退出)
emacs file.txt # 更强大,更复杂
# 流编辑器(批量修改)
sed 's/old/new/g' file.txt # 替换文本
sed -i 's/old/new/g' file.txt # 直接修改文件
sed -n '10,20p' file.txt # 打印10-20行
# 字段提取(处理表格数据)
cut -d',' -f1,3 data.csv # 按逗号分隔,取第1、3列
awk -F',' '{print $1,$3}' data.csv # 同上,更强大
awk '/error/ {print $0}' log.txt # 打印包含error的行
vim速记:
进入vim后:
i → 插入模式(Insert)
ESC → 返回命令模式
:w → 保存(Write)
:q → 退出(Quit)
:wq → 保存并退出
:q! → 强制退出不保存
3. 排序去重(整理数据表)
3. 排序去重(整理数据表)
# 排序
sort file.txt # 按字母排序
sort -n file.txt # 按数字排序(-n = numeric)
sort -r file.txt # 倒序(-r = reverse)
# 去重
uniq file.txt # 去除相邻重复行
sort file.txt | uniq # 先去重
sort file.txt | uniq -c # 统计重复次数(-c = count)
# 组合使用
sort file.txt | uniq -c | sort -nr # 按频率降序排列
三、系统管理类(电脑管家工具箱)
1. 进程管理(任务管理器)
# 查看进程
ps # 看当前终端进程
ps aux # 看所有进程(a=all, u=user格式, x=包括无终端)
ps -ef # 另一种格式(e=every, f=full)
pstree # 树状显示进程关系
# 实时监控
top # 系统仪表盘
htop # 增强版仪表盘(需安装)
# 杀进程
kill 1234 # 温柔结束进程(发送SIGTERM信号)
kill -9 1234 # 强制杀死(发送SIGKILL信号)
pkill chrome # 按名字杀进程
killall chrome # 杀所有同名进程
信号记忆:
kill -15:请优雅地结束(默认)
kill -9:立即处决!(无法拒绝)
2. 系统信息(电脑体检)
# 系统概况
uname -a # 所有系统信息(内核版本等)
hostname # 主机名
uptime # 运行时间及负载
# 硬件信息
free -h # 内存使用(-h = human readable)
df -h # 磁盘空间(Disk Free)
du -sh folder/ # 文件夹大小(Disk Usage)
lscpu # CPU信息
lsblk # 块设备信息(磁盘分区)
# 系统日志
dmesg # 内核消息
journalctl # 系统日志(systemd系统)
快速查看脚本:
# 一键查看系统状态
alias sysinfo='echo "=== 系统信息 ==="; uname -a; echo ""; echo "=== 内存 ==="; free -h; echo ""; echo "=== 磁盘 ==="; df -h; echo ""; echo "=== 负载 ==="; uptime'
3. 用户与权限(保安系统)
# 用户管理
whoami # 我是谁?
who # 谁在登录?
w # 谁在做什么?
id # 我的身份信息(用户ID、组ID)
sudo command # 以管理员身份运行
# 权限管理
chmod 755 file # 修改权限(数字方式)
chmod u+x file # 给所有者添加执行权限
chown user:group file # 修改所有者和组
chgrp group file # 修改所属组
# 权限解释
# r=4 (read), w=2 (write), x=1 (execute)
# 755 = 所有者rwx,同组r-x,其他r-x
权限记忆图:
权限数字: r w x
↓ ↓ ↓
二进制: 4 2 1
例子:7 = 4+2+1 = rwx
6 = 4+2 = rw-
5 = 4+1 = r-x
4. 网络管理(网管工具箱)
# 网络状态
ifconfig # 查看IP地址(旧版)
ip addr # 查看IP地址(新版)
netstat -tuln # 查看端口监听
ss -tuln # 更快查看端口
# 连接测试
ping baidu.com # 测试连通性
traceroute baidu.com # 追踪路径
curl https://baidu.com # 获取网页
wget https://example.com/file.zip # 下载文件
# 网络调试
nslookup baidu.com # DNS查询
dig baidu.com # 更详细的DNS查询
telnet host port # 测试端口连接
nc -zv host port # 测试端口(netcat)
四、软件包管理类(应用商店)
1. Debian/Ubuntu系列(apt家族)
# 更新软件源
sudo apt update # 更新软件列表
sudo apt upgrade # 升级已安装软件
sudo apt full-upgrade # 完整升级(可能删除软件)
# 安装卸载
sudo apt install vim # 安装软件
sudo apt remove vim # 卸载软件(保留配置)
sudo apt purge vim # 彻底卸载(删除配置)
sudo apt autoremove # 删除不需要的依赖
# 搜索查看
apt search keyword # 搜索软件
apt show package # 查看软件信息
apt list --installed # 查看已安装软件
2. RedHat/CentOS系列(yum/dnf家族)
# yum(较老系统)
sudo yum update # 更新所有软件
sudo yum install vim # 安装
sudo yum remove vim # 卸载
sudo yum search vim # 搜索
# dnf(新版,yum的升级版)
sudo dnf update
sudo dnf install vim
sudo dnf remove vim
3. 通用解包安装
bash
# tar包(最常见)
tar -xzvf file.tar.gz # 解压 .tar.gz
tar -xjvf file.tar.bz2 # 解压 .tar.bz2
tar -xvf file.tar # 解压 .tar
# zip包
unzip file.zip # 解压
zip -r archive.zip folder # 压缩
# 从源码安装通用流程
./configure
make
sudo make install
tar参数记忆:
-x:解压(extract)
-z:处理gzip压缩
-j:处理bzip2压缩
-v:显示进度(verbose)
-f:指定文件名(file)
五、磁盘管理类(硬盘分区师)
# 磁盘分区
fdisk -l # 查看所有磁盘分区
fdisk /dev/sda # 操作磁盘分区(危险!)
# 格式化
mkfs.ext4 /dev/sda1 # 格式化为ext4文件系统
# 挂载卸载
mount /dev/sda1 /mnt # 挂载分区
umount /mnt # 卸载分区
mount -a # 挂载/etc/fstab中的所有分区
# 磁盘检查
fsck /dev/sda1 # 检查并修复文件系统
badblocks /dev/sda # 检查坏道
六、定时任务类(闹钟)
# 一次性定时
at 14:30 # 在14:30执行(然后输入命令)
at now + 2 hours # 2小时后执行
atq # 查看等待的任务
atrm 1 # 删除任务1
# 周期性定时(crontab)
crontab -e # 编辑定时任务
crontab -l # 查看定时任务
crontab -r # 删除所有定时任务
# crontab格式记忆
# * * * * * command
# │ │ │ │ │
# │ │ │ │ └── 星期几 (0-7, 0和7都是周日)
# │ │ │ └──── 月份 (1-12)
# │ │ └────── 日 (1-31)
# │ └──────── 小时 (0-23)
# └────────── 分钟 (0-59)
七、环境变量与别名(个性化设置)
# 环境变量
echo $PATH # 查看PATH变量
export PATH=$PATH:/new/path # 临时添加PATH
# 永久添加:写入 ~/.bashrc 或 ~/.bash_profile
# 别名(懒人必备)
alias ll='ls -lh' # 创建别名
alias rm='rm -i' # 让rm变成安全模式
alias ..='cd ..'
alias ...='cd ../..'
unalias ll # 删除别名
# 配置文件
source ~/.bashrc # 重新加载配置
八、Shell编程类(自动化脚本)
# 变量
name="小明" # 定义变量
echo $name # 使用变量
# 条件判断
if [ $age -gt 18 ]; then
echo "成年人"
else
echo "未成年人"
fi
# 循环
for i in {1..10}; do
echo $i
done
while true; do
echo "无限循环"
sleep 1
done
# 函数
myfunc() {
echo "这是我的函数"
}
myfunc # 调用函数
九、快捷键类(效率倍增器)
# 终端快捷键
CTRL+C # 终止当前命令
CTRL+Z # 暂停当前命令(可用fg恢复)
CTRL+D # 退出终端/结束输入
CTRL+L # 清屏(等同于clear)
CTRL+R # 搜索历史命令
CTRL+A # 光标移到行首
CTRL+E # 光标移到行尾
CTRL+U # 删除光标前所有内容
CTRL+K # 删除光标后所有内容
CTRL+W # 删除前一个单词
!! # 上一条命令
!vim # 最近一条vim开头的命令
十、实战记忆表
按场景速查表:
场景 核心命令 记忆口诀
迷路了 pwd, ls, cd "我在哪?有啥?去哪!"
找文件 find, locate, grep "find按名找,grep按内容找"
看日志 tail -f, less, grep error "tail -f 实时追,grep error 查错误"
杀进程 ps aux | grep, kill -9 "ps找凶手,kill -9处决"
装软件 apt install, yum install "apt是Debian,yum是RedHat"
看状态 top, df -h, free -h "top看CPU,df看磁盘,free看内存"
传文件 scp, rsync, wget "scp传单个,rsync同步,wget下载"
解压包 tar -xzvf, unzip "tar解.tar.gz,unzip解.zip"
日常维护检查清单:
# 健康检查脚本
#!/bin/bash
echo "===== 系统健康检查 ====="
echo "1. 系统负载:" && uptime
echo ""
echo "2. 内存使用:" && free -h
echo ""
echo "3. 磁盘空间:" && df -h
echo ""
echo "4. 登录用户:" && who
echo ""
echo "5. 最近重启:" && last reboot | head -5
记忆心法总结:
1. 分层记忆法
第一层:每天必用的10个命令(ls, cd, pwd, cat, grep, ps, top, ssh, scp, vim)
第二层:每周用几次的20个命令
第三层:每月用几次的30个命令
第四层:查手册用的其他命令
2. 场景关联法
不要记命令本身,记使用场景:
服务器卡了 → top → ps aux → kill
磁盘满了 → df -h → du -sh * → 找到大文件删除
网络不通 → ping → ifconfig → netstat
3. 肌肉记忆法
每天刻意练习:
每天5分钟练习 alias practice=‘echo “练习时间!” && ls -la && pwd && ps aux | head
-5 && df -h’
4. 创建个人速查手册
# 创建自己的命令库 cat >> ~/.my_commands << 'EOF'
# === 常用命令速查 ===
# 导航: pwd, ls, cd, mkdir, rm
# 查看: cat, less, tail -f, head
# 搜索: grep, find, locate
# 进程: ps, top, kill, pstree
# 网络: ping, ifconfig, netstat, curl
# 系统: df, du, free, uname, uptime
# 权限: chmod, chown, sudo
# 软件: apt, yum, tar, unzip
最后的建议:
20/80原则:20%的命令解决80%的问题,先掌握这些
不要背手册:用到什么学什么
善用帮助:man 命令、命令 --help、tldr 命令
犯错是学习:在测试环境大胆尝试
分享是最好的学习:教会别人,自己理解更深

1万+

被折叠的 条评论
为什么被折叠?



