<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Linux on 鬼属文</title>
    <link>https://www.renjiaxing.ren/tags/linux/</link>
    <description>Recent content in Linux on 鬼属文</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 01 Aug 2026 08:00:00 +0800</lastBuildDate>
    <atom:link href="https://www.renjiaxing.ren/tags/linux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Linux 基础：tmux 和 vim 操作</title>
      <link>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0801_01_linux%E5%9F%BA%E7%A1%80_tmux%E5%92%8Cvim%E6%93%8D%E4%BD%9C/</link>
      <pubDate>Sat, 01 Aug 2026 08:00:00 +0800</pubDate>
      <guid>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0801_01_linux%E5%9F%BA%E7%A1%80_tmux%E5%92%8Cvim%E6%93%8D%E4%BD%9C/</guid>
      <description>&lt;h2 id=&#34;一tmux--终端复用器&#34;&gt;一、tmux — 终端复用器&lt;/h2&gt;
&lt;h3 id=&#34;它解决什么问题&#34;&gt;它解决什么问题&lt;/h3&gt;
&lt;p&gt;SSH 连接到远程服务器时，一旦网络断开或关闭终端窗口，正在运行的程序（比如 &lt;code&gt;hugo server&lt;/code&gt;、&lt;code&gt;apt install&lt;/code&gt;）会被强制终止。&lt;/p&gt;
&lt;p&gt;tmux 在用户和服务器之间插入了一个&lt;strong&gt;持久层&lt;/strong&gt;——你关掉终端、断开 SSH，tmux 里的程序继续跑。下次连上，&lt;code&gt;tmux a&lt;/code&gt; 一切恢复原样。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;普通 SSH：                      SSH + tmux：

  你 ──SSH── 服务器                你 ──SSH── 服务器
              │                              │
              跑程序                         tmux（持久层）
              │                              │
  SSH 断开 → 程序死                  SSH 断开 → tmux 里的程序继续跑
                                      下次连上 → tmux a → 恢复
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;层级结构&#34;&gt;层级结构&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;tmux 服务
├── session 0（工作区 A：博客开发）
│   ├── window 0（这个窗口跑 hugo server）
│   │   ├── pane 0（左边：编辑 config.yml）
│   │   └── pane 1（右边：看日志）
│   └── window 1（这个窗口跑 docker）
│       └── pane 0
├── session 1（工作区 B：渗透练习）
│   ├── window 0（DVWA 目录）
│   └── window 1（查资料）
└── session 2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;session = 独立工作区，window = 浏览器标签页，pane = 分屏。&lt;/strong&gt; 你在一个 session 里&amp;quot;挂起&amp;quot;（detach），另一个终端可以&amp;quot;接入&amp;quot;（attach），无缝切换。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux 文件管理及常用命令</title>
      <link>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0730_01_linux%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E5%8F%8A%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</link>
      <pubDate>Thu, 30 Jul 2026 08:00:00 +0800</pubDate>
      <guid>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0730_01_linux%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E5%8F%8A%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</guid>
      <description>&lt;h2 id=&#34;一linux-文件系统的核心哲学&#34;&gt;一、Linux 文件系统的核心哲学&lt;/h2&gt;
