我的 Linux 开发日志:从 WSL 到云端(第 1–5 天)

发布: (2026年2月16日 GMT+8 17:25)
9 分钟阅读
原文: Dev.to

Source: Dev.to

TL;DR

我正在参加 Linux Upskill Challenge,希望从仅仅“使用”Linux转向真正的管理。 我想自己掌控全栈和 AI 项目的远程服务器,而不是依赖神奇的解决方案。

Setup: 本地使用 WSL,连接到 Google Cloud Platform(GCP)虚拟机。

以下是我第一周学到的所有内容。

Source:

第 1 天 – “前门”

问题

公共互联网本质上不安全。数据以明文方式传输,导致同一网络中的黑客可以嗅探密码和其他敏感信息。

解决方案 – SSH

安全外壳(SSH)在本地机器和远程服务器之间创建加密隧道。即使有人拦截流量,也只会看到乱码。

基于密钥的认证 vs. 密码

  • 密码 – 易受暴力破解攻击。
  • 密钥对(非对称加密) – 安全性高得多。
组件作用
公钥存放在服务器上(“锁”)
私钥存放在本地机器上(“实体钥”)

服务器会发送一个挑战,只有私钥能够解答。没有私钥 → 无法进入。

# 通过 WSL 连接,使用 -i 参数指向我的私钥
ssh -i ~/.ssh/id_ed25519 gcp-tyronemt@34.9.x.x

“前 5 分钟”健康检查

命令显示内容
uptime系统已运行时间 + 负载平均值
free -m可用内存(为 0 时应用会崩溃)
df -h磁盘使用情况(确保日志未占满磁盘)
htop / top实时 CPU 使用情况(Linux 任务管理器)
uname -a内核版本 & 系统架构

关键要点(第 1 天) – SSH 对远程连接是必不可少的;密钥对比密码安全得多;登录后应立即运行快速健康检查(freedf 等)。

第2天 – 阅读手册与导航文件系统

高效阅读手册的方法

  • man <command> – 完整参考(例如 man ls)。
  • help <builtin> – 查看内置 shell 命令(cdexport 等)。运行 type <command> 可判断是否为内置。
  • tldr <command> – 简洁、示例丰富的速查表(使用 sudo apt install tldr 安装)。
  • apropos "<keyword>" – 按描述搜索命令。

导航目录树

命令描述
pwd打印工作目录 – 显示当前所在位置。
cd /var/log绝对路径(从 / 开始)。
cd ~cd返回用户主目录。
cd -返回上一次所在的目录。
ls -ltra长格式、按时间排序、倒序、显示隐藏文件。

文件操作

mkdir <folder>                # 创建文件夹
touch <file>                  # 创建空文件
rm -r <folder>                # 删除文件夹及其内部所有内容
# 更安全的交互式删除:
rm -ri <folder>

关键要点(第2天) – 学会阅读手册可以避免盲目猜测,理解所有路径都从根目录 (/) 分支出来,使导航变得更容易。

第 3 天 – 权限管理

谁拥有权限?

角色描述
root超级用户,拥有全部权限——一次拼写错误就可能毁掉服务器。绝不要直接以 root 登录。
sudoers通过 sudo 获得超级权限的普通用户。
regular users仅限于自己的家目录(~)。不能进行全局更改(例如,安装软件包)。

什么是 sudo

  • 不是 root 本身——它充当审计层,以防止错误。
  • 示例:cat /etc/shadowPermission deniedsudo cat /etc/shadow 正常工作。

常用 sudo 命令

# 临时成为 root(完整的 root shell)
sudo -i

# 查看谁登录过
last

# 查看失败的登录尝试(例如,机器人)
sudo lastb

全局管理任务

  • 主机名
    hostnamectl                     # 显示当前主机名
    sudo hostnamectl set-hostname <new-name>
    # 在云服务商上,确保持久化:
    # 编辑 /etc/cloud/cloud.cfg → preserve_hostname: true
  • 时区
    timedatectl                     # 显示当前时区
    sudo timedatectl set-timezone <Region/City>
    # 正确的时区 = 日志中正确的时间戳。

关键要点(第 3 天)sudo 是安全网。绝不要直接以 root 登录,并且始终设置正确的时区,以便在调试时日志有意义。

第 4 天 – 包管理与文件系统层次

APT (Advanced Package Tool)

  • Sources list/etc/apt/sources.list.d/ubuntu.sources
  • Searchapt search "<keyword>"
  • Installsudo apt install <package>(需要 sudo,因为安装会影响整个系统)。

文件系统层次(参见 man hier

/
├─ /root          – root user’s home folder
├─ /home          – standard users’ home folders
├─ /sbin          – system binaries (admin commands, root‑only)
├─ /etc           – global configuration files
└─ /var
   └─ /log        – system & security logs

关键配置与日志文件(全部为纯文本!)

PathPurpose
/etc/passwd用户账户信息
/etc/ssh/sshd_configSSH 守护进程配置
/var/log/auth.log记录所有 sudo 使用情况和登录日志

我还安装了 Midnight Commandersudo apt install mc),这是一款可视化、基于文本的文件管理器。使用 mc 启动;F3 查看文件,F10 退出。

关键收获(第 4 天) – Linux 本质上是一堆文本文件。要更改设置,编辑 /etc 下的文件;要排查问题,检查 /var/log 下的日志。

第5天 – (敬请期待)

敬请期待下一篇,我将深入探讨网络、 防火墙以及使用 Ansible 自动化部署。

在终端直接管理文本文件是必备技能

查看与编辑

  • less vs more – 使用 less 阅读大文件。它可以上下滚动并搜索文本,而 more 功能更受限。
  • Dotfiles – 以点开头的隐藏文件(例如 .bashrc)。它们保存用户配置。使用 ls -a 查看它们。
  • nano – 一个简单的内置终端文本编辑器。

在 CLI 中更快工作

  • Tab 自动补全 – 按 Tab 自动补全文件或文件夹名。如果有多个匹配,按两次。
  • 命令历史 (history) – 显示你输入的所有命令。
  • 按编号执行 – 输入 ![number](例如 !20)即可立即重新运行历史中的该命令。
  • 反向搜索 (Ctrl+R) – 开始输入过去的命令,Shell 会自动建议剩余部分。极大节省时间。

高级工作区

  • Bash shell – 许多系统的默认交互式 Shell。
  • 自定义提示符 – 编辑 PS1 变量来改变提示符的显示方式。
  • 替代 Shellzshfish 提供更好的自动建议和更丰富的补全。
  • 复用器 (tmux / screen) – 将一个终端窗口拆分为多个面板,并在 SSH 连接断开后仍保持脚本运行。

关键要点(第 5 天)
停止手动输入所有内容。掌握 Tab 自动补全,使用 Ctrl+R 查找旧命令,并始终使用 less 阅读日志文件。

0 浏览
Back to Blog

相关文章

阅读更多 »

n8n 是纯粹的精彩

!Miguel Valdeshttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2...