单元四 上云 · 第 16 课
Linux 生存指南
服务器上没有桌面和鼠标,只有终端。好消息是,日常只需要二十来个命令,而且很多你在第 4 课已经用过了。
本课目标
- 认识 Linux 的目录结构和提示符。
- 掌握服务器上最常用的命令。
- 看懂文件权限,会用
chmod保护敏感文件。 - 会查看服务状态和日志。
先懂概念:Linux 的目录
Linux 没有 C 盘、D 盘,所有东西都在一棵从 /(根目录)开始的树上:
| 目录 | 放什么 |
|---|---|
/ | 根目录,一切的起点 |
/home/ubuntu | 你的家目录,也就是 ~ |
/etc | 系统和软件的配置文件 |
/var/log | 日志文件 |
/tmp | 临时文件,重启后可能被清空 |
提示符末尾的 $ 表示你是普通用户;如果是 #,说明你是 root 超级管理员,要格外小心。
跟着做:常用命令
先登录服务器:ssh ai-server。下面的命令都在服务器上运行。
看和走
pwd
ls -la
cd /etc
cd ~ls -la 比 ls 多显示隐藏文件(名字以 . 开头的)和详细信息。
文件和文件夹
mkdir -p ~/apps/weekly-report
cd ~/apps
echo "hello" > test.txt
cat test.txt
cp test.txt test-copy.txt
mv test-copy.txt test2.txt
ls
rm test.txt test2.txtmkdir -p:建文件夹,-p表示上层不存在时一起建好。这里建的~/apps/weekly-report,后面部署时会用到。>:把输出写进文件(覆盖原内容);>>:追加到文件末尾。cp复制,mv移动或改名,rm删除。
Linux 的
rm没有回收站,删了就找不回来。 删除前先用ls确认文件名;rm -r(删除整个文件夹)更要三思。
看长文件和日志
less /etc/os-release用方向键或空格翻页,按 q 退出。
sudo tail -n 20 /var/log/syslog看系统日志的最后 20 行。把 -n 20 换成 -f,可以实时跟踪新增的内容,按 Ctrl + C 停止。
看系统状态
df -h
free -h
topdf -h:磁盘还剩多少空间。free -h:内存用了多少。top:实时显示哪些程序占用资源最多,按q退出。
安装软件
sudo apt update
sudo apt install -y tree
tree ~/appsapt 是 Ubuntu 的软件商店。sudo 表示以管理员身份运行,安装软件、修改系统配置时需要它。
服务和日志
系统里一直在后台运行的程序叫服务,比如 SSH 服务:
systemctl status ssh看到绿色的 active (running) 就是运行中,按 q 退出。
看看最近有谁尝试登录你的服务器:
sudo journalctl -u ssh -n 30你很可能会看到一些陌生 IP 在尝试登录,这就是上一课关闭密码登录的原因。
看看哪些程序在监听哪些端口:
sudo ss -tlnp现在应该只能看到 22 端口(SSH)等少数几项。
文件权限
ls -l ~/.ssh/authorized_keys输出的开头类似 -rw-------,后面跟着所有者 ubuntu。这串字符分成三组,分别表示所有者、同组用户、其他人能做什么:r 读、w 写、x 执行、- 不能。
- rw- --- ---
│ │ └ 其他人:什么都不能
│ └──── 同组用户:什么都不能
└──────── 所有者:可读可写存放密钥、密码的文件,应该设成只有自己能读写:
chmod 600 文件名后面放 Key 的 .env 文件就要这样设置。
管道:把命令接起来
| 把前一个命令的输出交给后一个命令处理:
ls -la /etc | grep sshgrep 只显示包含指定文字的行,常用来从一大堆输出里找东西。
千万不要做
- 不要运行来路不明的命令,尤其是
curl ... | sudo sh这种“下载后直接以管理员身份运行”的写法,除非来源是官方文档。 - 不要
rm -rf你不确定的路径,尤其是/开头的。 - 不要用
chmod 777解决权限问题,它让所有人都能改这个文件。 - 不要把 Key、密码直接写在命令行里,它们会留在命令历史中。
看不懂输出怎么办
把命令和输出复制下来(删掉其中的密码、Key),交给你电脑上的 Codex:
这是我在 Ubuntu 服务器上运行的命令和输出,请解释它是什么意思,有没有需要处理的问题:
(粘贴在这里)常用命令速查
| 命令 | 作用 |
|---|---|
pwd / ls -la / cd | 在哪、有什么、去哪 |
mkdir -p / cp / mv / rm | 建、复制、移动改名、删除 |
cat / less / tail -f | 看文件、翻页看、实时跟踪 |
df -h / free -h / top | 磁盘、内存、进程 |
sudo apt install | 安装软件 |
systemctl status / journalctl -u | 服务状态、服务日志 |
ss -tlnp | 监听的端口 |
chmod 600 | 只有自己能读写 |
grep / | | 过滤、接起两个命令 |
exit | 退出 SSH |
自检
- 我知道
/etc、/var/log、~分别放什么。 - 我会用
ls -la、cat、less、tail查看文件和日志。 - 我能看懂
-rw-------,知道敏感文件要chmod 600。 - 我用
systemctl status和journalctl看过 SSH 服务。 -
~/apps/weekly-report文件夹已经建好。