&lt;h3 id=&#34;一切皆文件&#34;&gt;一切皆文件&lt;/h3&gt;
&lt;p&gt;Linux 最根本的设计思想：&lt;strong&gt;系统中的一切——硬盘、目录、进程、键盘、网络连接——在操作系统眼里都是&amp;quot;文件&amp;quot;。&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/dev/sda       ← 你的硬盘，是个文件
/proc/cpuinfo  ← CPU 信息，是个文件
/etc/passwd    ← 用户账号，是个文件
/home/renbudang/.ssh/id_ed25519  ← SSH 私钥，是个文件
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这意味着同一套读、写、移动的操作可以作用于任何对象。你 &lt;code&gt;cat /proc/cpuinfo&lt;/code&gt; 就能读 CPU 信息，和读一个 txt 文件没有区别。&lt;/p&gt;
&lt;h3 id=&#34;单根树结构&#34;&gt;单根树结构&lt;/h3&gt;
&lt;p&gt;Windows 的世界里，每个分区是一个独立的起点（&lt;code&gt;C:&lt;/code&gt; / &lt;code&gt;D:&lt;/code&gt; / &lt;code&gt;E:&lt;/code&gt;）。Linux 的世界里，&lt;strong&gt;只有一个根 &lt;code&gt;/&lt;/code&gt;&lt;/strong&gt;，所有的硬盘、U 盘、网络存储都&amp;quot;挂载&amp;quot;到这棵树的某个分支上。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/                          ← 根，一切从这里开始
├── bin/                   ← 系统基础命令（ls、cp、mv 等）
├── boot/                  ← 启动相关文件（内核）
├── dev/                   ← 设备文件（硬盘、键盘、终端）
├── etc/                   ← 配置文件（Nginx、SSH、用户信息）
├── home/                  ← 普通用户的家目录
│   └── renbudang/         ← 你的家目录（~ 就指向这里）
├── tmp/                   ← 临时文件（重启后清空，不保证保留）
├── var/                   ← 变化的数据（日志、网站、数据库）
│   └── www/html/          ← Nginx 默认网站目录
├── proc/                  ← 进程和内核信息（虚拟文件系统，不占磁盘）
└── usr/                   ← 用户安装的软件
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;路径绝对-vs-相对&#34;&gt;路径：绝对 vs 相对&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 绝对路径——从根 / 出发&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ls /home/renbudang/myblog/config.yml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 相对路径——从当前位置出发&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 假设已经在 /home/renbudang 目录下：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ls myblog/config.yml          &lt;span style=&#34;color:#75715e&#34;&gt;# 等价于上面那条&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ls ./myblog/config.yml        &lt;span style=&#34;color:#75715e&#34;&gt;# . 代表&amp;#34;当前目录&amp;#34;，等价&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ls ../ubuntu/.ssh             &lt;span style=&#34;color:#75715e&#34;&gt;# .. 代表&amp;#34;上一级目录&amp;#34;，这里等于 /home/ubuntu/.ssh&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ls ~/myblog                   &lt;span style=&#34;color:#75715e&#34;&gt;# ~ 代表&amp;#34;当前用户的家目录&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;判断规则：第一个字符是不是 &lt;code&gt;/&lt;/code&gt;。&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>云服务器初始配置与 SSH 密钥认证</title>
      <link>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0728_01_%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%9D%E5%A7%8B%E9%85%8D%E7%BD%AE%E4%B8%8Essh%E5%AF%86%E9%92%A5%E8%AE%A4%E8%AF%81/</link>
      <pubDate>Tue, 28 Jul 2026 08:00:00 +0800</pubDate>
      <guid>https://www.renjiaxing.ren/posts/%E6%8A%80%E6%9C%AF/2026_0728_01_%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%9D%E5%A7%8B%E9%85%8D%E7%BD%AE%E4%B8%8Essh%E5%AF%86%E9%92%A5%E8%AE%A4%E8%AF%81/</guid>
      <description>&lt;h1 id=&#34;云服务器初始配置与-ssh-密钥认证&#34;&gt;云服务器初始配置与 SSH 密钥认证&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;日期：2026-07-28&lt;br&gt;
