Linux 服务器命令
第一课:认识 Linux 服务器
一、先理解你看到的命令行
你之前连接服务器,看到的是:
admin@iZn4a61gybgicql76mih3tz:~$
它其实包含很多信息。
| 内容 | 含义 |
|---|---|
admin |
当前登录的 Linux 用户 |
@ |
分隔用户名和主机名 |
iZn4a61... |
服务器主机名 |
~ |
当前用户的家目录,通常是 /home/admin |
$ |
普通用户的命令提示符 |
例如输入:
pwd
可能得到:
/home/admin
pwd 的意思是 Print Working Directory(打印当前工作目录)。
也就是告诉你:你当前在哪个文件夹里。
二、最常用的文件操作命令
这是你首先要掌握的部分。
| 命令 | 英文含义 | 作用 |
|---|---|---|
pwd |
Print Working Directory | 查看当前位置 |
ls |
List | 查看文件列表 |
cd |
Change Directory | 切换目录 |
mkdir |
Make Directory | 创建目录 |
cp |
Copy | 复制文件 |
mv |
Move | 移动或重命名文件 |
rm |
Remove | 删除文件 |
cat |
Concatenate | 查看文件内容 |
nano |
编辑器名称 | 编辑文本文件 |
举个你真实服务器的例子
你现在的 Nginx 文件目录是:
/home/admin/nginx/
├── nginx.conf
└── ssl/
├── cloudflare-origin.pem
└── cloudflare-origin.key
假设你想查看这个目录:
cd /home/admin/nginx
这里 cd 是进入目录。
再执行:
ls
就能看到当前文件夹里面的文件。
想进入 SSL 文件夹:
cd ssl
想返回上一级:
cd ..
想回到自己的家目录:
cd ~
记住:
cd .. = 返回上一层。
cd ~ = 回到当前用户的家目录。
第二课:nano 是什么?怎么使用?
这是你刚才最不明白的地方。
nano 是 Linux 自带或可安装的一个文本编辑器,类似 Windows 的记事本。
在 Windows 你修改配置文件,可能是:
打开记事本
↓
修改 nginx.conf
↓
Ctrl + S 保存
在 Linux 命令行中则是:
nano nginx.conf
它会直接在终端里打开文本编辑器。
一、nano 的实际操作
例如修改你服务器上的 Nginx 配置:
sudo nano /home/admin/nginx/nginx.conf
执行以后会进入这样的编辑界面:
GNU nano — nginx.conf
server { listen 443 ssl; server_name heql.cn; ssl_certificate /etc/nginx/ssl/cloudflare-origin.pem; ssl_certificate_key /etc/nginx/ssl/cloudflare-origin.key; }
^G Help
^O Write Out
^X Exit
你可以直接使用键盘方向键移动光标,输入文字或者删除内容。
如何保存?
最关键的三个按键:
Ctrl + O
保存文件
nano 底部会提示文件名。
Enter
确认文件名
执行写入操作。
Ctrl + X
退出 nano
返回 Linux 终端。
如果修改错了,不想保存怎么办?
按 Ctrl + X,如果出现:
Save modified buffer?
Y Yes
N No
选择 N,就会直接退出并放弃未保存的修改。
其他常用快捷键:
| 快捷键 | 功能 |
|---|---|
Ctrl + O |
保存 |
Ctrl + X |
退出 |
Ctrl + W |
搜索文字 |
Ctrl + K |
剪切当前行 |
Ctrl + U |
粘贴剪切内容 |
Ctrl + _ |
跳转到指定行 |
注意:nano 的 Ctrl + O 是保存,不是 Windows 里常见的 Ctrl + S。
第三课:sudo 是什么意思?
你之前执行过:
sudo docker ps
这里 sudo 是什么?
它的名字来自 Superuser Do,可以理解成:
以管理员权限执行后面的命令。
例如:
ls /home/admin
普通查看,一般不用 sudo。
而:
sudo nano /home/admin/nginx/nginx.conf
表示以管理员权限打开文件。
为什么?
因为有些文件的所有者是 root,普通用户没有修改权限。
你可以这样记:
| Windows | Linux |
|---|---|
| 以管理员身份运行 | sudo |
| 管理员账户 | root |
| 普通账户 | admin 等普通用户名 |
sudo 的权限很高,不要不加判断地复制陌生命令执行。
第四课:服务器文件怎么查看、复制、删除?
这是部署网站时使用频率最高的一组命令。
1. 查看文件内容
cat /home/admin/nginx/nginx.conf
直接把文件内容打印出来,不进入编辑器。
如果文件很长,推荐:
less /home/admin/nginx/nginx.conf
用方向键上下浏览,按 q 退出。
2. 复制文件(备份)
假设你要修改 Nginx 配置,先执行:
sudo cp /home/admin/nginx/nginx.conf /home/admin/nginx/nginx.conf.bak
cp 就是 Copy。
执行以后:
nginx/
├── nginx.conf
└── nginx.conf.bak
.bak 是我们人为约定的备份文件后缀。
以后修改重要的 Nginx、Docker Compose 配置,我建议你都先备份。
3. 重命名文件
mv test.txt test-old.txt
mv 既能移动文件,也能修改文件名。
4. 删除文件
rm test.txt
特别注意:Linux 中 rm 删除的文件通常不会进入回收站。
尤其不要随便执行:
sudo rm -rf 某个目录
这可能递归强制删除整个目录,数据恢复非常困难。
第五课:Docker 常用操作(你的重点)
你的网站就运行在 Docker 里,所以这部分很实用。
先看你之前真实运行的容器:
nginx
next-app
c-cleaner-backend
c-cleaner-admin
c-cleaner-mysql
c-cleaner-redis
以后管理这些容器,主要掌握下面的命令。
一、查看容器
sudo docker ps
只显示正在运行的容器。
sudo docker ps -a
显示全部容器,包括已经停止的。
二、查看日志
比如 Nginx 出问题:
sudo docker logs nginx
可能输出很多日志。
只看最近100行:
sudo docker logs --tail 100 nginx
想实时观察日志:
sudo docker logs -f --tail 100 nginx
-f 是 Follow,表示持续跟踪新日志。
退出实时查看时按:
Ctrl + C
这里只会停止日志查看,不会停止 Nginx 容器。
同样的方法可以查看你的 Java 后端:
sudo docker logs --tail 100 c-cleaner-backend
这个命令对排查 Java 异常、接口500错误、服务启动失败非常有用。
三、进入 Docker 容器
例如:
sudo docker exec -it nginx sh
这条命令的意思是:进入正在运行的 nginx 容器,打开一个交互式 Shell。
执行后,可能看到:
/ #
说明你已经进入容器内部。
可以执行:
ls /etc/nginx/ssl
查看容器中的证书。
想退出容器:
exit
这只会退出 Shell,正常不会停止容器。
四、exec 和 restart 有什么区别?
| 命令 | 含义 |
|---|---|
docker exec |
在运行中的容器内执行命令 |
docker logs |
查看容器日志 |
docker restart |
重启容器 |
docker stop |
停止容器 |
docker start |
启动容器 |
docker inspect |
查看容器详细配置 |
例如:
sudo docker restart nginx
会重启 Nginx 容器,可能造成短暂服务中断。
而:
sudo docker exec nginx nginx -s reload
是让容器里的 Nginx 重新加载配置,通常不需要重启容器。
所以你以后只修改 Nginx 配置,优先检查配置并 reload,而不是直接重启 Docker。
第六课:理解宿主机和 Docker 容器
这个概念对你目前部署 HTTPS 尤其重要。
你之前查到:
/home/admin/nginx/nginx.conf
->
/etc/nginx/conf.d/default.conf
以及:
/home/admin/nginx/ssl
->
/etc/nginx/ssl
这叫 Docker 的 Bind Mount(绑定挂载)。
阿里云 Linux 服务器(宿主机)
/home/admin/nginx/ssl/cloudflare-origin.pem
Docker 文件挂载
Nginx Docker 容器
/etc/nginx/ssl/cloudflare-origin.pem
两边看到的是同一份挂载文件的数据。
你在宿主机上修改:
sudo nano /home/admin/nginx/nginx.conf
容器内对应的配置文件也会反映这个修改。
所以,你不必每次都进入 Docker 容器修改配置。
记住:持久化配置和证书优先在宿主机的挂载目录管理。
第七课:服务器排查常用命令
遇到服务器卡顿、网站打不开、磁盘空间不足,主要用这些。
| 命令 | 作用 |
|---|---|
free -h |
查看内存使用 |
df -h |
查看磁盘空间 |
du -sh /home/admin/nginx |
查看指定目录大小 |
top |
实时查看 CPU、内存、进程 |
sudo ss -lntp |
查看正在监听的 TCP 端口 |
sudo docker stats |
查看 Docker 容器资源占用 |
curl -I https://heql.cn |
查看网站 HTTP 响应头 |
例如:
free -h
可能看到:
total used free
Mem: 3.8Gi 1.6Gi 900Mi
Swap: 2.0Gi 100Mi 1.9Gi
而:
df -h
可以帮助你判断服务器硬盘是不是快满了。
top 进入后可以按 q 退出。
第八课:你应该记住的 Nginx 操作
这是以后更新 SSL 证书、修改反向代理最常用的标准流程。
# 1. 备份原配置(自动加时间戳)
sudo cp /home/admin/nginx/nginx.conf \
/home/admin/nginx/nginx.conf.bak.$(date +%F_%H%M%S)
# 2. 编辑配置
sudo nano /home/admin/nginx/nginx.conf
# 3. 检查配置有没有错误
sudo docker exec nginx nginx -t
# 4. 检查成功后,重新加载
sudo docker exec nginx nginx -s reload
其中第三步非常关键:
nginx -t 是测试配置,不是启动或重启 Nginx。
如果出现:
syntax is ok
test is successful
说明配置检查通过,这时再执行 reload。
如果提示错误,先修复配置,不要直接重新加载。