第一部分:基础入门指令
文件与目录操作
# 查看当前目录
pwd
# 列出文件
ls # 简单列表
ls -la # 详细列表(包括隐藏文件)
ls -lh # 人类可读的文件大小
# 目录操作
mkdir dirname # 创建目录
mkdir -p path/to/dir # 创建多级目录
rmdir dirname # 删除空目录
# 切换目录
cd /path # 绝对路径
cd .. # 上级目录
cd ~ # 家目录
cd - # 返回上一次目录
# 文件操作
touch filename # 创建空文件
cp source dest # 复制文件
cp -r source dest # 递归复制目录
mv source dest # 移动/重命名
rm filename # 删除文件
rm -rf dirname # 强制递归删除(谨慎使用!)
文件查看与编辑
# 查看文件内容
cat filename # 显示全部内容
less filename # 分页查看
head -n 10 file # 查看前10行
tail -n 20 file # 查看后20行
tail -f logfile # 实时查看日志
# 文本处理
grep "pattern" file # 搜索文本
grep -r "text" dir # 递归搜索
grep -i "text" file # 忽略大小写
# 文件比较
diff file1 file2 # 比较文件差异
第二部分:系统管理指令
进程管理
# 进程查看
ps aux # 查看所有进程
ps -ef | grep nginx # 查找特定进程
top # 实时进程监控
htop # 增强版top(需安装)
# 进程控制
kill PID # 结束进程
kill -9 PID # 强制结束
pkill process_name # 按名称结束进程
# 后台作业
command & # 后台运行
jobs # 查看后台作业
fg %1 # 调到前台
bg %1 # 后台继续运行
系统信息
# 系统状态
uname -a # 系统信息
uptime # 运行时间
free -h # 内存使用
df -h # 磁盘空间
du -sh dirname # 目录大小
# 硬件信息
lscpu # CPU信息
lsblk # 块设备信息
lspci # PCI设备
lsusb # USB设备
用户与权限
# 用户管理
whoami # 当前用户
id username # 用户信息
sudo command # 以管理员身份执行
su - username # 切换用户
# 权限管理
chmod 755 file # 修改权限
chmod +x script.sh # 添加执行权限
chown user:group file # 修改所有者
chown -R user dir # 递归修改
第三部分:网络与通信
网络配置与测试
# 网络信息
ip addr show # 显示IP地址
ifconfig # 传统网络配置(已过时)
netstat -tulpn # 网络连接状态
ss -tulpn # netstat的现代替代
# 网络测试
ping hostname # 连通性测试
traceroute hostname # 路由追踪
mtr hostname # 增强版traceroute
dig domain.com # DNS查询
nslookup domain.com # DNS查询(旧版)
文件传输
# 下载工具
wget URL # 简单下载
wget -c URL # 断点续传
curl URL # 更强大的下载工具
# 远程传输
scp file user@host:/path # 安全复制
rsync -avz source dest # 高效同步
第四部分:实用工具与技巧
文本处理三剑客
# grep - 文本搜索
grep -v "exclude" file # 反向匹配
grep -E "pattern" file # 扩展正则表达式
grep -A 3 -B 3 "text" file # 显示前后行
# sed - 流编辑器
sed 's/old/new/g' file # 全局替换
sed -n '10,20p' file # 显示10-20行
sed '/pattern/d' file # 删除匹配行
# awk - 文本分析工具
awk '{print $1}' file # 打印第一列
awk -F':' '{print $1}' /etc/passwd # 指定分隔符
awk '/pattern/ {count++} END {print count}' file # 计数
压缩与归档
# tar - 归档工具
tar -czvf archive.tar.gz dir/ # 创建压缩包
tar -xzvf archive.tar.gz # 解压
tar -tzvf archive.tar.gz # 查看内容
# 其他压缩工具
zip -r archive.zip dir/ # zip压缩
unzip archive.zip # zip解压
gzip file # gzip压缩
gunzip file.gz # gzip解压
包管理(根据不同发行版)
# Ubuntu/Debian (APT)
apt update # 更新源列表
apt upgrade # 升级软件包
apt install package # 安装软件
apt remove package # 删除软件
# CentOS/RHEL (YUM/DNF)
yum install package # 安装软件
yum update # 更新软件
dnf install package # DNF(新版YUM)
# Arch Linux (Pacman)
pacman -Syu # 更新系统
pacman -S package # 安装软件
pacman -R package # 删除软件
第五部分:实用场景示例
场景1:日志分析
# 查找错误日志
grep -i "error" /var/log/syslog
# 统计访问日志的IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -20
# 实时监控日志
tail -f /var/log/nginx/access.log | grep "404"
场景2:系统监控脚本
#!/bin/bash
# 监控系统资源
echo "=== 系统状态报告 ==="
echo "时间: $(date)"
echo "负载: $(uptime)"
echo "内存: $(free -h | grep Mem)"
echo "磁盘:"
df -h | grep -E "Filesystem|/dev/sd"
echo "前5个CPU进程:"
ps aux --sort=-%cpu | head -6
场景3:批量文件处理
# 批量重命名
for file in *.txt; do
mv "$file" "backup_$file"
done
# 批量转换文件编码
find . -name "*.txt" -exec iconv -f GBK -t UTF-8 {} -o {}.utf8 \;
# 查找并删除临时文件
find /tmp -name "*.tmp" -mtime +7 -delete
第六部分:高级技巧
快捷键与历史
Ctrl + C # 终止当前命令
Ctrl + Z # 暂停进程
Ctrl + D # 退出终端
Ctrl + R # 搜索历史命令
!! # 上一条命令
!$ # 上一条命令的最后一个参数
管道与重定向
# 管道:将一个命令的输出作为另一个命令的输入
ls -la | grep ".conf" | wc -l
# 重定向
command > file # 输出重定向(覆盖)
command >> file # 输出重定向(追加)
command < file # 输入重定向
command 2> error.log # 错误重定向
command &> all.log # 所有输出重定向
命令组合
# 顺序执行
command1 ; command2 # 无论command1是否成功都执行command2
command1 && command2 # 只有command1成功才执行command2
command1 || command2 # 只有command1失败才执行command2
# 命令替换
echo "今天是 $(date)"
发表回复