服务器：腾讯云轻量应用服务器 2核2G3M 40GB SSD（Ubuntu 22.04 LTS）&lt;/p&gt;&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一服务器上的三个用户&#34;&gt;一、服务器上的三个用户&lt;/h2&gt;
&lt;p&gt;云服务器上有三个用户，他们各自的身份和角色完全不同：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;用户名&lt;/th&gt;
          &lt;th&gt;UID&lt;/th&gt;
          &lt;th&gt;本质&lt;/th&gt;
          &lt;th&gt;能否直接登录&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;root&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;0&lt;/td&gt;
          &lt;td&gt;Linux 超级管理员，拥有最高权限，可以做任何事情（包括删掉整个系统）&lt;/td&gt;
          &lt;td&gt;❌ 默认禁止远程登录（&lt;code&gt;PermitRootLogin no&lt;/code&gt;）&lt;/td&gt;
          &lt;td&gt;系统底层操作，日常不使用&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;ubuntu&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;1000&lt;/td&gt;
          &lt;td&gt;腾讯云 Ubuntu 镜像默认创建的普通用户，自带 &lt;code&gt;sudo&lt;/code&gt; 权限&lt;/td&gt;
          &lt;td&gt;✅&lt;/td&gt;
          &lt;td&gt;云服务商给你的初始入口，配置好之后作为备用账户&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;renbudang&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;1001&lt;/td&gt;
          &lt;td&gt;你自己创建的普通用户，也已经赋予 &lt;code&gt;sudo&lt;/code&gt; 权限&lt;/td&gt;
          &lt;td&gt;✅（主账户）&lt;/td&gt;
          &lt;td&gt;从今以后你日常登录和操作的账户&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;为什么有三个用户&#34;&gt;为什么有三个用户？&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;root  → Linux 系统内置的超级管理员。
         Ubuntu 默认禁用了它的远程登录，这是安全设计——
         root 权限太大，一旦被入侵后果不可控。
         日常工作不应该用 root，仅在必要时通过 sudo 提权。

ubuntu → 云服务商（腾讯云）在创建 Ubuntu 虚拟机时自动生成的。
         它在你拿到服务器之前就存在了。
         它是一个有 sudo 权限的普通用户，是你拿到服务器后第一个能登录的人。
         配置完成后保留它作为&amp;#34;紧急备用入口&amp;#34;——
         万一你把 renbudang 的 sudo 权限弄坏了，还能用它救回来。

renbudang → 你给自己创建的日常用户。
           sudo usermod -aG sudo renbudang 给了它管理员权限。
           从今以后这就是&amp;#34;你&amp;#34;在服务器上的身份。
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;核心认知&#34;&gt;核心认知&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ubuntu&lt;/code&gt; 不是 root，它只是一个能用 &lt;code&gt;sudo&lt;/code&gt; 提权的普通用户（UID=1000）&lt;/li&gt;
&lt;li&gt;root 的 UID 永远是 0，这是 Linux 内核判断&amp;quot;是不是 root&amp;quot;的唯一依据&lt;/li&gt;
&lt;li&gt;日常操作用 renbudang + sudo，不要直接以 root 身份操作&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;二我们在这台服务器上做了什么&#34;&gt;二、我们在这台服务器上做了什么&lt;/h2&gt;
&lt;h3 id=&#34;操作时间线&#34;&gt;操作时间线&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1. 购买创建
   → 选 Ubuntu 22.04 LTS 系统镜像（纯操作系统，不装任何预装软件）
   → 设了 renbudang 用户和密码
   → 服务器启动，获得公网 IP

2. 首次连接
   → 在 Windows PowerShell 里用 ssh renbudang@公网IP 测试连接
   → 初始使用密码登录

3. 生成 SSH 密钥对
   → 在本地 Windows 上执行 ssh-keygen -t ed25519
   → 生成了一对密钥：私钥（id_ed25519）和公钥（id_ed25519.pub）

4. 上传公钥到服务器
   → 将公钥内容追加写入服务器的 ~/.ssh/authorized_keys
   → 服务器从此认这把私钥

5. 配置 SSH 安全加固
   → 禁止 root 远程登录
   → 禁止密码登录（只用密钥）
   → 后续连接无需输密码
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id=&#34;三ssh-密钥认证原理公钥与私钥&#34;&gt;三、SSH 密钥认证原理（公钥与私钥）&lt;/h2&gt;
&lt;h3 id=&#34;我的问题&#34;&gt;我的问题&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;密钥公钥什么的我还是不明白，你是用 Windows 的工具创建了一个密钥，然后上传到云服务器里和用户 renbudang 绑定了吗？&amp;rdquo;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
