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 (显示进程树) | aux :显示所有进程 |
free | 内存使用情况 | free -h (人类可读格式) | -h :自动转换单位 (GB/MB) |
df | 磁盘空间占用 | df -hT /home (显示/home分区类型及空间) | -T :显示文件系统类型 |
du | 目录空间分析 | du -sh * | sort -h (排序目录大小)du -h --max-depth=1 /var | -s :总计--max-depth :遍历深度 |
netstat | 网络连接信息 | netstat -tuln | grep :80 (监听80端口的进程) | -t :TCP-u :UDP-l :监听状态 |
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 :跟随日志 |
八、进阶工具组合示例
-
统计日志中IP访问次数
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
- 解析:提取IP → 排序 → 计数 → 按访问量倒序 → 显示前10
-
批量重命名图片
find . -name "*.jpg" -exec rename 's/IMG_/vacation_/' {} \;
- 将当前目录所有
IMG_*.jpg
改为vacation_*.jpg
- 将当前目录所有
-
监控高内存进程
watch -n 5 "ps aux --sort=-%mem | head -n 10"
- 每5秒刷新一次内存占用最高的10个进程
注意事项
-
危险命令警告:
rm -rf /
:删除根目录(绝对禁止!)dd if=/dev/zero of=/dev/sda
:擦除整个磁盘chmod -R 777 /
:开放全系统权限(安全漏洞!)
-
最佳实践:
- 使用
alias rm='rm -i'
防止误删 - 修改关键文件前先备份(如
cp /etc/nginx.conf{,.bak}
) - 生产环境慎用
-f
(强制)参数
- 使用
掌握这些命令组合,配合管道
|
和重定向>
/>>
,你将解锁 Linux 终端的高效生产力!建议通过man [命令]
查看完整手册(如man grep
)。