Linux常用命令总结


Linux常用命令完全指南

Linux是服务端开发和运维的基础平台,熟练使用Linux命令行是每个开发者的必备技能。本文将系统分类介绍最常用的Linux命令,从文件操作到系统监控,从网络调试到权限管理,每个命令都配有实际使用示例,帮助你快速上手Linux命令行操作。

一、文件与目录操作

1. 目录导航与文件查看

# 目录切换
cd /var/log          # 切换到绝对路径
cd ..                # 返回上级目录
cd -                 # 返回上次所在目录
cd ~                 # 回到home目录

# 查看文件列表
ls -la               # 详细列表(含隐藏文件)
ls -lhS              # 按文件大小排序
ls -lht              # 按修改时间排序

# 查看文件内容
cat file.txt                  # 显示全部内容
head -n 20 file.txt           # 前20行
tail -n 20 file.txt           # 后20行
tail -f /var/log/nginx.log    # 实时追踪日志
less file.txt                 # 分页查看(支持搜索)

2. 文件搜索

# 按名称搜索
find /var/www -name "*.php"
find . -type f -mtime -7           # 7天内修改的文件
find . -type f -size +100M         # 大于100MB的文件
find . -name "*.log" -delete       # 搜索并删除

# 按内容搜索
grep "error" /var/log/app.log
grep -r "function" --include="*.php" .
grep -i "warning" app.log          # 忽略大小写
grep -c "ERROR" app.log            # 统计匹配行数

# 结合find和grep
find . -name "*.php" -exec grep -l "deprecated" {} ;

3. 文件操作

# 复制、移动、删除
cp -r /src /dst            # 递归复制
mv old_name new_name       # 移动/重命名
rm -rf directory/          # 递归强制删除(谨慎使用)

# 创建链接
ln -s /target/path link_name   # 创建软链接

# 文件权限
chmod 755 script.sh            # rwxr-xr-x
chmod -R 644 /var/www/         # 递归设置
chown www-data:www-data file   # 修改所有者

# 磁盘使用
du -sh /var/www/*      # 各目录大小
du -sh * | sort -rh    # 按大小排序
df -h                  # 磁盘空间

二、文本处理

1. sed流编辑器

# 替换文本
sed -i "s/old_text/new_text/g" file.txt     # 全局替换
sed -i "/^#/d" file.txt                      # 删除注释行
sed -n "10,20p" file.txt                     # 打印第10-20行

# 批量修改配置
sed -i "s/max_connections = 100/max_connections = 500/" my.cnf

2. awk文本分析

# 提取列
awk "{print $1, $4}" access.log             # 打印第1和4列
awk -F: "{print $1}" /etc/passwd            # 以:分隔,打印用户名

# 统计Nginx访问量TOP10
awk "{print $1}" access.log | sort | uniq -c | sort -rn | head -10

# 统计每个状态码的数量
awk "{print $9}" access.log | sort | uniq -c | sort -rn

3. 其他文本工具

# 排序与去重
sort file.txt | uniq              # 排序去重
sort -t: -k3 -n /etc/passwd       # 按第3列数字排序

# 统计
wc -l file.txt                    # 行数
wc -w file.txt                    # 单词数

# 格式转换
dos2unix file.sh                  # Windows转Unix格式

三、进程管理

# 查看进程
ps aux                        # 所有进程
ps aux | grep nginx           # 过滤特定进程
pgrep -f "php-fpm"            # 按名称查找PID

# 系统监控
top                           # 实时监控
htop                          # 增强版(需安装)
uptime                        # 系统运行时间和负载

# 资源使用
free -h                       # 内存使用
vmstat 1 5                    # 虚拟内存统计

# 进程控制
kill -9 PID                   # 强制终止
kill -HUP PID                 # 重新加载配置
pkill -f "process_name"       # 按名称终止

四、网络工具

# 网络连接
netstat -tlnp                 # 监听端口
ss -tlnp                      # 更快的替代
lsof -i :80                   # 80端口占用

# 网络调试
ping google.com
traceroute google.com
nslookup example.com
dig example.com

# HTTP请求
curl -I https://example.com           # 查看响应头
curl -X POST -d "data" url            # POST请求
wget -O file.zip https://example.com/file.zip

# 防火墙
ufw allow 80/tcp
ufw allow 443/tcp
ufw status
iptables -L -n

五、压缩与备份

# tar压缩解压
tar -czf backup.tar.gz /var/www/      # 压缩
tar -xzf backup.tar.gz                 # 解压
tar -czf backup_$(date +%Y%m%d).tar.gz /data/  # 带日期的备份

# zip格式
zip -r archive.zip folder/
unzip archive.zip

# 数据库备份
mysqldump -u root -p dbname > backup.sql
mysqldump -u root -p --all-databases > all.sql

六、系统管理

# 服务管理(systemd)
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl reload nginx     # 不中断服务重载配置
systemctl enable nginx     # 开机自启
systemctl status nginx     # 查看状态

# 定时任务
crontab -e                 # 编辑定时任务
# 每天凌晨3点备份数据库
0 3 * * * mysqldump -u root -pdbpass mydb > /backup/db_$(date +\%Y\%m\%d).sql

# 用户管理
useradd -m -s /bin/bash username
passwd username
usermod -aG sudo username   # 加入sudo组

掌握Linux命令行是成为全栈开发者的重要一步。建议在日常开发中多用命令行操作,逐渐积累经验。对于不熟悉的命令,善用man手册和--help参数,它们是最好的参考文档。


0.060522s