本文面向 Linux 系统管理员、运维工程师和开发人员,提供一套全面、精炼且实用的命令行操作指南。
内容涵盖从 Shell 基础、文件与目录管理,到文本处理、高级权限控制、系统与网络监控、自动化运维等十三大核心领域,并配以详尽示例与最佳实践,助您在各种业务场景中游刃有余。
通过理论与实战相结合,本文将帮助您优化日常运维流程、提升系统性能,并在复杂环境下迅速排障,是打造专业级 Linux 技能体系的必备利器。
一、Shell 基础
-
提示符
- 常见格式:
[user@host cwd]$
~
代表当前用户主目录。
- 常见格式:
-
查看帮助
man <command> # 阅读完整手册 <command> --help # 快速使用说明
-
历史与快捷
history
:列出最近命令,配合!n
重复执行第 n 条。Ctrl+R
:反向搜索历史。Tab
自动补全文件/命令名。
-
别名
alias ll='ls -lh' # 设置别名 unalias ll # 删除别名
二、文件与目录操作
命令 | 功能 | 进阶示例 |
---|---|---|
pwd | 显示当前目录 | pwd -P 显示真实路径(去除符号链接) |
mkdir | 创建目录 | mkdir -p /a/b/c 递归创建多级目录 |
touch | 创建空文件/更新时间戳 | touch -c file.txt 只有文件存在时才更新 |
ls | 列出目录内容 | ls -lXt 按修改时间倒序长格式显示 |
cp | 复制文件/目录 | cp --preserve=mode,timestamps src dst 保留权限和时间戳 |
mv | 移动/重命名 | mv -v *.txt /backup/ 复制时显示详细信息 |
rm | 删除文件/目录 | rm -I *.log 批量删除前提示 |
tree | 树状显示目录结构 | tree -L 2 -h 只显示两层,带人类可读大小 |
find | 查找文件 | find /var/log -type f -mtime +7 -exec rm {} \; |
删除 7 天前的日志
| `locate`| 快速查找(数据库)| `updatedb` 先更新数据库;`locate passwd` |
---
## 三、文件内容查看与文本处理
- **查看**
```bash
cat file # 输出所有内容
tac file # 反向输出
head -n 20 file # 前 20 行
tail -n 50 file # 后 50 行
tail -f /var/log/syslog # 实时追踪新日志
less file # 分页查看(支持搜索 `/pattern`)
-
文本搜索
grep -Rni "错误" /var/log # 忽略大小写、显示行号 egrep -E "foo|bar" file # 支持正则“或” fgrep -F "literal string" file # 字面匹配
-
统计与排序
sort file # 排序 uniq -c # 合并相邻重复,计数 wc -l file # 行数 cut -d: -f1 /etc/passwd # 按分隔符提取字段 paste a.txt b.txt # 横向合并文件 tr 'a-z' 'A-Z' <file # 转换小写到大写
-
流式编辑
awk '{ if ($5 > 1000) print $1, $5 }' file sed -i 's/old/new/g' *.txt # 原地替换 xargs -I{} rm {} < list.txt # 将 stdin 内容作为参数执行命令
四、权限与所有者
4.1 权限基础
数字 | 权限 | 二进制 | 含义 |
---|---|---|---|
0 | — | 000 | 无 |
1 | –x | 001 | 只执行 |
2 | -w- | 010 | 只写 |
3 | -wx | 011 | 写+执行 |
4 | r– | 100 | 只读 |
5 | r-x | 101 | 读+执行 |
6 | rw- | 110 | 读+写 |
7 | rwx | 111 | 读+写+执行 |
4.2 常用命令
-
修改权限
chmod 755 script.sh chmod u=rw,go=r file # 符号模式 chmod +x *.sh # 给所有脚本執行權限
-
修改所有者/所属组
chown user:group file.txt chown -R www-data:www-data /var/www chgrp staff report.pdf # 只改组
-
高级 ACL
setfacl -m u:alice:rw file getfacl file
-
特殊权限位
- SetUID
(s)
:二进制文件以文件所有者权限执行chmod u+s /usr/bin/passwd
- SetGID:目录新建文件继承组
chmod g+s /shared
- Sticky Bit
(t)
:目录内文件只能被所有者或 root 删除chmod +t /tmp
- SetUID
五、进程管理
-
查看进程
ps aux | grep java top # 交互监控 htop # 用户友好(需安装) pgrep -l nginx # 按名查找 PID
-
后台/前台作业
myscript.sh & # 后台启动 jobs # 列出作业 fg %1 # 恢复到前台 bg %1 # 在后台继续 nohup longjob &> out.log & # 即使断开仍继续
-
结束或调整优先级
kill -15 1234 # 温和结束(SIGTERM) kill -9 1234 # 强制(SIGKILL) pkill -f 'python.*app' # 按正则匹配进程名 nice -n 10 command # 设置启动时优先级 renice -n -5 -p 1234 # 修改运行中进程优先级
六、系统监控与信息
-
磁盘
df -hT # 文件系统类型 & 人类可读 du -sh /var/log/* # 每个子目录大小
-
内存 & CPU
free -m # 以 MB 显示 vmstat 2 # 每 2 秒输出一次 iostat -xz 5 # CPU & 磁盘统计
-
用户 & 会话
who # 在线用户 w # 用户 & 进程详情 id alice # 用户 UID/GID/组 uptime # 系统正常运行时长 uname -a # 内核 & 系统信息
-
日志
journalctl -u nginx.service # systemd 日志 journalctl --since "2 hours ago" tail -n 100 /var/log/syslog
七、网络工具
-
连通性测试
ping -c4 8.8.8.8 traceroute example.com
-
接口配置
ip addr show ip link set eth0 up ifconfig eth0 192.168.1.10/24
-
端口与连接
ss -tunlp netstat -tuln lsof -i :22
-
HTTP 请求 & 下载
curl -I https://api.github.com curl -X POST -d '{"foo":"bar"}' https://httpbin.org/post wget -c file.iso # 断点续传
-
远程传输
ssh user@host scp file.txt user@host:/path/ rsync -avzP src/ user@host:/dest/
八、包管理
-
Debian/Ubuntu (APT)
sudo apt update sudo apt install nginx sudo apt autoremove
-
RHEL/CentOS (YUM/DNF)
sudo dnf install httpd sudo yum remove package
-
Arch (Pacman)
sudo pacman -Syu sudo pacman -Rns package
九、压缩与归档
tar -czvf backup.tar.gz /etc
tar -xJvf archive.tar.xz
gzip -d file.gz
bzip2 file
zip -r project.zip src/
unzip project.zip -d out/
十、Shell 重定向与管道
-
重定向
>
覆盖写入>>
追加2>
单独重定向 stderr&>
同时重定向 stdout 和 stderr<
从文件读取 stdin
-
管道
dmesg | grep -i error | tee errors.log
十一、环境与脚本
-
环境变量
echo $PATH export EDITOR=vim env | grep LANG
-
启动脚本
~/.bashrc
、~/.bash_profile
、/etc/profile
source ~/.bashrc
使修改立即生效
十二、定时任务
-
cron
crontab -e # 每天凌晨 2 点执行备份 0 2 * * * /usr/local/bin/backup.sh
-
at
echo "/usr/local/bin/job.sh" | at now + 1 hour
-
systemd Timer
# /etc/systemd/system/cleanup.timer [Timer] OnCalendar=daily
十三、用户与组管理
sudo useradd -m bob
sudo passwd bob
sudo usermod -aG wheel bob # 加入 wheel 组
sudo groupadd devs
sudo groupdel oldgroup
sudo userdel -r olduser # 删除用户及家目录