本文整理了一些自己常用的 服务器命令清单,涵盖文件操作、进程管理、网络排查、权限控制、日志分析等核心内容。
一、文件与目录操作
1. 查看目录内容
ls # 查看目录内容
ls -l # 详细信息
ls -lh # 友好显示文件大小
ls -a # 显示隐藏文件
2. 切换目录
cd /home # 切换到指定目录
cd .. # 返回上一级
cd ~ # 回到用户目录
3. 创建和删除
-
创建:
mkdir test # 创建目录
mkdir -p a/b/c # 递归创建目录
-p 表示递归创建目录,如果上级目录不存在,会自动帮你创建,如果目录已经存在,也不会报错
-
删除:
rm file.txt # 删除文件
rm -r test # 删除目录
rm -rf test # 强制删除(慎用)
⚠️ 尽量避免直接使用 rm -rf / 这种高危命令。
二、文件查看与编辑
1. 查看文件内容
cat file.txt
more file.txt
less file.txt
# 按内容过滤日志
grep "2026-02-21 10:" app.log
推荐使用 less,支持上下翻页。
2. 实时查看日志(非常重要)
tail -f -n 100 app.log
tail -f app.log | grep '筛选内容'
-f 表示实时
-n 表示 指定最近多少行
# 还可以同时查看多个日志文件
tail -f *.log
统计某错误出现次数
比如统计空指针
grep "NullPointerException" app.log | wc -l
线上排查问题时最常用命令。
3. 编辑文件
修改配置文件是非常常见的操作。
1️⃣ vi(几乎所有 Linux 服务器都自带)
vi file.txt
vim file.txt
进入编辑后:
i进入编辑模式Esc退出编辑:wq保存退出:q!强制退出
2️⃣ vim(增强版 vi,支持语法高亮和更强大的编辑功能,操作和 vi 一样)
vim file.txt
3️⃣ nano(新手友好,操作简单:底部直接显示快捷键提示)
nano file.txt
常用快捷键:
Ctrl + O保存Ctrl + X退出Ctrl + K剪切一行Ctrl + U粘贴
三、进程管理
服务器排查问题常用。
1. 查看进程
ps -ef | grep java
2. 查看端口占用
lsof -i:8080
netstat -tunlp | grep 8080
或:
ss -tunlp | grep 8080
3. 杀死进程
kill -9 进程号
示例:
kill -9 12345
4. 实时查看资源
top
更友好的版本:
htop
四、权限管理
在 Linux 系统中,一切皆文件(Everything is a file),因此权限管理尤为重要。
1. 查看权限
ls -l
示例:
-rwxr-xr-x
解释:
- 第一位:文件类型
- rwx:拥有者权限
- r-x:组权限
- r-x:其他用户权限
2. 修改权限
chmod 755 file.sh
chmod +x file.sh
3. 修改所属用户
格式:chown 用户名:用户组 文件名
比如 把 file.txt 的拥有者改为 root 用户,同时把所属组改为 root 组
chown root:root file.txt
五、压缩与解压
1. tar 命令
将 test/ 目录打包并压缩为 test.tar.gz:
tar -czvf test.tar.gz test/
参数说明:
- -c create,创建压缩包
- -z 使用 gzip 压缩(生成 .gz 文件)
- -v 显示详细过程(verbose)
- -f 指定压缩包文件名
将 test.tar.gz 解压到当前目录:
tar -xzvf test.tar.gz
参数说明:
- -x extract,解压
- -z 通过 gzip 解压
- -v 显示详细过程
- -f 指定压缩包文件名
2. zip
# 递归压缩
zip -r test.zip test/
# 解压
unzip test.zip
六、磁盘与内存
1. 查看磁盘空间
df -h
2. 查看目录大小
du -sh *
# 也可以指定文件夹
du -sh /logs/rocketmqlogs/*
3. 查看内存使用情况
free -m
七、网络相关命令
1. 测试连通性
ping www.baidu.com
2. 查看IP地址
ip addr
3. 测试端口是否通
telnet 127.0.0.1 3306
4. 下载文件
wget https://example.com/file.zip
curl -O https://example.com/file.zip
八、服务管理(systemctl)
在大多数基于 systemd 的 Linux 发行版中(如:CentOS、 Ubuntu、 Debian):
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx
设置开机启动:
systemctl enable nginx
九、常见服务器排查思路
当服务器访问异常时,一般排查步骤:
-
服务是否运行?
ps -ef | grep 服务名 -
端口是否监听?
netstat -tunlp -
防火墙是否放行?
firewall-cmd --list-all -
查看日志:
tail -f logs/app.log
十、常见硬盘排查思路
先看看是哪个文件占用过大。
这行命令用于显示系统中占用磁盘空间最大的20个文件或目录。du -ahx / 计算从根目录开始的所有文件和目录的大小,sort -rh 按大小逆序排序,head -n 20 只显示前20项。
sudo du -ahx / | sort -rh | head -n 20
根据找到的文件大小排行,逐一去排查,
如果是文件,比如日志文件,那就:
tail -f /path/app.log
如果是文件夹过大,就du一下看看具体是哪个文件的问题
以/root/logs/rocketmqlogs为例:
du -sh /root/logs/rocketmqlogs/*
十一、服务器系统信息
1. 查看操作系统发行版信息
cat /etc/os-release
输出示例:
NAME="CentOS Linux"
VERSION="7 (Core)"
或者:
lsb_release -a
⚠️ 该命令需要安装 lsb-release 包,某些系统默认未安装。
常见服务器系统包括:
- CentOS
- Ubuntu
- Debian
2. 查看内核版本
uname -r
示例输出:
3.10.0-1160.el7.x86_64
说明当前 Linux 内核版本。
3. 查看完整系统信息
uname -a
可查看:
- 主机名
- 内核版本
- 系统架构
- 编译时间
4. 查看系统架构(32位 / 64位)
arch
或者:
uname -m
常见结果:
x86_64→ 64位系统i686→ 32位系统
5. 查看系统运行时间
uptime
示例输出:
10:32:10 up 15 days, 3:12, 2 users, load average: 0.00, 0.01, 0.05
可查看:
- 当前时间
- 系统已运行时间
- 当前在线用户数
- 系统负载
十二、用户与账户管理
1. 查看当前登录用户
who
# 或者
w
2. 查看系统所有用户
cat /etc/passwd
只看普通用户(UID >= 1000):
awk -F: '$3>=1000 {print $1}' /etc/passwd
3. 创建新用户
useradd -m -s /bin/bash deploy
# 简易写法:
useradd deploy
⚠️ 不指定 -s /bin/bash 时,部分系统默认 shell 可能为 /sbin/nologin,会导致无法登录。
这个只是创建用户,没设置密码等。
推荐创建用户标准流程:
# 创建用户
useradd -m -s /bin/bash deploy
# 设置密码
passwd deploy
# 加入 sudo 组
usermod -aG sudo deploy
# 测试
su - deploy
sudo ls /
4. 设置或修改用户密码
passwd username
修改当前用户密码:
passwd
5. 删除用户
只删除用户:
userdel username
删除用户 + home 目录:
userdel -r username
6. 切换用户
su - username
切换 root:
su -
7. 给用户 sudo 权限
Ubuntu 推荐:
usermod -aG sudo username
CentOS推荐:
usermod -aG wheel username
8. 查看用户所属组
groups username
权限排查神器:
id username
示例输出:
uid=1001(deploy) gid=1001(deploy) groups=1001(deploy),27(sudo)
这个在 Docker、FTP 权限问题排查时非常重要。
9. 禁止 root 直接远程登录
有些场景可能需要禁止root,
⚠️ 但一定要先确认普通用户能 sudo,否则会锁死自己。建议流程:
- 创建普通用户
- 给 sudo 权限
- 测试 sudo
- 修改 root 密码
- 禁止 root 登录
禁止 root 直接远程登录流程:
vim /etc/ssh/sshd_config
找到:PermitRootLogin yes
改为:PermitRootLogin no
然后:
systemctl restart sshd
# 某些 Ubuntu 系统服务也可能名为 ssh 则执行:
systemctl restart ssh
10. 锁定用户
有时候不删除用户,只是禁用:
usermod -L username # 锁定
usermod -U username # 解锁