{% note info modern %} 📘 本文使用Butterfly主题特性优化阅读体验:

  • 点击右上角标签图标切换章节
  • 代码块支持一键复制
  • 复杂示例使用折叠功能
  • 命令行参数使用标签页分类 {% endnote %}
graph TD
    A[Linux命令] --> B[软件管理]
    A --> C[文件操作]
    A --> D[系统监控]
    A --> E[网络管理]
    B --> F[包管理器]
    B --> G[编译安装]
    C --> H[压缩解压]
    C --> I[文本处理]

软件包管理

{% tabs package-manager %}

# 更新软件源
sudo apt update

# 安装软件
sudo apt install package-name

# 卸载软件
sudo apt remove package-name    # 保留配置文件
sudo apt purge package-name     # 完全卸载

# 清理缓存
sudo apt autoremove            # 删除无用依赖
sudo apt clean                 # 清理下载缓存
# 安装rpm包
sudo rpm -ivh package.rpm

# 查询已安装
rpm -qa | grep -i package-name

# 完全卸载
sudo rpm -e package-name

# 验证签名
rpm --checksig package.rpm
# 通用编译流程
tar -xvf source.tar.gz
cd source-directory
./configure --prefix=/opt/custom
make -j$(nproc)
sudo make install

# 不同压缩格式解压命令
tar -xvf file.tar          # .tar
tar -zxvf file.tar.gz      # .tar.gz 
tar -jxvf file.tar.bz2     # .tar.bz2
# 列出已安装
snap list

# 安装应用
sudo snap install package-name --classic

# 更新应用
sudo snap refresh package-name

# 完全卸载
sudo snap remove package-name

{% endtabs %}


文件操作

压缩解压

{% tabs compression %}

# 创建tar包
tar -cvf archive.tar dir/

# 创建gz压缩包
tar -czvf archive.tar.gz dir/

# 创建bz2压缩包
tar -cjvf archive.tar.bz2 dir/
# 解压到当前目录
tar -xvf archive.tar

# 解压到指定目录
tar -xvf archive.tar -C /target/path

# 列出压缩内容
tar -tf archive.tar.gz

{% endtabs %}

文本处理

{% codeblock "grep高级用法" lang:bash %}

查找Java异常日志

grep -n 'Exception' app.log --color=auto

排除注释行

grep -v '^#' config.ini

递归搜索代码

grep -r 'main(' src/ --include='*.java' {% endcodeblock %}

awk数据处理示例
# 统计nginx访问IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr

# 计算CSV文件第二列总和
awk -F',' '{sum+=$2} END{print sum}' data.csv

# 格式化输出进程信息
ps aux | awk '{printf "%-10s %5s %s\n",$1,$2,$11}'

系统监控

{% tabs monitoring %}

# 实时进程监控
top -u www-data

# 查找Java进程
ps aux | grep '[j]ava'

# 结束进程树
pkill -9 -P parent_pid
# 内存使用排行
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head

# 磁盘空间分析
du -sh * | sort -hr
df -hT /var

{% endtabs %}


网络管理

{% tabs networking %}

# 开放HTTP端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

# 查看开放端口
sudo firewall-cmd --list-all
# 追踪路由路径
mtr -rw google.com

# 测试端口连通性
nc -zv 192.168.1.100 22

# 抓取HTTP请求
tcpdump -i eth0 -A port 80 | grep 'GET'

{% endtabs %}


进阶应用

日志分析

# 实时监控日志更新
tail -f /var/log/syslog | grep --line-buffered 'ERROR'

# 分析访问量前10的IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10

# 提取特定时间段日志
sed -n '/23\/Feb\/2025:20:00:00/,/23\/Feb\/2025:21:00:00/p' access.log

批量操作

# 批量重命名文件
rename 's/\.jpeg$/\.jpg/' *.jpeg

# 批量转换图片尺寸
mogrify -resize 800x600 *.jpg

# 并行处理文件
find . -name '*.log' | parallel gzip {}

完整命令参考

点击查看完整命令列表

系统维护

# 自动清理缓存
sudo apt autoremove

# 检查系统更新
sudo apt update && sudo apt upgrade -y

# 查看内核版本
uname -r

文件管理

# 查找大文件
find / -type f -size +100M -exec ls -lh {} \;

# 校验文件完整性
md5sum important-file

# 实时同步目录
rsync -avz --progress source/ destination/

网络工具

# 查看开放端口
netstat -tulpn

# 测试下载速度
wget -O /dev/null http://speedtest.tele2.net/10GB.zip

# 查看路由表
route -n

{% note success modern %} ✅ 最佳实践建议:

  1. 使用man command查看命令手册
  2. 复杂操作先使用--dry-run参数测试
  3. 生产环境操作前做好备份
  4. 使用版本控制系统管理重要配置文件
  5. 定期检查系统日志(/var/log/) {% endnote %}