Linux指令大全:从入门到精通

第一部分:基础入门指令

文件与目录操作

# 查看当前目录
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)"

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注