linux系统之常用运维命令整理笔录
linux系统之常用运维命令整理笔录详细介绍
以下是 Linux 系统常用运维命令的分类整理,涵盖系统监控、文件操作、网络管理、进程管理等核心领域,附常用选项及示例说明:
一、系统监控与状态检查
1.
系统资源监控
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
top |
实时进程监控(动态更新) | top(默认)top -u username 查看指定用户进程top -p PID 监控单个进程 |
htop |
增强版 top(支持交互操作) | htop(需安装,yum install htop/apt install htop) |
free |
查看内存使用情况 | free -h(以人类可读格式显示) |
df |
磁盘空间占用 | df -h(查看所有分区)df -i 查看 inode 使用情况 |
du |
目录 / 文件大小统计 | du -sh /path 查看目录总大小du -h --max-depth=1 查看当前目录下一级目录大小 |
vmstat |
虚拟内存统计 | vmstat 2 5(每 2 秒采样,共 5 次) |
2.
进程管理
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
ps |
静态进程列表 | ps aux(BSD 格式,显示所有用户进程)ps -ef(System V 格式,显示进程树) |
kill |
终止进程 | kill -9 PID 强制终止进程 |
pkill |
按名称终止进程 | pkill -9 nginx 终止所有 nginx 进程 |
lsof |
查看打开的文件 / 端口 | lsof -i:80 查看占用 80 端口的进程lsof /var/log/secure 查看正在写入该文件的进程 |
netstat |
网络连接统计(逐渐被ss取代) |
netstat -antp 查看所有 TCP 连接及对应进程netstat -lntp 查看监听中的端口 |
ss |
更高效的网络统计工具 | ss -tunlp 查看 TCP/UDP 监听端口及进程 |
3.
硬件信息
| 命令 | 说明 | 常用选项及示例 | |
|---|---|---|---|
uname |
系统内核信息 | uname -a 显示完整系统信息 |
|
dmidecode |
硬件详细信息(需管理员权限) | `dmidecode | grep -i 'cpu|memory'` 筛选 CPU / 内存信息 |
lscpu |
CPU 信息 | lscpu 显示 CPU 核心数、架构等 |
|
lsblk |
块设备列表(磁盘 / 分区) | lsblk 查看磁盘及分区结构 |
二、文件与目录操作
1.
基础操作
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
ls |
列出文件 / 目录 | ls -lht 按时间排序并显示详细信息ls -R 递归显示子目录内容 |
cd |
切换目录 | cd ~ 回到用户主目录cd - 切换回上一次目录 |
mkdir |
创建目录 | mkdir -p /a/b/c 递归创建多级目录 |
rm |
删除文件 / 目录 | rm -rf /path 强制删除目录及内容(危险!) |
cp |
复制文件 / 目录 | cp -r src/ dest/ 复制目录cp -a 保留文件属性复制 |
mv |
移动 / 重命名文件 | mv old.txt new.txt 重命名文件 |
2.
内容查看与编辑
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
cat |
显示文件内容(适合小文件) | cat file.txt 直接显示cat file1 file2 > merged.txt 合并文件 |
more/less |
分页查看文件(支持翻页) | less /var/log/syslog 分页查看日志文件,按q退出 |
head/tail |
查看文件开头 / 结尾部分 | head -n 10 file 查看前 10 行tail -f file 实时监控文件更新(如日志) |
vim/nano |
文本编辑 | vim file.txt 进入编辑模式(按i插入,:wq保存退出)nano file.txt 简单易用的编辑器 |
3.
搜索与筛选
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
grep |
文本内容搜索 | grep "error" log.txt 查找包含 "error" 的行grep -v "ignore" file 排除包含 "ignore" 的行 |
find |
文件 / 目录查找 | find /var/log -name "*.log" 查找 log 目录下所有.log 文件find . -size +100M 查找当前目录下大于 100M 的文件 |
which |
查看命令路径 | which python 查找 python 命令的执行路径 |
whereis |
查找文件位置(包括二进制、手册) | whereis nginx 查找 nginx 相关文件 |
4.
压缩与解压
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
tar |
打包压缩工具 | 打包:tar -czvf archive.tar.gz dir/(gzip 压缩)解压: tar -xzvf archive.tar.gz |
gzip/gunzip |
压缩 / 解压缩单个文件 | gzip file.txt 压缩为 file.txt.gzgunzip file.txt.gz 解压 |
unzip |
解压 zip 文件 | unzip file.zip 解压(需安装:yum install unzip/apt install unzip) |
三、网络与远程管理
1.
网络诊断
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
ping |
测试网络连通性 | ping -c 4 www.baidu.com 发送 4 个 ICMP 包 |
traceroute |
追踪路由路径 | traceroute www.google.com 查看网络跳转节点 |
nslookup |
DNS 解析查询 | nslookup baidu.com 查看域名对应的 IP |
curl/wget |
网络请求 / 下载工具 | curl http://api.example.com 发送 HTTP 请求wget https://example.com/file.zip 下载文件 |
2.
远程连接
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
ssh |
安全远程登录 | ssh user@192.168.1.1 登录远程主机ssh -i key.pem user@host 使用密钥登录 |
scp |
安全复制文件 | scp local.txt user@host:/remote/path 上传文件scp user@host:/file remote/ 下载文件 |
sftp |
安全文件传输(交互式) | sftp user@host 进入 sftp 交互模式 |
3.
防火墙管理
| 命令 | 说明 | 常用选项及示例(不同发行版差异) |
|---|---|---|
firewall-cmd |
CentOS 7 + 防火墙工具 | firewall-cmd --add-port=80/tcp --permanent 永久开放 80 端口firewall-cmd --reload 重新加载配置 |
ufw |
Ubuntu 防火墙工具 | ufw allow 22/tcp 允许 SSH 连接ufw enable 启用防火墙 |
四、用户与权限管理
1.
用户管理
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
useradd |
创建用户 | useradd -m -s /bin/bash username 创建带家目录和 bashshell 的用户 |
userdel |
删除用户 | userdel -r username 删除用户及家目录 |
passwd |
修改用户密码 | passwd username 修改指定用户密码(需 root)passwd 修改当前用户密码 |
usermod |
修改用户属性 | usermod -G sudo username 将用户加入 sudo 组 |
2.
权限管理
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
chmod |
修改文件权限 | 符号模式:chmod u+x file.sh 给用户添加执行权限八进制模式: chmod 755 dir/ 设置权限为 rwxr-xr-x |
chown |
修改文件所有者 / 所属组 | chown user:group file.txt 修改所有者和组chown -R user /dir 递归修改目录下所有文件 |
su/sudo |
切换用户 / 以管理员身份执行 | su - username 切换到指定用户sudo apt install nginx 以管理员权限执行命令 |
五、服务与启动管理
1.
Systemd(主流)
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
systemctl |
服务管理工具 | systemctl start/stop/restart nginx 控制服务systemctl enable/disable nginx 设置开机启动 / 禁用systemctl status nginx 查看服务状态 |
systemctl |
系统启动目标(运行级别) | systemctl get-default 查看当前运行级别systemctl set-default multi-user.target 设置为无图形界面模式 |
2.
传统服务管理(如 CentOS 6/Ubuntu 旧版)
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
service |
服务控制(基于 SysVinit) | service nginx start 启动服务 |
chkconfig |
开机启动项管理 | chkconfig nginx on 设置开机启动 |
六、存储与磁盘管理
1.
磁盘操作
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
fdisk |
磁盘分区工具(MBR 格式) | fdisk /dev/sda 进入交互模式,n新建分区,w保存 |
parted |
磁盘分区工具(支持 GPT) | parted /dev/sda mkpart primary 0% 100% 创建全部分区 |
mount/umount |
挂载 / 卸载文件系统 | mount /dev/sda1 /mnt 挂载分区到 /mntumount /mnt 卸载 |
blkid |
查看磁盘 UUID / 文件系统类型 | blkid 显示所有磁盘分区的 UUID 和类型 |
2.
逻辑卷管理(LVM)
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
pvcreate |
创建物理卷 | pvcreate /dev/sdb 将磁盘初始化为 LVM 物理卷 |
vgcreate |
创建卷组 | vgcreate vg0 /dev/sdb /dev/sdc 将多个物理卷加入卷组 |
lvcreate |
创建逻辑卷 | lvcreate -L 50G -n lv0 vg0 创建 50G 逻辑卷 |
lvextend |
扩展逻辑卷 | lvextend -L +10G /dev/vg0/lv0 扩容 10G |
七、软件包管理
1.
Debian/Ubuntu 系(.deb 包)
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
apt-get |
软件包管理工具 | apt-get install package 安装软件apt-get remove package 卸载软件apt-get update && apt-get upgrade 更新并升级系统 |
dpkg |
底层 deb 包管理工具 | dpkg -i package.deb 安装本地 deb 包 |
2.
RedHat/CentOS 系(.rpm 包)
| 命令 | 说明 | 常用选项及示例 |
|---|---|---|
yum |
软件包管理工具(CentOS 7 及以下) | yum install package 安装软件yum update 升级所有软件 |
dnf |
新一代 yum(CentOS 8+) | dnf install package 功能同 yum,性能更好 |
rpm |
底层 rpm,性能更好 | |
rpm |
底层 rpm 包管理工具 | rpm -ivh package.rpm 安装本地 rpm 包 |
八、日志与调试
| 命令 | 说明 | 常用选项及示例 | |
|---|---|---|---|
tail |
查看日志尾部 | tail -f /var/log/nginx/access.log 实时监控日志 |
|
journalctl |
systemd 日志管理工具 | journalctl -u nginx 查看 nginx 服务日志journalctl --since "2025-05-01" 查看指定时间后的日志 |
|
dmesg |
内核日志 | `dmesg | grep -i error` 筛选内核错误信息 |
九、实用工具与快捷键
- 管道与重定向:
命令1 | 命令2:将命令 1 的输出作为命令 2 的输入(如ls -l | grep .txt)。> file:覆盖写入文件,>> file:追加写入文件。
- 通配符:
*匹配任意字符,?匹配单个字符,[abc]匹配 a、b、c 中的一个。
- 快捷键:
Ctrl+C终止当前进程,Ctrl+Z暂停进程,Ctrl+D退出当前终端。history查看命令历史,!n执行第 n 条历史命令(如!100)。
十、注意事项
- 权限安全:谨慎使用
sudo和rm -rf,确认操作路径正确。 - 版本差异:不同 Linux 发行版(如 CentOS/Ubuntu)的命令细节可能不同(如软件包管理器)。
- 联机帮助:使用
man 命令或命令 --help获取详细文档(如man ls)。
建议通过alias或脚本简化高频操作,例如:
bash
912alias =
通过以上命令分类,可覆盖 Linux 运维中的大部分日常操作,建议结合实际场景练习巩固。