Linux 常用命令大全

Linux 常用命令大全

一、文件与目录操作

命令 功能 常用示例 说明
ls 列出目录内容 ls -l /home (详细列表) ls -a ~ (含隐藏文件) -l:详细信息 -a:显示隐藏文件
cd 切换目录 cd /var/log cd .. (返回上级) ~ 代表用户家目录
pwd 显示当前路径 pwd 打印绝对路径
mkdir 创建目录 mkdir -p project/{src,dist} (递归创建多级) -p:自动创建父目录
touch 创建空文件/更新时间戳 touch file.txt touch -c -t 202301011200 file -c:不创建文件 -t:指定时间戳
cp 复制文件/目录 cp -r source_dir/ dest_dir/ (递归复制目录) cp -v *.log /backup (显示进度) -r:递归复制 -v:显示操作过程
mv 移动/重命名文件 mv old.txt new.txt (重命名) mv *.png ~/images/ (移动文件) 可同时操作多个文件
rm 删除文件/目录 rm -rf tmp/ (强制删除目录) rm -i *.tmp (交互式删除) ⚠️ -rf 慎用! -i:删除前确认
find 文件搜索 find / -name "*.conf" -type f (按名称搜索) find . -size +10M -exec ls -lh {} \; (查找>10MB文件并列出) -exec:对结果执行命令 {} 代表文件名

二、文件内容操作

命令 功能 常用示例 说明
cat 显示文件内容 cat file.txt cat file1 file2 > merged.txt 合并文件用 > 重定向
less 分页查看文件 less /var/log/syslog (支持 / 搜索) 推荐替代 more 支持上下滚动
head 显示文件头部 head -n 20 access.log (前20行) 默认显示10行
tail 显示文件尾部 tail -f app.log (实时追踪日志) tail -n 100 -f debug.log -f:持续跟踪文件变化
grep 文本搜索 grep -i "error" /var/log/* (忽略大小写) grep -r "TODO" src/ (递归搜索目录) -i:忽略大小写 -r:递归搜索
awk 文本处理 awk '{print $1}' access.log (打印第一列) awk -F: '{print $3}' /etc/passwd (以冒号分隔) 强大的列处理工具
sed 流编辑器 sed 's/old/new/g' file.txt (替换文本) sed -i.bak '/^#/d' config (删除注释行并备份) -i:直接修改文件

三、系统监控与管理

命令 功能 常用示例 说明
top 实时进程监控 top -u nginx (只显示nginx进程) 按 P 按CPU排序 动态刷新界面
htop 增强版进程监控 htop (支持鼠标操作) 推荐安装使用
ps 进程快照 `ps aux grep java ps -ef --forest` (显示进程树)
free 内存使用情况 free -h (人类可读格式) -h:自动转换单位 (GB/MB)
df 磁盘空间占用 df -hT /home (显示/home分区类型及空间) -T:显示文件系统类型
du 目录空间分析 `du -sh * sort -h(排序目录大小)du -h --max-depth=1 /var`
netstat 网络连接信息 `netstat -tuln grep :80` (监听80端口的进程)
ss 现代版网络工具 ss -s (统计套接字) ss -ltp (监听进程+PID) 替代 netstat 更快更详细

四、网络操作

命令 功能 常用示例 说明
ping 测试网络连通性 ping -c 4 google.com (发送4个包) -c:指定次数
curl 网络数据传输 curl -o file.zip https://example.com/file.zip (下载文件) curl -I http://site.com (仅显示HTTP头) 支持HTTPS/FTP等协议
wget 命令行下载工具 wget -c http://example.com/big.iso (断点续传) wget -r ftp://files.com/ (递归下载目录) -c:继续中断的下载
ssh 远程登录 ssh user@192.168.1.100 ssh -p 2222 user@host (指定端口) 密钥登录更安全
scp 安全文件传输 scp file.txt user@remote:/path/ (上传) scp -P 2222 user@host:~/logs/ . (下载目录) -P:指定端口 (大写)
ip 网络配置管理 ip addr show (查看IP) ip route add default via 192.168.1.1 (添加默认路由) 替代 ifconfig/route

五、权限与用户管理

命令 功能 常用示例 说明
chmod 修改文件权限 chmod u+x script.sh (给所有者添加执行权限) chmod 755 dir/ (rwxr-xr-x) 数字模式:7=rwx, 6=rw-, 5=r-x
chown 修改文件所有者 chown user:group file.txt chown -R www:www /var/www/ (递归修改) -R:递归操作
sudo 以超级用户执行命令 sudo systemctl restart nginx sudo -u postgres psql (切换用户执行) 配置在 /etc/sudoers
passwd 修改用户密码 passwd (修改当前用户) sudo passwd root (修改root密码)
useradd 添加用户 sudo useradd -m -s /bin/bash alice (创建家目录并指定shell) -m:创建家目录 -s:设置默认shell
usermod 修改用户属性 sudo usermod -aG docker jenkins (将用户加入docker组) -aG:追加用户组(避免覆盖原有组)

六、压缩与解压

格式 压缩命令 解压命令 示例
.tar tar -cvf out.tar dir/ tar -xvf file.tar -c:创建 -x:解压 -v:显示过程
.gz gzip file gunzip file.gz 或使用 zcat file.gz 查看内容
.tar.gz tar -zcvf out.tar.gz dir/ tar -zxvf file.tar.gz -z:处理gzip压缩
.zip zip -r out.zip dir/ unzip file.zip -r:递归压缩目录

七、进程与系统控制

命令 功能 常用示例 说明
kill 终止进程 kill -9 1234 (强制杀死PID 1234) killall -u user nginx (终止用户所有nginx进程) -9:SIGKILL 信号
systemctl 系统服务管理 systemctl start nginx systemctl enable docker (开机自启) systemctl status firewalld Systemd 核心命令
crontab 定时任务管理 crontab -e (编辑任务) crontab -l (列出任务) 格式: 分 时 日 月 周 命令
journalctl 查看系统日志 journalctl -u nginx --since "1 hour ago" journalctl -f (实时追踪) -u:指定服务 -f:跟随日志

八、进阶工具组合示例

  1. 统计日志中IP访问次数

    bash 复制代码
    awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
    • 解析:提取IP → 排序 → 计数 → 按访问量倒序 → 显示前10
  2. 批量重命名图片

    bash 复制代码
    find . -name "*.jpg" -exec rename 's/IMG_/vacation_/' {} \;
    • 将当前目录所有 IMG_*.jpg 改为 vacation_*.jpg
  3. 监控高内存进程

    bash 复制代码
    watch -n 5 "ps aux --sort=-%mem | head -n 10"
    • 每5秒刷新一次内存占用最高的10个进程

注意事项

  1. 危险命令警告

    • rm -rf /:删除根目录(绝对禁止!)
    • dd if=/dev/zero of=/dev/sda:擦除整个磁盘
    • chmod -R 777 /:开放全系统权限(安全漏洞!)
  2. 最佳实践

    • 使用 alias rm='rm -i' 防止误删
    • 修改关键文件前先备份(如 cp /etc/nginx.conf{,.bak}
    • 生产环境慎用 -f(强制)参数

掌握这些命令组合,配合管道 | 和重定向 >/>>,你将解锁 Linux 终端的高效生产力!建议通过 man [命令] 查看完整手册(如 man grep)。