<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux归档 - 帝讯博客</title>
	<atom:link href="https://www.dixunblog.cn/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>https://www.dixunblog.cn/tag/linux</link>
	<description>致力于打造专业的互联网资讯平台</description>
	<lastBuildDate>Mon, 27 Apr 2026 03:19:55 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://cdn.hyclive.cn/dixunblog/2025/12/cropped-ico-32x32.png</url>
	<title>Linux归档 - 帝讯博客</title>
	<link>https://www.dixunblog.cn/tag/linux</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Linux 基础知识完全指南：从零开始理解 Linux 系统</title>
		<link>https://www.dixunblog.cn/1748.html</link>
					<comments>https://www.dixunblog.cn/1748.html#respond</comments>
		
		<dc:creator><![CDATA[老大]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 03:19:42 +0000</pubDate>
				<category><![CDATA[技术教程]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux 教程]]></category>
		<category><![CDATA[Linux系统]]></category>
		<guid isPermaLink="false">https://www.dixunblog.cn/?p=1748</guid>

					<description><![CDATA[<p>写在前面 很多人第一次听说 Linux，是因为想搭建网站、学习编程，或者工作上要用到服务器。但打开终端看到黑底白字的界面，就开始发懵：这玩意儿和 Windows 完全不一样啊。 其实 Linux 不难理解。它就是个操作系统，和 Windows、macOS 一样，只是设计理念不同。这篇文章把 Linux 的基础知识一次性讲清楚：什么是 Linux、为什么用它、文件系统怎么组织、权限怎么管理、软件怎么安装……看完这篇，你对 Linux 就有个整体认知了。 建议先收藏，以后遇到问题可以对照查阅。 一、什么是 Linux？</p>
<p><a href="https://www.dixunblog.cn/1748.html">Linux 基础知识完全指南：从零开始理解 Linux 系统</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></description>
										<content:encoded><![CDATA[<h2>写在前面</h2>
<p>很多人第一次听说 Linux，是因为想搭建网站、学习编程，或者工作上要用到服务器。但打开终端看到黑底白字的界面，就开始发懵：这玩意儿和 Windows 完全不一样啊。</p>
<p>其实 Linux 不难理解。它就是个操作系统，和 Windows、macOS 一样，只是设计理念不同。这篇文章把 Linux 的基础知识一次性讲清楚：什么是 Linux、为什么用它、文件系统怎么组织、权限怎么管理、软件怎么安装……看完这篇，你对 Linux 就有个整体认知了。</p>
<p>建议先收藏，以后遇到问题可以对照查阅。</p>
<hr />
<h2>一、什么是 Linux？</h2>
<p><img fetchpriority="high" decoding="async" class="size-full wp-image-1749 aligncenter" src="http://cdn.hyclive.cn/dixunblog/2026/04/v2-6a22da24bf48ea75bbbd9bc258851cce_720w.jpg" alt="" width="532" height="300" /></p>
<h3>1.1 Linux 的本质</h3>
<p>Linux 是一个操作系统内核，加上各种软件工具，构成了完整的操作系统。</p>
<p>打个比方：</p>
<ul>
<li><strong>内核</strong>：相当于汽车的发动机，负责驱动硬件、管理资源</li>
<li><strong>外壳（Shell）</strong>：相当于方向盘和操控面板，让用户能操作系统</li>
<li><strong>应用程序</strong>：相当于车上的导航、音响，提供各种功能</li>
</ul>
<p>Linux 内核最早由 Linus Torvalds 在 1991 年开发，后来开源，全世界开发者都能贡献代码。现在 Linux 内核已经非常成熟，驱动了从手机到服务器到超级计算机的各种设备。</p>
<h3>1.2 Linux 和 Windows 的区别</h3>
<table>
<thead>
<tr>
<th>对比项</th>
<th>Windows</th>
<th>Linux</th>
</tr>
</thead>
<tbody>
<tr>
<td>设计理念</td>
<td>商业产品，用户友好</td>
<td>开源免费，技术导向</td>
</tr>
<tr>
<td>操作方式</td>
<td>图形界面为主</td>
<td>命令行为主（也有图形界面）</td>
</tr>
<tr>
<td>权限管理</td>
<td>管理员账户</td>
<td>root 和普通用户分离</td>
</tr>
<tr>
<td>软件安装</td>
<td>下载安装包或商店</td>
<td>包管理器（yum/apt等）</td>
</tr>
<tr>
<td>文件系统</td>
<td>C盘D盘分区</td>
<td>单一树状结构</td>
</tr>
<tr>
<td>配置方式</td>
<td>控制面板</td>
<td>配置文件</td>
</tr>
<tr>
<td>适用场景</td>
<td>个人电脑、办公</td>
<td>服务器、开发、嵌入式</td>
</tr>
</tbody>
</table>
<p>最大的区别：Windows 鼠标点几下就行，Linux 很多操作要敲命令。但命令的优势是效率高、可自动化、能远程操作。</p>
<h3>1.3 Linux 的应用场景</h3>
<p><strong>服务器领域：</strong></p>
<ul>
<li>网站服务器：全球 90% 以上的网站服务器运行 Linux</li>
<li>云计算：阿里云、腾讯云、AWS 的服务器都是 Linux</li>
<li>数据库服务器：MySQL、Redis 通常部署在 Linux</li>
</ul>
<p><strong>开发领域：</strong></p>
<ul>
<li>编程环境：Python、Go、Java 开发者偏好 Linux</li>
<li>容器技术：Docker、Kubernetes 基于 Linux</li>
<li>DevOps：自动化部署、持续集成</li>
</ul>
<p><strong>嵌入式设备：</strong></p>
<ul>
<li>手机：Android 基于 Linux 内核</li>
<li>路由器：家用路由器的系统</li>
<li>智能设备：智能家居、车载系统</li>
</ul>
<p><strong>个人使用：</strong></p>
<ul>
<li>开发者日常开发</li>
<li>系统运维工作</li>
<li>学习计算机原理</li>
</ul>
<p>简单说：服务器上 Linux 是主流，个人电脑上 Windows 是主流。</p>
<hr />
<h2>二、Linux 发行版：选择适合自己的版本</h2>
<h3>2.1 什么是发行版？</h3>
<p>Linux 内核只是核心部分，要变成能用的操作系统，需要加上：</p>
<ul>
<li>图形界面（可选）</li>
<li>常用软件（文本编辑器、浏览器等）</li>
<li>包管理器（安装软件的工具）</li>
<li>系统配置工具</li>
</ul>
<p>不同的组织把这些组合起来，打包成不同的&#8221;发行版&#8221;。</p>
<p>打个比方：内核是面粉，发行版是面条、面包、馒头——原料相同，形态不同。</p>
<h3>2.2 主要发行版介绍</h3>
<p><strong>（1）Ubuntu</strong></p>
<p>最适合新手入门的发行版。</p>
<p>特点：</p>
<ul>
<li>安装简单，图形界面友好</li>
<li>软件丰富，社区活跃</li>
<li>定期发布新版本（每6个月）</li>
<li>有 LTS 版本（长期支持，5年更新）</li>
</ul>
<p>适用人群：新手、个人用户、开发者</p>
<p>下载：ubuntu.com</p>
<hr />
<p><strong>（2）CentOS / Rocky Linux</strong></p>
<p>服务器最常用的发行版。</p>
<p>特点：</p>
<ul>
<li>稳定可靠，适合生产环境</li>
<li>软件版本保守（追求稳定，不求最新）</li>
<li>免费（CentOS 7 及之前）</li>
<li>CentOS 8 停止维护后，推荐用 Rocky Linux 或 AlmaLinux</li>
</ul>
<p>适用人群：运维工程师、服务器部署</p>
<p>注意：CentOS 7 在 2024 年 6 月停止维护，新项目建议用 Rocky Linux。</p>
<hr />
<p><strong>（3）Debian</strong></p>
<p>老牌发行版，Ubuntu 的上游。</p>
<p>特点：</p>
<ul>
<li>极其稳定，软件测试严格</li>
<li>完全社区驱动，非商业</li>
<li>更新周期较长</li>
</ul>
<p>适用人群：追求稳定的服务器用户、技术人员</p>
<hr />
<p><strong>（4）Fedora</strong></p>
<p>Red Hat 的社区版，新技术试验场。</p>
<p>特点：</p>
<ul>
<li>软件版本较新</li>
<li>半年发布一个版本</li>
<li>Red Hat Enterprise Linux（RHEL）的上游</li>
</ul>
<p>适用人群：想体验新技术的开发者</p>
<hr />
<p><strong>（5）Arch Linux</strong></p>
<p>极简主义发行版，高度自定义。</p>
<p>特点：</p>
<ul>
<li>滚动更新（没有版本概念，始终最新）</li>
<li>安装复杂（从零构建）</li>
<li>文档完善（Arch Wiki）</li>
</ul>
<p>适用人群：Linux 高手、追求极致自定义</p>
<hr />
<p><strong>（6）其他常见发行版</strong></p>
<table>
<thead>
<tr>
<th>发行版</th>
<th>特点</th>
<th>适用人群</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mint</td>
<td>基于 Ubuntu，界面类似 Windows</td>
<td>从 Windows 转过来的用户</td>
</tr>
<tr>
<td>openSUSE</td>
<td>德国发行版，企业级稳定</td>
<td>企业用户</td>
</tr>
<tr>
<td>Kali</td>
<td>安全工具预装</td>
<td>安全测试、渗透测试</td>
</tr>
<tr>
<td>Gentoo</td>
<td>从源码编译安装</td>
<td>高级玩家</td>
</tr>
<tr>
<td>Alpine</td>
<td>极小体积（5MB）</td>
<td>容器、嵌入式</td>
</tr>
</tbody>
</table>
<h3>2.3 发行版选择建议</h3>
<p><strong>新手入门：</strong> Ubuntu 或 Mint<br />
<strong>服务器部署：</strong> Rocky Linux / AlmaLinux（替代 CentOS）<br />
<strong>开发环境：</strong> Ubuntu 或 Fedora<br />
<strong>运维学习：</strong> Rocky Linux（和 CentOS 7 用法一样）</p>
<hr />
<h2>三、Linux 文件系统：目录结构详解</h2>
<h3>3.1 单一树状结构</h3>
<p>Linux 没有 Windows 的 C盘D盘概念，所有文件都在一个树状结构里，根目录是 <code>/</code>。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">/                     根目录
├── bin               可执行命令（所有用户都能用）
├── boot              启动相关文件
├── dev               设备文件（硬件设备在这里）
├── etc               系统配置文件
├── home              用户主目录
│   ├── user1         用户 user1 的主目录
│   └── user2         用户 user2 的主目录
├── lib               库文件
├── media             可移动设备挂载点（U盘等）
├── mnt               临时挂载点
├── opt               可选软件包安装位置
├── proc              进程信息（虚拟文件系统）
├── root              root 用户的主目录
├── run               运行时数据
├── sbin              系统管理命令（只有 root 能用）
├── srv               服务数据
├── sys               系统信息（虚拟文件系统）
├── tmp               临时文件
├── usr               用户程序和数据
│   ├── bin           用户安装的命令
│   ├── lib           用户安装的库
│   ├── local         本地安装的软件
│   └── share         共享数据
└── var               可变数据（日志、缓存等）
    ├── log           系统日志
    ├── cache         缓存数据
    └── lib           应用程序数据</code></pre>
<h3>3.2 重要目录详解</h3>
<p><strong><code>/</code> 根目录</strong></p>
<p>所有文件和目录的起点。不要在根目录放文件，这是系统区域。</p>
<hr />
<p><strong><code>/bin</code> 和 <code>/sbin</code></strong></p>
<p>存放系统命令：</p>
<ul>
<li><code>/bin</code>：所有用户都能执行的命令（ls、cp、cat 等）</li>
<li><code>/sbin</code>：只有 root 能执行的管理命令（reboot、fdisk 等）</li>
</ul>
<p>在 CentOS 7+ 中，这些目录是 <code>/usr/bin</code> 和 <code>/usr/sbin</code> 的软链接。</p>
<hr />
<p><strong><code>/etc</code> 配置文件</strong></p>
<p>系统大部分配置文件都在这里。</p>
<p>重要文件：</p>
<ul>
<li><code>/etc/passwd</code>：用户信息</li>
<li><code>/etc/shadow</code>：用户密码（加密存储）</li>
<li><code>/etc/group</code>：组信息</li>
<li><code>/etc/fstab</code>：磁盘挂载配置</li>
<li><code>/etc/hosts</code>：本地域名解析</li>
<li><code>/etc/resolv.conf</code>：DNS 配置</li>
<li><code>/etc/sysconfig/network-scripts/</code>：网络配置（CentOS）</li>
<li><code>/etc/ssh/sshd_config</code>：SSH 服务配置</li>
<li><code>/etc/nginx/nginx.conf</code>：Nginx 配置（如果安装了）</li>
<li><code>/etc/apt/sources.list</code>：软件源配置（Ubuntu）</li>
<li><code>/etc/yum.repos.d/</code>：软件源配置（CentOS）</li>
</ul>
<p>修改配置文件通常需要 root 权限。</p>
<hr />
<p><strong><code>/home</code> 用户主目录</strong></p>
<p>每个用户有一个专属目录，存放个人文件。</p>
<p>路径格式：<code>/home/用户名</code></p>
<p>比如用户 tom 的主目录是 <code>/home/tom</code>。</p>
<p>用户主目录可以简写为 <code>~</code>，比如：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cd ~              # 进入主目录
ls ~/Documents    # 查看主目录下的 Documents</code></pre>
<hr />
<p><strong><code>/root</code> root 用户主目录</strong></p>
<p>root 用户的主目录不在 <code>/home</code>，而是独立的 <code>/root</code>。</p>
<hr />
<p><strong><code>/var</code> 可变数据</strong></p>
<p>存放会经常变化的数据。</p>
<p>重要子目录：</p>
<ul>
<li><code>/var/log</code>：日志文件（查看系统运行情况）</li>
<li><code>/var/cache</code>：缓存数据</li>
<li><code>/var/lib</code>：应用程序数据（数据库文件等）</li>
<li><code>/var/spool</code>：队列数据（邮件队列等）</li>
<li><code>/var/tmp</code>：临时文件（比 <code>/tmp</code> 保留时间更长）</li>
</ul>
<hr />
<p><strong><code>/usr</code> 用户程序</strong></p>
<p>存放用户安装的软件和文档。</p>
<ul>
<li><code>/usr/bin</code>：用户安装的命令</li>
<li><code>/usr/lib</code>：库文件</li>
<li><code>/usr/local</code>：手动安装的软件（非包管理器安装）</li>
<li><code>/usr/share</code>：共享数据（文档、图标等）</li>
</ul>
<hr />
<p><strong><code>/tmp</code> 临时文件</strong></p>
<p>存放临时文件，重启后通常会清空。所有用户都能读写。</p>
<hr />
<p><strong><code>/proc</code> 进程信息</strong></p>
<p>这是一个虚拟文件系统，存放内核和进程信息。文件不是真实存在，而是内存数据的映射。</p>
<p>查看内存信息：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cat /proc/meminfo</code></pre>
<p>查看 CPU 信息：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cat /proc/cpuinfo</code></pre>
<p>查看某个进程的信息：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ls /proc/1234/     # 1234 是进程 PID</code></pre>
<hr />
<p><strong><code>/dev</code> 设备文件</strong></p>
<p>Linux 把硬件设备当作文件来管理，设备文件都在 <code>/dev</code>。</p>
<p>常见设备文件：</p>
<ul>
<li><code>/dev/sda</code>：第一块硬盘</li>
<li><code>/dev/sda1</code>：第一块硬盘的第一个分区</li>
<li><code>/dev/null</code>：黑洞，写入的东西都消失</li>
<li><code>/dev/zero</code>：无限输出 0</li>
<li><code>/dev/tty</code>：终端设备</li>
<li><code>/dev/urandom</code>：随机数生成器</li>
</ul>
<hr />
<p><strong><code>/boot</code> 启动文件</strong></p>
<p>存放系统启动需要的文件：</p>
<ul>
<li>内核文件（vmlinuz）</li>
<li>启动配置（grub）</li>
</ul>
<p>不要随意修改这个目录，否则可能导致系统无法启动。</p>
<hr />
<p><strong><code>/opt</code> 可选软件</strong></p>
<p>一些第三方软件安装在这里，比如 Oracle 数据库。</p>
<hr />
<p><strong><code>/mnt</code> 和 <code>/media</code> 挂载点</strong></p>
<p>挂载外部设备的目录：</p>
<ul>
<li><code>/mnt</code>：手动挂载的设备</li>
<li><code>/media</code>：自动挂载的设备（U盘、光盘）</li>
</ul>
<hr />
<h3>3.3 文件路径概念</h3>
<p><strong>绝对路径</strong></p>
<p>从根目录 <code>/</code> 开始的完整路径。</p>
<p>例子：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">/etc/passwd
/home/user/Documents/file.txt
/var/log/nginx/error.log</code></pre>
<p><strong>相对路径</strong></p>
<p>从当前目录开始的路径。</p>
<p>例子：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">Documents/file.txt      # 当前目录下的 Documents
../etc/passwd           # 上级目录下的 etc
./script.sh             # 当前目录下的 script.sh</code></pre>
<p><code>./</code> 表示当前目录，<code>../</code> 表示上级目录。</p>
<hr />
<h2>四、Linux 用户和权限管理</h2>
<h3>4.1 用户概念</h3>
<p>Linux 是多用户系统，可以同时有多个用户登录使用。</p>
<p><strong>用户类型：</strong></p>
<ol>
<li><strong>root 用户</strong>
<ul>
<li>超级管理员，拥有最高权限</li>
<li>能做任何操作（包括删系统）</li>
<li>UID 为 0</li>
</ul>
</li>
<li><strong>普通用户</strong>
<ul>
<li>权限受限，只能操作自己的文件</li>
<li>UID 从 1000 开始（CentOS 7+）</li>
<li>需要用 sudo 执行需要 root 权限的操作</li>
</ul>
</li>
<li><strong>系统用户</strong>
<ul>
<li>运行服务的用户（比如 nginx、mysql）</li>
<li>不能登录系统</li>
<li>UID 通常在 1-999</li>
</ul>
</li>
</ol>
<p><strong>用户信息文件：</strong></p>
<p><code>/etc/passwd</code> 存放用户基本信息：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">root:x:0:0:root:/root:/bin/bash
user:x:1000:1000::/home/user:/bin/bash</code></pre>
<p>格式：用户名:密码占位:UID:GID:描述:主目录:Shell</p>
<p>密码实际存放在 <code>/etc/shadow</code>，加密存储。</p>
<hr />
<h3>4.2 用户组概念</h3>
<p>用户组是一组用户的集合，方便批量管理权限。</p>
<p>每个用户至少属于一个组（主组），还可以加入多个附加组。</p>
<p><strong>组信息文件：</strong></p>
<p><code>/etc/group</code> 存放组信息：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">root:x:0:
wheel:x:10:user
user:x:1000:</code></pre>
<p>格式：组名:密码占位:GID:组成员列表</p>
<hr />
<h3>4.3 文件权限详解</h3>
<p>Linux 文件权限分三部分：用户、组、其他人。</p>
<p>每部分有三种权限：</p>
<ul>
<li><strong>r（读）</strong>：值 4，可以查看内容</li>
<li><strong>w（写）</strong>：值 2，可以修改内容</li>
<li><strong>x（执行）</strong>：值 1，可以执行（脚本、程序）</li>
</ul>
<p>权限用数字或字母表示：</p>
<table>
<thead>
<tr>
<th>权限组合</th>
<th>数字</th>
<th>含义</th>
</tr>
</thead>
<tbody>
<tr>
<td>rwx</td>
<td>7</td>
<td>读、写、执行</td>
</tr>
<tr>
<td>rw-</td>
<td>6</td>
<td>读、写</td>
</tr>
<tr>
<td>r-x</td>
<td>5</td>
<td>读、执行</td>
</tr>
<tr>
<td>r&#8211;</td>
<td>4</td>
<td>只读</td>
</tr>
<tr>
<td>-wx</td>
<td>3</td>
<td>写、执行</td>
</tr>
<tr>
<td>-w-</td>
<td>2</td>
<td>只写</td>
</tr>
<tr>
<td>&#8211;x</td>
<td>1</td>
<td>只执行</td>
</tr>
<tr>
<td>&#8212;</td>
<td>0</td>
<td>无权限</td>
</tr>
</tbody>
</table>
<p><strong>权限显示格式：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ls -l file.txt
# 输出：-rw-r--r-- 1 user group 1024 Jan 10 file.txt</code></pre>
<p>解析：</p>
<ul>
<li>第1位：文件类型（<code>-</code> 文件，<code>d</code> 目录，<code>l</code> 链接）</li>
<li>第2-4位：用户权限（rw- = 6）</li>
<li>第5-7位：组权限（r&#8211; = 4）</li>
<li>第8-10位：其他人权限（r&#8211; = 4）</li>
</ul>
<p>所以这个文件的权限是 644。</p>
<hr />
<h3>4.4 目录权限</h3>
<p>目录的权限含义和文件不同：</p>
<ul>
<li><strong>r（读）</strong>：可以查看目录内容（ls）</li>
<li><strong>w（写）</strong>：可以在目录里创建、删除文件</li>
<li><strong>x（执行）</strong>：可以进入目录（cd）</li>
</ul>
<p>要进入目录并查看内容，需要 rx 权限；要修改目录内容，需要 wx 权限。</p>
<hr />
<h3>4.5 特殊权限</h3>
<p>除了普通权限，Linux 还有三种特殊权限：</p>
<p><strong>SUID（4）</strong></p>
<p>设置在可执行文件上，执行时获得文件所有者的权限。</p>
<p>例子：<code>/usr/bin/passwd</code> 有 SUID，普通用户执行时暂时获得 root 权限修改密码。</p>
<p>显示：权限位变成 <code>rws</code></p>
<hr />
<p><strong>SGID（2）</strong></p>
<p>设置在目录上，目录里创建的文件自动继承目录的所属组。</p>
<p>显示：权限位变成 <code>rws</code></p>
<hr />
<p><strong>Sticky Bit（1）</strong></p>
<p>设置在目录上，只有文件所有者才能删除自己的文件。</p>
<p>例子：<code>/tmp</code> 有 Sticky Bit，用户不能删除别人的临时文件。</p>
<p>显示：权限位变成 <code>rwt</code></p>
<hr />
<h3>4.6 修改权限和所有权</h3>
<p><strong>chmod 修改权限：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">chmod 755 file.sh          # 用户全权限，其他人 rx
chmod 644 file.txt         # 用户 rw，其他人 r
chmod +x script.sh         # 给所有人加执行权限
chmod -R 755 folder        # 递归修改目录</code></pre>
<hr />
<p><strong>chown 修改所有者：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">chown user file.txt        # 改用户
chown user:group file.txt  # 改用户和组
chown -R user:group folder # 递归修改目录</code></pre>
<hr />
<p><strong>chgrp 修改所属组：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">chgrp group file.txt       # 改组</code></pre>
<hr />
<h3>4.7 sudo 权限管理</h3>
<p>普通用户需要执行 root 权限命令时，用 sudo。</p>
<p><strong>配置 sudo 权限：</strong></p>
<p>编辑 <code>/etc/sudoers</code>（用 visudo 命令，会检查语法）：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono "># 允许 user 执行所有命令
user ALL=(ALL) ALL

# 允许 wheel 组成员执行所有命令（CentOS 默认）
%wheel ALL=(ALL) ALL

# 只允许 user 执行特定命令
user ALL=(ALL) /usr/bin/reboot, /usr/bin/systemctl</code></pre>
<p><strong>使用 sudo：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">sudo command               # 以 root 执行命令
sudo -u user command       # 以指定用户执行
sudo -l                    # 查看可用 sudo 执行哪些命令</code></pre>
<hr />
<h2>五、Shell 和终端基础</h2>
<h3>5.1 什么是 Shell？</h3>
<p>Shell 是用户和内核之间的桥梁，负责解释用户输入的命令，传给内核执行。</p>
<p>常见 Shell：</p>
<ul>
<li><strong>bash</strong>：最常用的 Shell，几乎所有 Linux 默认使用</li>
<li><strong>zsh</strong>：功能更强，插件丰富（Oh My Zsh）</li>
<li><strong>sh</strong>：最基础的 Shell</li>
<li><strong>dash</strong>：轻量级 Shell，Ubuntu 用它作为 /bin/sh</li>
<li><strong>fish</strong>：友好的交互式 Shell</li>
</ul>
<p>查看当前 Shell：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">echo $SHELL
# 输出：/bin/bash</code></pre>
<p>查看可用 Shell：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cat /etc/shells</code></pre>
<p>切换 Shell：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">chsh -s /bin/zsh           # 切换到 zsh</code></pre>
<hr />
<h3>5.2 终端和虚拟控制台</h3>
<p><strong>终端（Terminal）</strong></p>
<p>输入命令的界面，可以是：</p>
<ul>
<li>物理终端：以前的字符终端设备</li>
<li>软件终端：终端模拟软件（如 GNOME Terminal、iTerm2）</li>
<li>SSH 远程终端：通过 SSH 连接的终端</li>
</ul>
<p><strong>虚拟控制台</strong></p>
<p>Linux 有多个虚拟控制台（类似多个终端窗口），可以切换：</p>
<ul>
<li>按 Ctrl+Alt+F1~F6：切换到不同控制台</li>
<li>F1 通常是图形界面</li>
<li>F2~F6 是字符界面</li>
</ul>
<p>服务器没有图形界面时，用虚拟控制台登录。</p>
<hr />
<h3>5.3 Shell 基础操作</h3>
<p><strong>命令基本格式：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">命令 [选项] [参数]</code></pre>
<p>例子：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ls -l /home               # 命令 ls，选项 -l，参数 /home
cp -r folder1 folder2     # 命令 cp，选项 -r，参数 folder1 和 folder2</code></pre>
<p><strong>选项格式：</strong></p>
<ul>
<li>短选项：<code>-l</code>、<code>-a</code>、<code>-h</code>（单个字母）</li>
<li>长选项：<code>--help</code>、<code>--version</code>（完整单词）</li>
<li>组合短选项：<code>-lah</code> 等于 <code>-l -a -h</code></li>
</ul>
<hr />
<p><strong>常用快捷键：</strong></p>
<table>
<thead>
<tr>
<th>快捷键</th>
<th>功能</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ctrl+C</td>
<td>终止当前命令</td>
</tr>
<tr>
<td>Ctrl+D</td>
<td>退出当前 Shell（等于 exit）</td>
</tr>
<tr>
<td>Ctrl+L</td>
<td>清屏（等于 clear）</td>
</tr>
<tr>
<td>Ctrl+A</td>
<td>光标移到行首</td>
</tr>
<tr>
<td>Ctrl+E</td>
<td>光标移到行尾</td>
</tr>
<tr>
<td>Ctrl+U</td>
<td>删除光标前所有内容</td>
</tr>
<tr>
<td>Ctrl+K</td>
<td>删除光标后所有内容</td>
</tr>
<tr>
<td>Ctrl+R</td>
<td>搜索历史命令</td>
</tr>
<tr>
<td>Tab</td>
<td>自动补全</td>
</tr>
<tr>
<td>Tab Tab</td>
<td>显示所有匹配项</td>
</tr>
</tbody>
</table>
<hr />
<p><strong>命令历史：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">history                    # 显示历史命令
history 20                 # 显示最近 20 条
!10                        # 执行第 10 条历史命令
!ls                        # 执行最近的 ls 命令
!!                         # 执行上一条命令
Ctrl+R                     # 搜索历史命令</code></pre>
<p>历史命令保存在 <code>~/.bash_history</code>。</p>
<hr />
<p><strong>命令别名：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">alias                      # 显示所有别名
alias ll='ls -lah'         # 设置别名
unalias ll                 # 删除别名</code></pre>
<p>永久生效：写入 <code>~/.bashrc</code>。</p>
<hr />
<p><strong>管道和重定向：</strong></p>
<p>管道 <code>|</code>：把前一个命令的输出传给后一个命令：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ls | grep txt              # ls 结果传给 grep 搜索
ps aux | grep nginx        # 进程列表传给 grep
cat file.txt | sort | uniq # 文件内容排序去重</code></pre>
<p>重定向：把输出写入文件：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">command &gt; file.txt         # 输出到文件（覆盖）
command &gt;&gt; file.txt        # 输出到文件（追加）
command 2&gt; error.txt       # 错误输出到文件
command &gt; file.txt 2&gt;&amp;1    # 标准输出和错误输出都写入文件
command &lt; input.txt        # 从文件读取输入</code></pre>
<hr />
<h3>5.4 通配符</h3>
<p>匹配文件名：</p>
<table>
<thead>
<tr>
<th>通配符</th>
<th>含义</th>
<th>例子</th>
</tr>
</thead>
<tbody>
<tr>
<td>*</td>
<td>匹配任意字符</td>
<td><code>*.txt</code> 匹配所有 txt 文件</td>
</tr>
<tr>
<td>?</td>
<td>匹配单个字符</td>
<td><code>file?.txt</code> 匹配 file1.txt、fileA.txt</td>
</tr>
<tr>
<td>[]</td>
<td>匹配指定字符</td>
<td><code>file[1-3].txt</code> 匹配 file1.txt、file2.txt、file3.txt</td>
</tr>
<tr>
<td>{}</td>
<td>匹配多个选项</td>
<td><code>file{1,2,3}.txt</code> 匹配三个文件</td>
</tr>
</tbody>
</table>
<p>例子：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ls *.txt                   # 查看所有 txt 文件
rm file[1-5].txt           # 删除 file1 到 file5
cp *.jpg /home/backup/     # 复制所有 jpg 文件</code></pre>
<hr />
<h3>5.5 环境变量</h3>
<p>环境变量是 Shell 运行时的参数，影响程序行为。</p>
<p><strong>常用环境变量：</strong></p>
<table>
<thead>
<tr>
<th>变量</th>
<th>含义</th>
</tr>
</thead>
<tbody>
<tr>
<td>PATH</td>
<td>命令搜索路径</td>
</tr>
<tr>
<td>HOME</td>
<td>用户主目录</td>
</tr>
<tr>
<td>USER</td>
<td>当前用户名</td>
</tr>
<tr>
<td>SHELL</td>
<td>当前 Shell</td>
</tr>
<tr>
<td>PWD</td>
<td>当前目录</td>
</tr>
<tr>
<td>LANG</td>
<td>语言设置</td>
</tr>
<tr>
<td>PS1</td>
<td>命令提示符格式</td>
</tr>
</tbody>
</table>
<p><strong>查看环境变量：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">echo $PATH                 # 显示 PATH
env                        # 显示所有环境变量
printenv PATH              # 显示指定变量</code></pre>
<p><strong>设置环境变量：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">export VAR=value           # 设置临时环境变量
VAR=value                  # 设置 Shell 变量（不导出）
export PATH=$PATH:/new/path    # 添加路径到 PATH</code></pre>
<p><strong>永久设置：</strong></p>
<p>写入配置文件：</p>
<ul>
<li><code>~/.bashrc</code>：用户级别，登录时加载</li>
<li><code>~/.bash_profile</code>：用户级别，登录时加载（优先）</li>
<li><code>/etc/profile</code>：系统级别，所有用户</li>
<li><code>/etc/environment</code>：系统环境变量</li>
</ul>
<p>例子（写入 ~/.bashrc）：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">export JAVA_HOME=/usr/lib/jvm/java-11
export PATH=$PATH:$JAVA_HOME/bin</code></pre>
<p>加载配置：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">source ~/.bashrc           # 立即生效</code></pre>
<hr />
<h2>六、软件安装和管理</h2>
<h3>6.1 Linux 软件安装方式</h3>
<p>Linux 安装软件主要有三种方式：</p>
<p><strong>（1）包管理器安装</strong></p>
<p>最推荐的方式，自动处理依赖关系。</p>
<ul>
<li>CentOS/RHEL：yum、dnf</li>
<li>Ubuntu/Debian：apt</li>
<li>Arch：pacman</li>
</ul>
<hr />
<p><strong>（2）源码编译安装</strong></p>
<p>下载源码，自己编译。</p>
<p>流程：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">tar -xzvf source.tar.gz    # 解压
cd source                  # 进入目录
./configure                # 配置（检查依赖）
make                       # 编译
make install               # 安装</code></pre>
<p>优点：可以自定义编译选项。<br />
缺点：麻烦，依赖要自己解决。</p>
<hr />
<p><strong>（3）二进制文件安装</strong></p>
<p>下载编译好的可执行文件，直接运行。</p>
<p>例子：下载 Go 语言官方二进制包，解压后就能用。</p>
<hr />
<p><strong>（4）容器化部署</strong></p>
<p>用 Docker 等容器技术，不直接安装软件，而是运行容器。</p>
<hr />
<h3>6.2 包管理器详解</h3>
<p><strong>yum（CentOS 7）</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">yum install package        # 安装
yum remove package         # 删除
yum update                 # 更新所有
yum update package         # 更新指定包
yum search keyword         # 搜索
yum list installed         # 已安装列表
yum info package           # 包信息
yum clean all              # 清理缓存</code></pre>
<p>软件源配置：<code>/etc/yum.repos.d/*.repo</code></p>
<hr />
<p><strong>dnf（CentOS 8+/Fedora）</strong></p>
<p>dnf 是 yum 的升级版，命令基本一样：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">dnf install package
dnf remove package
dnf update
dnf search keyword</code></pre>
<hr />
<p><strong>apt（Ubuntu/Debian）</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">apt update                 # 更新软件源索引
apt install package        # 安装
apt remove package         # 删除（保留配置）
apt purge package          # 删除（包括配置）
apt upgrade                # 升级所有包
apt search keyword         # 搜索
apt show package           # 包信息
apt list --installed       # 已安装列表
apt autoremove             # 清理无用依赖
apt clean                  # 清理缓存</code></pre>
<p>软件源配置：<code>/etc/apt/sources.list</code></p>
<hr />
<h3>6.3 rpm 和 dpkg（底层包工具）</h3>
<p>直接安装 rpm/deb 文件，不自动解决依赖。</p>
<p><strong>rpm：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">rpm -ivh package.rpm       # 安装
rpm -e package             # 删除
rpm -qa                    # 所有已安装包
rpm -qi package            # 包信息
rpm -ql package            # 包安装的文件列表</code></pre>
<hr />
<p><strong>dpkg：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">dpkg -i package.deb        # 安装
dpkg -r package            # 删除（保留配置）
dpkg -P package            # 删除（包括配置）
dpkg -l                    # 已安装列表
dpkg -L package            # 包安装的文件列表</code></pre>
<hr />
<h3>6.4 源码安装详解</h3>
<p><strong>下载源码：</strong></p>
<p>通常从官网或 GitHub 下载 <code>.tar.gz</code> 或 <code>.tar.bz2</code> 文件。</p>
<hr />
<p><strong>解压：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">tar -xzvf package-1.0.tar.gz     # gzip 格式
tar -xjvf package-1.0.tar.bz2    # bzip2 格式</code></pre>
<hr />
<p><strong>进入目录：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cd package-1.0</code></pre>
<hr />
<p><strong>配置：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">./configure</code></pre>
<p>configure 脚本检查系统环境、依赖库，生成 Makefile。</p>
<p>常用选项：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">./configure --prefix=/usr/local/package    # 指定安装路径
./configure --help                         # 查看可用选项</code></pre>
<p>如果 configure 报错缺少依赖，先安装依赖再重来。</p>
<hr />
<p><strong>编译：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">make</code></pre>
<p>make 根据 Makefile 编译源码。这一步可能比较慢。</p>
<hr />
<p><strong>安装：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">make install</code></pre>
<p>把编译好的文件复制到系统目录（需要 root 权限）。</p>
<hr />
<p><strong>清理：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">make clean                 # 清理编译文件
make distclean             # 清理所有生成的文件</code></pre>
<hr />
<h3>6.5 软件安装位置</h3>
<p>不同安装方式，软件位置不同：</p>
<table>
<thead>
<tr>
<th>安装方式</th>
<th>通常位置</th>
</tr>
</thead>
<tbody>
<tr>
<td>包管理器</td>
<td><code>/usr/bin</code>、<code>/usr/lib</code>、<code>/usr/share</code></td>
</tr>
<tr>
<td>源码安装</td>
<td><code>/usr/local/bin</code>、<code>/usr/local/lib</code></td>
</tr>
<tr>
<td>用户安装</td>
<td><code>~/bin</code>、<code>~/.local/bin</code></td>
</tr>
</tbody>
</table>
<hr />
<h2>七、进程和服务管理</h2>
<h3>7.1 进程概念</h3>
<p>进程是程序的运行实例。一个程序可以有多个进程（比如多个 nginx worker 进程）。</p>
<p><strong>进程属性：</strong></p>
<ul>
<li>PID：进程 ID，唯一标识</li>
<li>PPID：父进程 ID</li>
<li>User：运行进程的用户</li>
<li>State：进程状态（运行、睡眠、停止等）</li>
<li>CPU：CPU 使用率</li>
<li>Memory：内存使用量</li>
</ul>
<p><strong>进程状态：</strong></p>
<table>
<thead>
<tr>
<th>状态</th>
<th>含义</th>
</tr>
</thead>
<tbody>
<tr>
<td>R</td>
<td>运行或就绪</td>
</tr>
<tr>
<td>S</td>
<td>睡眠（等待事件）</td>
</tr>
<tr>
<td>D</td>
<td>不可中断睡眠（等待 IO）</td>
</tr>
<tr>
<td>Z</td>
<td>僵尸进程（已结束但未被回收）</td>
</tr>
<tr>
<td>T</td>
<td>停止（被暂停）</td>
</tr>
</tbody>
</table>
<hr />
<h3>7.2 查看进程</h3>
<p><strong>ps 命令：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ps                         # 当前用户进程
ps aux                     # 所有进程详细信息
ps -ef                     # 另一种格式
ps aux | grep nginx        # 搜索进程</code></pre>
<p>输出解释：</p>
<ul>
<li>USER：用户</li>
<li>PID：进程 ID</li>
<li>%CPU：CPU 使用率</li>
<li>%MEM：内存使用率</li>
<li>STAT：进程状态</li>
<li>COMMAND：命令</li>
</ul>
<hr />
<p><strong>top 命令：</strong></p>
<p>实时监控进程：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">top</code></pre>
<p>进入 top 后：</p>
<ul>
<li>按 P：按 CPU 排序</li>
<li>按 M：按内存排序</li>
<li>按 k：杀进程</li>
<li>按 q：退出</li>
</ul>
<hr />
<p><strong>htop 命令：</strong></p>
<p>更友好的进程监控：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">htop</code></pre>
<p>能鼠标操作，支持横向滚动，比 top 好用。</p>
<hr />
<p><strong>pgrep 命令：</strong></p>
<p>查找进程 PID：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">pgrep nginx                # 查找 nginx 进程
pgrep -u root nginx        # root 用户运行的 nginx</code></pre>
<hr />
<h3>7.3 进程管理</h3>
<p><strong>启动进程：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">./program                  # 前台运行
./program &amp;                # 后台运行
nohup ./program &amp;          # 后台运行，不因终端关闭而终止</code></pre>
<hr />
<p><strong>终止进程：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">kill PID                   # 正常终止
kill -9 PID                # 强制终止
killall name               # 按名字杀死
pkill name                 # 按名字杀死</code></pre>
<hr />
<p><strong>进程前后台切换：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">Ctrl+Z                     # 暂停前台进程（放入后台）
jobs                       # 查看后台作业
bg %1                      # 让作业 1 在后台继续
fg %1                      # 把作业 1 调到前台</code></pre>
<hr />
<h3>7.4 服务概念</h3>
<p>服务是长期运行的进程，通常在后台，响应请求。</p>
<p>比如：</p>
<ul>
<li>nginx：Web 服务</li>
<li>mysql：数据库服务</li>
<li>sshd：SSH 服务</li>
</ul>
<hr />
<h3>7.5 服务管理（systemd）</h3>
<p>现代 Linux 用 systemd 管理服务。</p>
<p><strong>常用命令：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">systemctl start service    # 启动服务
systemctl stop service     # 停止服务
systemctl restart service  # 重启服务
systemctl status service   # 查看状态
systemctl enable service   # 设置开机自启
systemctl disable service  # 关闭开机自启
systemctl is-enabled service   # 查看是否开机自启
systemctl list-units --type=service   # 所有服务列表
systemctl daemon-reload    # 重载配置（修改配置后）</code></pre>
<hr />
<p><strong>服务配置文件：</strong></p>
<p>服务配置文件在 <code>/etc/systemd/system/</code> 或 <code>/usr/lib/systemd/system/</code>。</p>
<p>格式示例（nginx.service）：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop

[Install]
WantedBy=multi-user.target</code></pre>
<hr />
<h3>7.6 传统服务管理（CentOS 6）</h3>
<p>老版本用 service 和 chkconfig：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">service nginx start        # 启动
service nginx stop         # 停止
service nginx restart      # 重启
service nginx status       # 状态

chkconfig nginx on         # 开机自启
chkconfig nginx off        # 关闭自启
chkconfig --list           # 查看所有服务状态</code></pre>
<hr />
<h3>7.7 日志查看</h3>
<p><strong>journalctl（systemd 日志）：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">journalctl                 # 所有日志
journalctl -u nginx        # nginx 服务日志
journalctl -f              # 实时查看
journalctl --since today   # 今天日志
journalctl -p err          # 只看错误级别</code></pre>
<hr />
<p><strong>传统日志文件：</strong></p>
<p>日志在 <code>/var/log/</code>：</p>
<ul>
<li><code>/var/log/messages</code>：系统主日志（CentOS）</li>
<li><code>/var/log/syslog</code>：系统主日志（Ubuntu）</li>
<li><code>/var/log/auth.log</code>：认证日志（登录记录）</li>
<li><code>/var/log/nginx/error.log</code>：Nginx 错误日志</li>
<li><code>/var/log/mysql/error.log</code>：MySQL 错误日志</li>
</ul>
<hr />
<h2>八、网络基础知识</h2>
<h3>8.1 网络接口</h3>
<p>Linux 网络接口命名：</p>
<ul>
<li>eth0、eth1：以太网卡（传统命名）</li>
<li>ens33、ens192：新命名规则</li>
<li>lo：本地回环（127.0.0.1）</li>
<li>wlan0：无线网卡</li>
</ul>
<hr />
<h3>8.2 IP 地址配置</h3>
<p><strong>查看 IP：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ip addr                    # 显示所有 IP
ip addr show eth0          # 显示指定接口
ifconfig                   # 传统命令</code></pre>
<hr />
<p><strong>配置 IP：</strong></p>
<p>临时配置：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ip addr add 192.168.1.100/24 dev eth0    # 添加 IP
ip link set eth0 up                      # 启用网卡</code></pre>
<p>永久配置：</p>
<p>CentOS：编辑 <code>/etc/sysconfig/network-scripts/ifcfg-eth0</code></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes</code></pre>
<p>Ubuntu：编辑 <code>/etc/netplan/*.yaml</code>（Ubuntu 18+）</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-yaml">network:
  ethernets:
    eth0:
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8]
  version: 2</code></pre>
<hr />
<h3>8.3 DNS 配置</h3>
<p>DNS 配置文件：<code>/etc/resolv.conf</code></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">nameserver 8.8.8.8
nameserver 114.114.114.114</code></pre>
<hr />
<h3>8.4 网络测试</h3>
<p><strong>ping 测试连通性：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ping 192.168.1.1           # ping IP
ping www.baidu.com         # ping 域名
ping -c 5 192.168.1.1      # ping 5 次</code></pre>
<hr />
<p><strong>traceroute 查看路径：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">traceroute www.baidu.com   # 查看路由路径</code></pre>
<hr />
<p><strong>netstat/ss 查看端口：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">netstat -tunlp             # 查看 TCP/UDP 端口
ss -tunlp                  # 新命令</code></pre>
<hr />
<p><strong>curl 测试 HTTP：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">curl http://www.baidu.com  # 请求网页
curl -I http://www.baidu.com  # 只看响应头</code></pre>
<hr />
<h3>8.5 端口概念</h3>
<p>端口是网络通信的逻辑端点。常用端口：</p>
<table>
<thead>
<tr>
<th>端口</th>
<th>服务</th>
</tr>
</thead>
<tbody>
<tr>
<td>22</td>
<td>SSH</td>
</tr>
<tr>
<td>80</td>
<td>HTTP</td>
</tr>
<tr>
<td>443</td>
<td>HTTPS</td>
</tr>
<tr>
<td>21</td>
<td>FTP</td>
</tr>
<tr>
<td>3306</td>
<td>MySQL</td>
</tr>
<tr>
<td>6379</td>
<td>Redis</td>
</tr>
<tr>
<td>8080</td>
<td>Tomcat/备用HTTP</td>
</tr>
</tbody>
</table>
<hr />
<h2>九、系统启动和关机</h2>
<h3>9.1 启动过程</h3>
<p>Linux 启动流程：</p>
<ol>
<li><strong>BIOS/UEFI</strong>：硬件自检，选择启动设备</li>
<li><strong>MBR/GPT</strong>：读取启动分区</li>
<li><strong>GRUB</strong>：引导加载器，选择启动内核</li>
<li><strong>内核</strong>：加载内核，初始化硬件</li>
<li><strong>systemd</strong>：启动第一个进程（PID 1），管理服务</li>
<li><strong>用户登录</strong>：进入登录界面</li>
</ol>
<hr />
<h3>9.2 运行级别</h3>
<p>运行级别定义系统运行模式：</p>
<table>
<thead>
<tr>
<th>级别</th>
<th>含义</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>关机</td>
</tr>
<tr>
<td>1</td>
<td>单用户模式（维护）</td>
</tr>
<tr>
<td>2</td>
<td>多用户（无网络）</td>
</tr>
<tr>
<td>3</td>
<td>多用户（有网络，无图形）</td>
</tr>
<tr>
<td>4</td>
<td>未定义</td>
</tr>
<tr>
<td>5</td>
<td>多用户（有图形）</td>
</tr>
<tr>
<td>6</td>
<td>重启</td>
</tr>
</tbody>
</table>
<p>systemd 用 target 替代：</p>
<ul>
<li><code>multi-user.target</code>：等于级别 3</li>
<li><code>graphical.target</code>：等于级别 5</li>
</ul>
<p>查看：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">systemctl get-default      # 查看默认 target
systemctl set-default multi-user.target    # 设置默认</code></pre>
<hr />
<h3>9.3 关机和重启</h3>
<p><strong>关机：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">shutdown -h now            # 立即关机
shutdown -h +10            # 10分钟后关机
shutdown -c                # 取消关机
poweroff                   # 立即关机</code></pre>
<p><strong>重启：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">reboot                     # 重启
shutdown -r now            # 立即重启</code></pre>
<hr />
<h2>十、常用配置文件详解</h2>
<h3>10.1 用户相关</h3>
<p><strong><code>/etc/passwd</code></strong>：用户信息</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">root:x:0:0:root:/root:/bin/bash</code></pre>
<p>格式：用户名:密码占位:UID:GID:描述:主目录:Shell</p>
<hr />
<p><strong><code>/etc/shadow</code></strong>：密码信息</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">root:$6$xxx:18000:0:99999:7:::</code></pre>
<p>格式：用户名:加密密码:上次修改天数:最小天数:最大天数:警告天数: inactive天数:过期天数:保留</p>
<hr />
<p><strong><code>/etc/group</code></strong>：组信息</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">root:x:0:user1,user2</code></pre>
<p>格式：组名:密码占位:GID:成员列表</p>
<hr />
<h3>10.2 网络相关</h3>
<p><strong><code>/etc/hosts</code></strong>：本地域名解析</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">127.0.0.1       localhost
192.168.1.100   myserver</code></pre>
<hr />
<p><strong><code>/etc/resolv.conf</code></strong>：DNS 配置</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">nameserver 8.8.8.8
nameserver 114.114.114.114</code></pre>
<hr />
<p><strong><code>/etc/sysconfig/network-scripts/ifcfg-eth0</code></strong>：网络接口配置（CentOS）</p>
<hr />
<h3>10.3 系统相关</h3>
<p><strong><code>/etc/fstab</code></strong>：磁盘挂载配置</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">/dev/sda1   /       ext4    defaults    0 1
/dev/sda2   /home   ext4    defaults    0 2</code></pre>
<p>格式：设备 挂载点 类型 选项 dump pass</p>
<hr />
<p><strong><code>/etc/crontab</code></strong>：系统定时任务配置</p>
<hr />
<p><strong><code>/etc/profile</code></strong>：系统环境变量</p>
<hr />
<h3>10.4 服务相关</h3>
<p><strong><code>/etc/ssh/sshd_config</code></strong>：SSH 服务配置</p>
<p>重要配置：</p>
<ul>
<li>Port 22：SSH 端口</li>
<li>PermitRootLogin yes/no：是否允许 root 登录</li>
<li>PasswordAuthentication yes/no：是否允许密码登录</li>
</ul>
<hr />
<p><strong><code>/etc/sudoers</code></strong>：sudo 权限配置</p>
<hr />
<h2>十一、常见问题和解决思路</h2>
<h3>11.1 权限问题</h3>
<p><strong>症状：</strong> 操作提示 Permission denied</p>
<p><strong>原因：</strong> 当前用户没有权限</p>
<p><strong>解决：</strong></p>
<ol>
<li>检查文件权限：<code>ls -l file</code></li>
<li>用 sudo 执行：<code>sudo command</code></li>
<li>修改权限：<code>chmod</code></li>
<li>修改所有者：<code>chown</code></li>
</ol>
<hr />
<h3>11.2 命令找不到</h3>
<p><strong>症状：</strong> Command not found</p>
<p><strong>原因：</strong> 命令未安装或不在 PATH</p>
<p><strong>解决：</strong></p>
<ol>
<li>检查命令是否存在：<code>which command</code></li>
<li>安装命令：<code>yum install package</code> 或 <code>apt install package</code></li>
<li>检查 PATH：<code>echo $PATH</code></li>
<li>添加路径到 PATH：<code>export PATH=$PATH:/new/path</code></li>
</ol>
<hr />
<h3>11.3 端口被占用</h3>
<p><strong>症状：</strong> 服务启动失败，提示端口被占用</p>
<p><strong>解决：</strong></p>
<ol>
<li>查看端口占用：<code>netstat -tunlp | grep 端口</code></li>
<li>杀掉占用进程：<code>kill PID</code></li>
<li>更换服务端口</li>
</ol>
<hr />
<h3>11.4 磁盘空间不足</h3>
<p><strong>症状：</strong> 无法创建文件，提示 No space left</p>
<p><strong>解决：</strong></p>
<ol>
<li>查看磁盘使用：<code>df -h</code></li>
<li>查找大文件：<code>du -sh * | sort -rh | head -10</code></li>
<li>清理日志：<code>rm /var/log/*.log</code>（谨慎）</li>
<li>清理缓存：<code>yum clean all</code> 或 <code>apt clean</code></li>
<li>检查 inode：<code>df -i</code></li>
</ol>
<hr />
<h3>11.5 服务无法启动</h3>
<p><strong>解决：</strong></p>
<ol>
<li>查看状态：<code>systemctl status service</code></li>
<li>查看日志：<code>journalctl -u service</code></li>
<li>检查配置文件语法</li>
<li>检查依赖服务是否启动</li>
</ol>
<hr />
<h3>11.6 SSH 无法登录</h3>
<p><strong>解决：</strong></p>
<ol>
<li>检查 SSH 服务：<code>systemctl status sshd</code></li>
<li>检查端口：<code>netstat -tunlp | grep 22</code></li>
<li>检查防火墙：<code>firewall-cmd --list-all</code></li>
<li>检查配置：<code>/etc/ssh/sshd_config</code></li>
<li>查看日志：<code>journalctl -u sshd</code> 或 <code>/var/log/auth.log</code></li>
</ol>
<hr />
<h2>十二、学习建议</h2>
<h3>12.1 入门路径</h3>
<p>建议学习顺序：</p>
<ol>
<li><strong>安装一个 Linux 系统</strong>：Ubuntu 或 Rocky Linux</li>
<li><strong>熟悉终端操作</strong>：cd、ls、mkdir、rm、cp、mv</li>
<li><strong>理解文件系统</strong>：目录结构和文件路径</li>
<li><strong>学习权限管理</strong>：chmod、chown、sudo</li>
<li><strong>掌握常用命令</strong>：grep、find、tar、vim</li>
<li><strong>了解服务管理</strong>：systemctl</li>
<li><strong>学习 Shell 脚本</strong>：编写自动化脚本</li>
</ol>
<hr />
<h3>12.2 实践建议</h3>
<ol>
<li><strong>不要怕出错</strong>：Linux 错误提示很明确，看错误信息就能知道问题</li>
<li><strong>多用命令手册</strong>：<code>man command</code> 查看详细说明</li>
<li><strong>记录常用命令</strong>：建立自己的命令速查表</li>
<li><strong>搭建实验环境</strong>：用虚拟机或云服务器练习</li>
<li><strong>遇到问题先查日志</strong>：日志能告诉你发生了什么</li>
</ol>
<hr />
<h3>12.3 进阶方向</h3>
<p>掌握基础后，可以学习：</p>
<ul>
<li>Shell 脚本编程</li>
<li>系统运维（监控、备份、安全）</li>
<li>服务部署（Web、数据库、容器）</li>
<li>自动化工具（Ansible、Docker）</li>
</ul>
<hr />
<h2>结语</h2>
<p>这篇把 Linux 的基础知识梳理了一遍：什么是 Linux、发行版怎么选、文件系统结构、用户权限管理、Shell 操作、软件安装、进程服务、网络配置……理解了这些，对 Linux 就有了整体认知。</p>
<p>Linux 不难，难的是一开始的不习惯。多练多用，很快就能上手。遇到问题先看错误信息，再查手册或搜索，大部分问题都能解决。</p>
<p>建议先收藏这篇，以后遇到问题可以对照查阅。</p>
<p><a href="https://www.dixunblog.cn/1748.html">Linux 基础知识完全指南：从零开始理解 Linux 系统</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dixunblog.cn/1748.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Linux 命令大全：新手入门必看的 80+ 实用命令详解</title>
		<link>https://www.dixunblog.cn/1742.html</link>
					<comments>https://www.dixunblog.cn/1742.html#respond</comments>
		
		<dc:creator><![CDATA[老大]]></dc:creator>
		<pubDate>Sun, 26 Apr 2026 12:04:09 +0000</pubDate>
				<category><![CDATA[技术教程]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux 教程]]></category>
		<guid isPermaLink="false">https://www.dixunblog.cn/?p=1742</guid>

					<description><![CDATA[<p>写在前面 刚接触 Linux 的时候，面对黑乎乎的终端窗口，很多人都会懵：这玩意儿怎么用？命令敲错了会不会把系统搞崩？ 别慌，Linux 命令其实没那么难。日常工作中真正高频使用的命令也就几十个，掌握了这些，90% 的场景都能应付。这篇文章把这些命令按功能分好类，每个都配上实际例子，照着敲一遍就能学会。 建议先收藏，以后遇到问题直接查对应分类，比百度搜半天快多了。 一、文件和目录操作（最常用的） 1. ls &#8211; 查看目录内容 这是用得最多的命令，查看当前目录有什么文件和文件夹。 ls # 查看当前目录</p>
<p><a href="https://www.dixunblog.cn/1742.html">Linux 命令大全：新手入门必看的 80+ 实用命令详解</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></description>
										<content:encoded><![CDATA[<h2>写在前面</h2>
<p>刚接触 Linux 的时候，面对黑乎乎的终端窗口，很多人都会懵：这玩意儿怎么用？命令敲错了会不会把系统搞崩？</p>
<p>别慌，Linux 命令其实没那么难。日常工作中真正高频使用的命令也就几十个，掌握了这些，90% 的场景都能应付。这篇文章把这些命令按功能分好类，每个都配上实际例子，照着敲一遍就能学会。</p>
<p>建议先收藏，以后遇到问题直接查对应分类，比百度搜半天快多了。</p>
<p><img decoding="async" class="size-full wp-image-1743 aligncenter" title="19715cbbdb215d2f11e6801cb35b4494" src="http://cdn.hyclive.cn/dixunblog/2026/04/19715cbbdb215d2f11e6801cb35b4494.png" alt="19715cbbdb215d2f11e6801cb35b4494" width="2730" height="1535" /></p>
<hr />
<h2>一、文件和目录操作（最常用的）</h2>
<h3>1. ls &#8211; 查看目录内容</h3>
<p>这是用得最多的命令，查看当前目录有什么文件和文件夹。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ls                  # 查看当前目录
ls -l               # 详细列表，显示文件大小、权限、时间
ls -a               # 显示隐藏文件（以.开头的）
ls -lh              # 文件大小用 K/M/G 显示，更直观
ls /home            # 查看指定目录</code></pre>
<p><strong>例子：</strong></p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ls -lh
# 输出类似：
# drwxr-xr-x 2 root root 4.0K Jan 10 10:00 Documents
# -rw-r--r-- 1 root root 2.5M Jan 10 09:30 photo.jpg</code></pre>
<p>d 开头的是目录，- 开头的是文件，4.0K 和 2.5M 是大小。</p>
<hr />
<h3>2. cd &#8211; 切换目录</h3>
<p>从一个目录跳到另一个目录。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cd /home            # 进入 home 目录
cd Documents        # 进入当前目录下的 Documents
cd ..               # 返回上一级目录
cd ~                # 回到用户主目录（比如 /root 或 /home/用户名）
cd -                # 返回上一次所在的目录</code></pre>
<p><strong>小技巧：</strong> cd 后面不写路径，默认回到主目录，等于 cd ~。</p>
<hr />
<h3>3. pwd &#8211; 显示当前路径</h3>
<p>有时候转了好几层目录，忘了自己在哪，pwd 告诉你当前位置。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">pwd
# 输出：/home/user/Documents/Projects</code></pre>
<hr />
<h3>4. mkdir &#8211; 创建目录</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">mkdir test              # 创建一个叫 test 的目录
mkdir -p a/b/c          # 创建多层目录，a 下面有 b，b 下面有 c
mkdir test1 test2       # 同时创建多个目录</code></pre>
<p>-p 参数很好用，一次性建多层目录，不用一层一层建。</p>
<hr />
<h3>5. rm &#8211; 删除文件和目录</h3>
<p>这个命令用得很多，但也有点危险，删了就找不回来了。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">rm file.txt             # 删除文件
rm -r folder            # 删除目录（必须加 -r）
rm -rf folder           # 删除目录且不提示确认（f 是强制）
rm -i file.txt          # 删除前询问确认</code></pre>
<p><strong>注意事项：</strong></p>
<ul>
<li>删目录必须加 -r，否则报错</li>
<li>rm -rf 没有确认提示，慎用，尤其是 rm -rf /（这会删掉整个系统）</li>
<li>建议习惯用 rm -i，删前多确认一次</li>
</ul>
<hr />
<h3>6. cp &#8211; 复制文件和目录</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cp file1.txt file2.txt          # 把 file1 复制一份叫 file2
cp file.txt /home/backup/       # 复制到指定目录
cp -r folder1 folder2           # 复制目录（必须加 -r）
cp -p file.txt backup.txt       # 复制时保留原文件的权限和时间</code></pre>
<hr />
<h3>7. mv &#8211; 移动或重命名</h3>
<p>mv 有两个功能：移动文件到其他目录，或者给文件改名字。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">mv old.txt new.txt              # 重命名文件
mv file.txt /home/docs/         # 移动文件到其他目录
mv folder1 /home/backup/        # 移动目录
mv *.txt /home/docs/            # 把所有 txt 文件移到 docs 目录</code></pre>
<hr />
<h3>8. touch &#8211; 创建空文件或更新时间戳</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">touch newfile.txt       # 创建一个空文件
touch existing.txt      # 更新文件的时间戳（访问和修改时间）
touch a.txt b.txt       # 同时创建多个文件</code></pre>
<p>创建空文件干嘛用？有时候脚本需要判断文件是否存在，先 touch 一个占位。</p>
<hr />
<h3>9. cat &#8211; 查看文件内容</h3>
<p>小文件直接 cat，大文件别用，会刷屏。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cat file.txt               # 显示文件全部内容
cat -n file.txt            # 显示内容并带行号
cat a.txt b.txt &gt; c.txt    # 把 a 和 b 合并写入 c</code></pre>
<hr />
<h3>10. more 和 less &#8211; 分页查看大文件</h3>
<p>文件太大，cat 会刷屏，用 more 或 less 分页看。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">more largefile.txt     # 分页查看，按空格翻页，按 q 退出
less largefile.txt     # 比 more 更好用，可以上下翻页，按 q 退出</code></pre>
<p>less 功能更强，可以搜索（按 / 输入关键词），建议大文件都用 less。</p>
<hr />
<h3>11. head 和 tail &#8211; 查看文件开头或结尾</h3>
<p>只看文件的前几行或后几行。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">head file.txt             # 显示前 10 行
head -n 20 file.txt       # 显示前 20 行
tail file.txt             # 显示后 10 行
tail -n 50 file.txt       # 显示后 50 行
tail -f logfile.txt       # 实时查看文件尾部（日志监控常用）</code></pre>
<p>tail -f 监控日志特别有用，日志文件不断更新，你能实时看到新内容。</p>
<hr />
<h3>12. find &#8211; 查找文件</h3>
<p>不知道文件在哪，find 帮你找。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">find /home -name "*.txt"          # 在 home 目录找所有 txt 文件
find . -name "test*"              # 在当前目录找以 test 开头的文件
find / -size +100M                # 找大于 100M 的文件
find /home -type d                # 只找目录
find . -mtime -7                  # 找最近 7 天修改过的文件</code></pre>
<p>find 功能很强，可以按名字、大小、类型、时间等多种条件搜索。</p>
<hr />
<h3>13. grep &#8211; 搜索文件内容</h3>
<p>在文件里找关键词，grep 是神器。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">grep "error" logfile.txt          # 在文件里找 error这个词
grep -i "error" logfile.txt       # 忽略大小写，Error、ERROR都能匹配
grep -n "error" logfile.txt       # 显示行号
grep -r "error" /home/logs/       # 递归搜索整个目录
grep -c "error" logfile.txt       # 只显示匹配了多少行
grep -v "error" logfile.txt       # 显示不包含 error 的行</code></pre>
<p>配合其他命令用更强大：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cat logfile.txt | grep "error"    # 先 cat 再 grep
ps aux | grep nginx               # 查找 nginx 进程</code></pre>
<hr />
<h3>14. ln &#8211; 创建链接</h3>
<p>链接分两种：软链接（类似快捷方式）和硬链接。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ln -s /home/file.txt link.txt     # 创建软链接（最常用）
ln /home/file.txt hardlink.txt    # 创建硬链接</code></pre>
<p>软链接更常用，删了原文件，软链接会失效；硬链接相当于文件的另一个入口，删了原文件，硬链接还能访问。</p>
<hr />
<h3>15. tree &#8211; 树状显示目录结构</h3>
<p>比 ls 更直观，能看到目录的层级结构。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">tree                # 显示当前目录的树状结构
tree -L 2           # 只显示 2 层深度
tree /home          # 显示指定目录
tree -d             # 只显示目录，不显示文件</code></pre>
<p>如果系统没有 tree，需要先安装：<code>yum install tree</code> 或 <code>apt install tree</code>。</p>
<hr />
<h3>16. file &#8211; 查看文件类型</h3>
<p>有时候文件没后缀名，不知道是什么类型，file 命令告诉你。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">file photo.jpg
# 输出：photo.jpg: JPEG image data, JFIF standard 1.01

file document.pdf
# 输出：document.pdf: PDF document, version 1.4

file script.sh
# 输出：script.sh: Bourne-Again shell script, ASCII text executable</code></pre>
<hr />
<h3>17. stat &#8211; 查看文件详细信息</h3>
<p>比 ls -l 更详细，能看到访问时间、修改时间、状态改变时间。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">stat file.txt
# 输出包含：
# Size: 1024        # 文件大小
# Access: 2025-01-10 10:00:00   # 访问时间
# Modify: 2025-01-09 15:30:00   # 修改时间
# Change: 2025-01-09 15:30:00   # 状态改变时间</code></pre>
<hr />
<h2>二、文件内容编辑和处理</h2>
<h3>18. echo &#8211; 输出文本</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">echo "Hello World"              # 输出文字
echo "Hello" &gt; file.txt         # 把文字写入文件（覆盖原有内容）
echo "Hello" &gt;&gt; file.txt        # 追加到文件末尾
echo -n "Hello"                 # 输出不换行
echo $PATH                      # 输出环境变量的值</code></pre>
<p>写脚本时经常用 echo 输出提示信息或者写入文件。</p>
<hr />
<h3>19. wc &#8211; 统计文件行数、字数、字节数</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">wc file.txt             # 显示行数、字数、字节数
wc -l file.txt          # 只显示行数
wc -w file.txt          # 只显示字数
wc -c file.txt          # 只显示字节数
wc -l *.txt             # 统计所有 txt 文件的行数</code></pre>
<hr />
<h3>20. sort &#8211; 排序文件内容</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">sort file.txt               # 按字母顺序排序
sort -n file.txt            # 按数字排序
sort -r file.txt            # 反向排序
sort -u file.txt            # 排序并去重
sort -k 2 file.txt          # 按第 2 列排序</code></pre>
<hr />
<h3>21. uniq &#8211; 去除重复行</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">uniq file.txt               # 去除连续重复的行
uniq -c file.txt            # 显示每行出现的次数
sort file.txt | uniq        # 先排序再去重（更彻底）</code></pre>
<p>uniq 只去除连续重复的行，配合 sort 用效果更好。</p>
<hr />
<h3>22. cut &#8211; 提取文件中的列</h3>
<p>文件是按列排列的（比如 CSV），提取某一列用 cut。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cut -d ',' -f 1 file.csv         # 用逗号分隔，取第 1 列
cut -d ':' -f 1,3 /etc/passwd    # 用冒号分隔，取第 1 和第 3 列
cut -c 1-5 file.txt              # 取每行的第 1-5 个字符</code></pre>
<hr />
<h3>23. diff &#8211; 比较两个文件的差异</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">diff file1.txt file2.txt         # 显示差异
diff -u file1.txt file2.txt      # 用 unified 格式显示（更易读）
diff -r folder1 folder2          # 比较两个目录的差异</code></pre>
<hr />
<h3>24. sed &#8211; 流编辑器（替换文本）</h3>
<p>sed 功能很强大，最常用的是替换文本。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">sed 's/old/new/' file.txt            # 把每行第一个 old 替换为 new
sed 's/old/new/g' file.txt           # 把所有 old 替换为 new（g 表示全局）
sed -i 's/old/new/g' file.txt        # 直接修改文件（-i 表示修改原文件）
sed '/^$/d' file.txt                 # 删除空行
sed '5d' file.txt                    # 删除第 5 行</code></pre>
<p>sed 还能做很多复杂操作，但这几个是最常用的。</p>
<hr />
<h3>25. awk &#8211; 文本处理工具</h3>
<p>awk 比 sed 更强大，可以按列处理数据，还能做计算。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">awk '{print $1}' file.txt            # 打印每行的第 1 列（默认空格分隔）
awk -F ',' '{print $1,$3}' file.csv  # 用逗号分隔，打印第 1 和第 3 列
awk '{sum += $1} END {print sum}' numbers.txt   # 计算第 1 列的总和
awk '$3 &gt; 100' file.txt              # 打印第 3 列大于 100 的行
awk 'NR==5' file.txt                 # 只打印第 5 行</code></pre>
<p>awk 适合处理结构化文本，比如日志分析、数据提取。</p>
<hr />
<h3>26. tr &#8211; 字符转换</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">tr 'a-z' 'A-Z' file.txt          # 小写转大写
tr 'A-Z' 'a-z' file.txt          # 大写转小写
tr -d '0-9' file.txt             # 删除所有数字
tr -s ' ' file.txt               # 把多个空格压缩成一个</code></pre>
<hr />
<h3>27. tee &#8211; 同时输出到屏幕和文件</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">tee output.txt               # 输出到屏幕并写入文件
tee -a output.txt            # 追加写入文件
ls | tee list.txt            # ls 结果显示在屏幕并写入 list.txt</code></pre>
<p>配合管道使用，既能看到结果又能保存记录。</p>
<hr />
<h2>三、压缩和解压</h2>
<h3>28. tar &#8211; 打包和压缩（最常用）</h3>
<p>tar 是 Linux 最常用的打包工具，配合 gzip 或 bzip2 压缩。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">tar -cvf archive.tar folder          # 打包文件夹（不压缩）
tar -czvf archive.tar.gz folder      # 打包并用 gzip 压缩
tar -cjvf archive.tar.bz2 folder     # 打包并用 bzip2 压缩
tar -xvf archive.tar                 # 解包
tar -xzvf archive.tar.gz             # 解包 gzip 压缩的文件
tar -xjvf archive.tar.bz2            # 解包 bzip2 压缩的文件
tar -xzvf archive.tar.gz -C /home/   # 解包到指定目录</code></pre>
<p>参数解释：</p>
<ul>
<li>c：创建（打包）</li>
<li>x：解包</li>
<li>v：显示过程</li>
<li>f：指定文件名</li>
<li>z：gzip 压缩/解压</li>
<li>j：bzip2 压缩/解压</li>
<li>C：指定目标目录</li>
</ul>
<p>记住这几个组合就够了：打包用 czvf，解压用 xzvf。</p>
<hr />
<h3>29. gzip 和 gunzip &#8211; gzip 压缩解压</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">gzip file.txt                # 压缩文件，生成 file.txt.gz（原文件消失）
gzip -k file.txt             # 压缩但保留原文件
gunzip file.txt.gz           # 解压
gzip -d file.txt.gz          # 解压（等于 gunzip）
gzip -r folder               # 递归压缩目录里的所有文件</code></pre>
<p>gzip 只能压缩单个文件，要压缩多个文件先用 tar 打包。</p>
<hr />
<h3>30. zip 和 unzip &#8211; zip 格式压缩解压</h3>
<p>zip 格式在 Windows 上很常见，Linux 也能用。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">zip archive.zip file1 file2          # 压缩多个文件
zip -r archive.zip folder            # 压缩目录
unzip archive.zip                    # 解压
unzip archive.zip -d /home/          # 解压到指定目录
unzip -l archive.zip                 # 查看压缩包内容（不解压）</code></pre>
<hr />
<h3>31. xz 和 unxz &#8211; xz 格式压缩解压</h3>
<p>xz 压缩率比 gzip 更高，但速度慢一些。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">xz file.txt                  # 压缩文件，生成 file.txt.xz
xz -k file.txt               # 压缩但保留原文件
xz -d file.txt.xz            # 解压
unxz file.txt.xz             # 解压（等于 xz -d）</code></pre>
<hr />
<h2>四、系统信息查看</h2>
<h3>32. uname &#8211; 查看系统信息</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">uname -a                     # 显示所有系统信息
uname -r                     # 只显示内核版本
uname -m                     # 显示系统架构（x86_64 等）
uname -n                     # 显示主机名</code></pre>
<hr />
<h3>33. hostname &#8211; 查看和设置主机名</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">hostname                     # 显示主机名
hostname newname             # 设置新主机名（临时生效）
hostnamectl set-hostname newname    # 永久设置主机名（CentOS 7+）</code></pre>
<hr />
<h3>34. uptime &#8211; 查看系统运行时间和负载</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">uptime
# 输出类似：
# 10:30:00 up 5 days, 2:15, 3 users, load average: 0.5, 0.3, 0.1</code></pre>
<p>up 5 days：系统运行了 5 天<br />
load average：系统负载，三个数值分别是 1 分钟、5 分钟、15 分钟的平均负载。一般超过 CPU 核心数就说明负载较高。</p>
<hr />
<h3>35. date &#8211; 显示和设置时间</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">date                         # 显示当前时间
date +%Y-%m-%d               # 只显示日期（格式：2025-01-10）
date +%H:%M:%S               # 只显示时间
date -s "2025-01-10 10:00:00"    # 设置时间</code></pre>
<hr />
<h3>36. cal &#8211; 显示日历</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">cal                          # 显示当月日历
cal 2025                     # 显示 2025 年全年日历
cal 1 2025                   # 显示 2025 年 1 月</code></pre>
<hr />
<h3>37. free &#8211; 查看内存使用情况</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">free                         # 显示内存使用（单位 KB）
free -h                      # 用 MB/GB 显示，更直观
free -m                      # 单位 MB</code></pre>
<p>输出解释：</p>
<ul>
<li>total：总内存</li>
<li>used：已使用</li>
<li>free：空闲</li>
<li>available：可用（包括可回收的缓存）</li>
<li>buff/cache：缓冲和缓存</li>
</ul>
<p>看内存够不够，主要看 available。</p>
<hr />
<h3>38. df &#8211; 查看磁盘使用情况</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">df                           # 显示磁盘使用
df -h                        # 用 MB/GB 显示
df -T                        # 显示文件系统类型
df -i                        # 显示 inode 使用情况</code></pre>
<p>inode 是什么？Linux 系统中，文件存储需要两个东西：数据块（存内容）和 inode（存元信息，比如权限、时间）。有时候磁盘空间还有很多，但 inode 满了，也无法创建新文件。</p>
<hr />
<h3>39. du &#8211; 查看目录占用空间</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">du folder                    # 显示目录占用
du -h folder                 # 用 MB/GB 显示
du -sh folder                # 只显示总大小（不显示子目录）
du -h --max-depth=1 folder   # 只显示 1 层深度
du -ah | sort -rh | head -10 # 找出占用最大的 10 个文件/目录</code></pre>
<hr />
<h3>40. top &#8211; 实时查看系统状态</h3>
<p>top 是查看系统状态的&#8221;神器&#8221;，能看到 CPU、内存、进程等信息。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">top                          # 打开 top 监控界面</code></pre>
<p>进入 top 后：</p>
<ul>
<li>按 P：按 CPU 使用率排序</li>
<li>按 M：按内存使用率排序</li>
<li>按 T：按运行时间排序</li>
<li>按 k：输入 PID 可以杀进程</li>
<li>按 q：退出</li>
</ul>
<p>常用看几项：</p>
<ul>
<li>CPU 使用率：us（用户）、sy（系统）、id（空闲）</li>
<li>内存：看 free 和 available</li>
<li>进程列表：看哪个进程占用高</li>
</ul>
<hr />
<h3>41. htop &#8211; 更友好的系统监控</h3>
<p>htop 比 top 界面更美观，操作更方便。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">htop                         # 打开 htop</code></pre>
<p>需要先安装：<code>yum install htop</code> 或 <code>apt install htop</code>。</p>
<p>htop 可以鼠标点击操作，支持横向滚动，比 top 好用很多。</p>
<hr />
<h3>42. vmstat &#8211; 查看系统性能统计</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">vmstat                       # 显示一次统计
vmstat 1 5                   # 每秒刷新，共刷新 5 次
vmstat -s                    # 显示详细统计</code></pre>
<hr />
<h3>43. iostat &#8211; 查看 IO 状态</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">iostat                       # 显示 IO 统计
iostat -x                    # 更详细的信息
iostat 1 5                   # 每秒刷新，共 5 次</code></pre>
<hr />
<h3>44. lsblk &#8211; 查看块设备信息</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">lsblk                        # 显示块设备（硬盘、分区等）
lsblk -f                     # 显示文件系统类型和挂载点</code></pre>
<hr />
<h3>45. lspci &#8211; 查看 PCI 设备</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">lspci                        # 显示 PCI 设备列表
lspci -v                     # 详细信息</code></pre>
<p>看网卡、显卡等硬件信息用这个。</p>
<hr />
<h3>46. lsusb &#8211; 查看 USB 设备</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">lsusb                        # 显示 USB 设备列表
lsusb -v                     # 详细信息</code></pre>
<hr />
<h3>47. dmidecode &#8211; 查看硬件信息</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">dmidecode -t system          # 查看系统信息（制造商、型号等）
dmidecode -t memory          # 查看内存信息
dmidecode -t processor       # 查看处理器信息</code></pre>
<p>需要 root 权限。</p>
<hr />
<h2>五、进程管理</h2>
<h3>48. ps &#8211; 查看进程</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ps                           # 显示当前用户的进程
ps aux                       # 显示所有进程详细信息
ps -ef                       # 另一种格式显示所有进程
ps aux | grep nginx          # 查找 nginx 进程</code></pre>
<p>输出解释（aux 格式）：</p>
<ul>
<li>USER：运行进程的用户</li>
<li>PID：进程 ID</li>
<li>%CPU：CPU 使用率</li>
<li>%MEM：内存使用率</li>
<li>COMMAND：进程命令</li>
</ul>
<hr />
<h3>49. pgrep 和 pkill &#8211; 查找和杀死进程</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">pgrep nginx                  # 查找 nginx 进程的 PID
pgrep -u root nginx          # 查找 root 用户运行的 nginx 进程
pkill nginx                  # 杀死所有 nginx 进程
pkill -9 nginx               # 强制杀死（-9 是强制信号）
pkill -u root                # 杀死 root 用户的所有进程</code></pre>
<p>比 ps | grep 再 kill 方便多了。</p>
<hr />
<h3>50. kill &#8211; 杀死进程</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">kill 1234                    # 杀死 PID 为 1234 的进程
kill -9 1234                 # 强制杀死
kill -l                      # 列出所有信号</code></pre>
<p>常用信号：</p>
<ul>
<li>15（默认）：正常终止，进程可以清理资源</li>
<li>9：强制终止，进程立即结束</li>
<li>2：中断（Ctrl+C）</li>
<li>1：重启进程</li>
</ul>
<hr />
<h3>51. killall &#8211; 按名字杀死进程</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">killall nginx                # 杀死所有 nginx 进程
killall -9 nginx             # 强制杀死
killall -u root nginx        # 只杀死 root 用户运行的</code></pre>
<hr />
<h3>52. nice 和 renice &#8211; 设置进程优先级</h3>
<p>优先级范围：-20（最高）到 19（最低）。默认是 0。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">nice -n 10 ./script.sh       # 以优先级 10 运行脚本（较低）
nice -n -5 ./script.sh       # 以优先级 -5 运行（较高）
renice -n 5 -p 1234          # 把 PID 1234 的优先级改为 5
renice -n -10 -u root        # 把 root 用户所有进程优先级改为 -10</code></pre>
<hr />
<h3>53. nohup &#8211; 后台运行不中断</h3>
<p>SSH 断开后，前台进程会被杀掉。nohup 让进程在后台持续运行。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">nohup ./script.sh &amp;          # 后台运行，输出写到 nohup.out
nohup ./script.sh &gt; output.log 2&gt;&amp;1 &amp;   # 输出到指定文件</code></pre>
<p>&amp; 表示后台运行，2&gt;&amp;1 表示把错误输出也写到文件里。</p>
<hr />
<h3>54. jobs、fg、bg &#8211; 作业控制</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">jobs                         # 查看后台作业
fg %1                        # 把作业 1 调到前台
bg %1                        # 把作业 1 放到后台继续运行
Ctrl+Z                       # 暂停当前前台进程（放入后台）
Ctrl+C                       # 终止当前前台进程</code></pre>
<hr />
<h3>55. watch &#8211; 定时执行命令</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">watch -n 1 free -h           # 每秒刷新内存使用情况
watch -n 5 "ps aux | grep nginx"   # 每 5 秒查看 nginx 进程
watch -d free -h             # 高亮显示变化的部分</code></pre>
<hr />
<h2>六、网络相关</h2>
<h3>56. ifconfig &#8211; 查看和配置网络接口</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ifconfig                     # 显示所有网络接口
ifconfig eth0                # 只显示 eth0
ifconfig eth0 192.168.1.100  # 设置 IP 地址（临时）
ifconfig eth0 up             # 启用网卡
ifconfig eth0 down           # 禁用网卡</code></pre>
<p>CentOS 7+ 可能没有 ifconfig，用 ip 命令替代。</p>
<hr />
<h3>57. ip &#8211; 新一代网络配置命令</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ip addr                      # 显示所有 IP 地址
ip addr show eth0            # 显示 eth0 的 IP
ip link                      # 显示网络接口
ip link set eth0 up          # 启用网卡
ip link set eth0 down        # 禁用网卡
ip addr add 192.168.1.100/24 dev eth0   # 设置 IP 地址
ip route                     # 显示路由表
ip route add default via 192.168.1.1    # 设置默认路由</code></pre>
<hr />
<h3>58. ping &#8211; 测试网络连通性</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ping 192.168.1.1             # ping IP
ping www.baidu.com           # ping 域名
ping -c 5 192.168.1.1        # ping 5 次后停止
ping -i 2 192.168.1.1        # 每次间隔 2 秒
ping -s 1000 192.168.1.1     # 发送 1000 字节的包</code></pre>
<p>ping 不通不一定是网络问题，可能是对方禁 ping 或防火墙拦截。</p>
<hr />
<h3>59. traceroute &#8211; 查看网络路径</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">traceroute www.baidu.com     # 查看到达百度经过的路由
traceroute -n 192.168.1.100  # 不解析域名，只显示 IP</code></pre>
<p>能看到网络包经过哪些路由器，哪一段慢。</p>
<hr />
<h3>60. nslookup 和 dig &#8211; DNS 查询</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">nslookup www.baidu.com       # 查询域名解析
nslookup www.baidu.com 8.8.8.8   # 用指定 DNS 服务器查询
dig www.baidu.com            # 更详细的 DNS 信息
dig @8.8.8.8 www.baidu.com   # 用指定 DNS 查询
dig +short www.baidu.com     # 只显示解析结果</code></pre>
<hr />
<h3>61. netstat &#8211; 查看网络连接和端口</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">netstat                      # 显示所有网络连接
netstat -tunlp               # 显示 TCP/UDP 端口和对应进程
netstat -an                  # 显示所有连接（包括监听）
netstat -rn                  # 显示路由表
netstat -i                   # 显示网络接口统计</code></pre>
<p>看端口占用常用：<code>netstat -tunlp | grep 80</code></p>
<hr />
<h3>62. ss &#8211; 新一代网络统计工具</h3>
<p>ss 比 netstat 更快，功能更强。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ss                           # 显示所有 socket
ss -tunlp                    # 显示 TCP/UDP 端口和进程
ss -s                        # 显示统计摘要
ss -l                        # 只显示监听的 socket
ss -tan | grep :80           # 查看端口 80 的连接</code></pre>
<hr />
<h3>63. curl &#8211; 发送 HTTP 请求</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">curl http://www.baidu.com    # 获取网页内容
curl -I http://www.baidu.com # 只获取响应头
curl -o file.html http://www.baidu.com   # 保存到文件
curl -X POST -d "data=test" http://example.com/api   # POST 请求
curl -H "Content-Type: application/json" http://example.com   # 自定义请求头
curl -u user:pass http://example.com    # 带认证
curl --proxy http://proxy.example.com:8080 http://www.baidu.com   # 使用代理</code></pre>
<p>curl 功能很强，测试 API、下载文件、模拟请求都能用。</p>
<hr />
<h3>64. wget &#8211; 下载文件</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">wget http://example.com/file.zip     # 下载文件
wget -O newname.zip http://example.com/file.zip   # 重命名保存
wget -c http://example.com/file.zip  # 断点续传
wget -b http://example.com/file.zip  # 后台下载
wget -r http://example.com/          # 递归下载整个网站
wget --limit-rate=1m http://example.com/file.zip   # 限速下载</code></pre>
<hr />
<h3>65. ssh &#8211; 远程连接</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">ssh user@192.168.1.100       # 连接远程服务器
ssh -p 2222 user@192.168.1.100   # 指定端口
ssh -i key.pem user@192.168.1.100   # 使用密钥登录
ssh -L 8080:localhost:80 user@192.168.1.100   # 本地端口转发
ssh -R 80:localhost:8080 user@192.168.1.100   # 远程端口转发</code></pre>
<hr />
<h3>66. scp &#8211; 远程复制文件</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">scp file.txt user@192.168.1.100:/home/   # 上传文件到远程
scp user@192.168.1.100:/home/file.txt ./   # 从远程下载文件
scp -r folder user@192.168.1.100:/home/    # 上传目录
scp -P 2222 file.txt user@192.168.1.100:/home/   # 指定端口</code></pre>
<hr />
<h3>67. sftp &#8211; 安全文件传输</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">sftp user@192.168.1.100      # 连接远程</code></pre>
<p>进入 sftp 后可用命令：</p>
<ul>
<li>put file.txt：上传文件</li>
<li>get file.txt：下载文件</li>
<li>ls：查看远程目录</li>
<li>cd：切换远程目录</li>
<li>lcd：切换本地目录</li>
<li>quit：退出</li>
</ul>
<hr />
<h3>68. nmap &#8211; 网络扫描工具</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">nmap 192.168.1.100           # 扫描主机开放的端口
nmap -p 80,443 192.168.1.100 # 只扫描指定端口
nmap -sV 192.168.1.100       # 检测端口服务版本
nmap -A 192.168.1.100        # 全面扫描
nmap 192.168.1.0/24          # 扫描整个网段</code></pre>
<p>需要先安装：<code>yum install nmap</code> 或 <code>apt install nmap</code>。</p>
<hr />
<h2>七、用户和权限管理</h2>
<h3>69. useradd &#8211; 创建用户</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">useradd username             # 创建用户
useradd -m username          # 创建用户并创建主目录
useradd -s /bin/bash username    # 指定 shell
useradd -g groupname username    # 指定主组
useradd -G group1,group2 username    # 指定附加组</code></pre>
<hr />
<h3>70. userdel &#8211; 删除用户</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">userdel username             # 删除用户
userdel -r username          # 删除用户和主目录</code></pre>
<hr />
<h3>71. usermod &#8211; 修改用户</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">usermod -l newname oldname   # 改用户名
usermod -s /bin/zsh username # 修改 shell
usermod -G group1,group2 username   # 修改附加组
usermod -aG group username   # 添加到附加组（不覆盖原有组）
usermod -L username          # 锁定用户
usermod -U username          # 解锁用户</code></pre>
<hr />
<h3>72. passwd &#8211; 设置密码</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">passwd                       # 修改自己的密码
passwd username              # 修改指定用户密码（需要 root）
passwd -l username           # 锁定用户密码
passwd -u username           # 解锁用户密码
passwd -d username           # 删除用户密码（不能登录）
passwd -e username           # 强制用户下次登录时改密码</code></pre>
<hr />
<h3>73. groupadd &#8211; 创建组</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">groupadd groupname           # 创建组
groupadd -g 1000 groupname   # 指定 GID</code></pre>
<hr />
<h3>74. groupdel &#8211; 删除组</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">groupdel groupname           # 删除组</code></pre>
<hr />
<h3>75. groups &#8211; 查看用户所属组</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">groups                       # 查看自己所属组
groups username              # 查看指定用户所属组</code></pre>
<hr />
<h3>76. id &#8211; 查看用户信息</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">id                           # 查看自己的 UID、GID、组
id username                  # 查看指定用户信息
id -u username               # 只显示 UID
id -g username               # 只显示主 GID</code></pre>
<hr />
<h3>77. who &#8211; 查看登录用户</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">who                          # 显示所有登录用户
who -b                       # 显示系统启动时间
who -r                       # 显示运行级别</code></pre>
<hr />
<h3>78. w &#8211; 显示登录用户和活动</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">w                            # 显示登录用户和正在做的事</code></pre>
<p>比 who 更详细，能看到用户正在运行的命令。</p>
<hr />
<h3>79. last &#8211; 查看登录历史</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">last                         # 显示所有登录历史
last -n 10                   # 只显示最近 10 次
last username                # 只显示指定用户的登录历史
last -x                      # 显示系统重启和关机记录</code></pre>
<hr />
<h3>80. su &#8211; 切换用户</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">su                           # 切换到 root
su username                  # 切换到指定用户
su - username                # 切换用户并加载其环境变量
su -c "command" username     # 以指定用户执行命令</code></pre>
<p>su &#8211; 会切换到新用户的环境，su 只切换用户但不切换环境。</p>
<hr />
<h3>81. sudo &#8211; 以 root 权限执行命令</h3>
<p>普通用户需要 root 权限执行某些命令，用 sudo。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">sudo command                 # 以 root 权限执行命令
sudo -u username command     # 以指定用户执行命令
sudo -l                      # 查看自己可以用 sudo 执行哪些命令
sudo -k                      # 清除 sudo 密码缓存（下次执行要重新输入密码）
sudo -b command              # 后台执行命令</code></pre>
<p>需要先配置 sudo 权限：<code>visudo</code> 编辑 /etc/sudoers 文件，添加：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">username ALL=(ALL) ALL</code></pre>
<hr />
<h3>82. chmod &#8211; 修改文件权限</h3>
<p>Linux 文件权限分三部分：用户（u）、组（g）、其他人（o）。每部分有读（r=4）、写（w=2）、执行（x=1）三种权限。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">chmod 755 file.sh            # 用户：7=4+2+1（读写执行），组：5=4+1（读执行），其他人：5（读执行）
chmod 644 file.txt           # 用户读写，组和他人只读
chmod +x file.sh             # 给所有人添加执行权限
chmod u+w file.txt           # 给用户添加写权限
chmod g-r file.txt           # 移除组的读权限
chmod -R 755 folder          # 递归修改目录权限</code></pre>
<p>常用权限组合：</p>
<ul>
<li>755：脚本、程序（用户全权限，其他人可读可执行）</li>
<li>644：普通文件（用户读写，其他人只读）</li>
<li>600：私密文件（只有用户能读写）</li>
<li>777：所有人全权限（慎用）</li>
</ul>
<hr />
<h3>83. chown &#8211; 修改文件所有者</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">chown user file.txt          # 改用户
chown user:group file.txt    # 改用户和组
chown :group file.txt        # 只改组
chown -R user:group folder   # 递归修改目录
chown --reference=ref.txt file.txt   # 复制参考文件的权限</code></pre>
<hr />
<h3>84. chgrp &#8211; 修改文件所属组</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">chgrp group file.txt         # 改组
chgrp -R group folder        # 递归修改</code></pre>
<p>等于 chown :group file.txt。</p>
<hr />
<h3>85. umask &#8211; 设置默认权限</h3>
<p>新创建的文件默认权限是多少？umask 决定的。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">umask                        # 显示当前 umask 值（比如 0022）
umask 022                    # 设置 umask（新文件默认 755，目录 644）
umask 077                    # 设置 umask（新文件只有用户有权限）</code></pre>
<p>umask 是权限的&#8221;补码&#8221;，实际权限 = 777 &#8211; umask。</p>
<hr />
<h3>86. lsattr 和 chattr &#8211; 查看和设置文件属性</h3>
<p>除了普通权限，Linux 还有特殊属性。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">lsattr file.txt              # 查看属性
chattr +i file.txt           # 设置不可修改属性（连 root 都不能改）
chattr -i file.txt           # 移除不可修改属性
chattr +a file.txt           # 只能追加内容，不能修改或删除
chattr -a file.txt           # 移除追加属性</code></pre>
<p>+i 很有用，保护重要配置文件不被误改。</p>
<hr />
<h2>八、磁盘和文件系统管理</h2>
<h3>87. fdisk &#8211; 磁盘分区工具</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">fdisk -l                     # 查看所有磁盘分区
fdisk /dev/sdb               # 对 sdb 磁盘分区</code></pre>
<p>进入 fdisk 后可用命令：</p>
<ul>
<li>n：新建分区</li>
<li>d：删除分区</li>
<li>p：查看分区表</li>
<li>w：保存退出</li>
<li>q：不保存退出</li>
</ul>
<hr />
<h3>88. mkfs &#8211; 格式化分区</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">mkfs.ext4 /dev/sdb1          # 格式化为 ext4
mkfs.xfs /dev/sdb1           # 格式化为 xfs
mkfs -t ext4 /dev/sdb1       # 指定类型格式化</code></pre>
<hr />
<h3>89. mount 和 umount &#8211; 挂载和卸载</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">mount /dev/sdb1 /mnt         # 挂载分区到 /mnt 目录
mount -t ext4 /dev/sdb1 /mnt # 指定文件系统类型挂载
mount -o ro /dev/sdb1 /mnt   # 只读挂载
mount /dev/cdrom /mnt        # 挂载光驱
umount /mnt                  # 卸载
umount -l /mnt               # 强制卸载（忙碌时）</code></pre>
<p>永久挂载要写入 /etc/fstab 文件：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">/dev/sdb1    /mnt    ext4    defaults    0 0</code></pre>
<hr />
<h3>90. blkid &#8211; 查看块设备 UUID</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">blkid                        # 显示所有块设备的 UUID 和类型
blkid /dev/sdb1              # 显示指定设备的 UUID</code></pre>
<p>写 /etc/fstab 用 UUID 更稳定，比设备名可靠。</p>
<hr />
<h3>91. e2fsck &#8211; 检查和修复 ext 文件系统</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">e2fsck /dev/sdb1             # 检查文件系统
e2fsck -p /dev/sdb1          # 自动修复
e2fsck -f /dev/sdb1          # 强制检查</code></pre>
<p>检查前要先卸载分区。</p>
<hr />
<h3>92. xfs_repair &#8211; 检查和修复 xfs 文件系统</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">xfs_repair /dev/sdb1         # 检查和修复 xfs 文件系统
xfs_repair -n /dev/sdb1      # 只检查不修复</code></pre>
<hr />
<h2>九、软件包管理</h2>
<h3>93. yum &#8211; CentOS/RHEL 软件包管理</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">yum install package          # 安装软件包
yum remove package           # 删除软件包
yum update                   # 更新所有软件包
yum update package           # 更新指定软件包
yum search keyword           # 搜索软件包
yum list installed           # 列出已安装软件包
yum info package             # 显示软件包信息
yum clean all                # 清理缓存
yum history                  # 查看安装历史
yum reinstall package        # 重新安装</code></pre>
<hr />
<h3>94. dnf &#8211; CentOS 8+/Fedora 软件包管理</h3>
<p>dnf 是 yum 的下一代，命令基本一样：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">dnf install package
dnf remove package
dnf update
dnf search keyword
dnf list installed
dnf info package
dnf clean all</code></pre>
<hr />
<h3>95. apt &#8211; Debian/Ubuntu 软件包管理</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">apt install package          # 安装软件包
apt remove package           # 删除软件包
apt purge package            # 删除软件包和配置文件
apt update                   # 更新软件源
apt upgrade                  # 升级所有软件包
apt search keyword           # 搜索软件包
apt show package             # 显示软件包信息
apt list --installed         # 列出已安装软件包
apt autoremove               # 清理不需要的依赖包
apt clean                   # 清理下载缓存</code></pre>
<p>apt-get 和 apt 命令差不多，apt 是 apt-get 的简化版，推荐用 apt。</p>
<hr />
<h3>96. rpm &#8211; RPM 包管理（低层）</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">rpm -ivh package.rpm         # 安装 rpm 包
rpm -e package               # 删除软件包
rpm -qa                      # 列出所有已安装包
rpm -qi package              # 显示软件包信息
rpm -ql package              # 显示软件包安装的文件列表
rpm -qf /path/file           # 查看文件属于哪个包
rpm -V package               # 检查软件包文件是否被修改</code></pre>
<p>rpm 直接安装 rpm 文件，不自动解决依赖，建议用 yum/dnf。</p>
<hr />
<h3>97. dpkg &#8211; Debian 包管理（低层）</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">dpkg -i package.deb          # 安装 deb 包
dpkg -r package              # 删除软件包
dpkg -P package              # 删除软件包和配置文件
dpkg -l                      # 列出所有已安装包
dpkg -L package              # 显示软件包安装的文件列表
dpkg -S /path/file           # 查看文件属于哪个包</code></pre>
<p>dpkg 直接安装 deb 文件，不自动解决依赖，建议用 apt。</p>
<hr />
<h3>98. pip &#8211; Python 包管理</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">pip install package          # 安装 Python 包
pip uninstall package        # 删除 Python 包
pip list                     # 列出已安装包
pip show package             # 显示包信息
pip freeze                   # 输出已安装包列表（用于导出依赖）
pip install -r requirements.txt    # 从文件安装依赖
pip search keyword           # 搜索包（已禁用）
pip --version                # 显示 pip 版本
pip install --upgrade package    # 升级包</code></pre>
<hr />
<h3>99. npm &#8211; Node.js 包管理</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">npm install package          # 安装包
npm install -g package       # 全局安装
npm uninstall package        # 删除包
npm list                     # 列出已安装包
npm update package           # 更新包
npm run script               # 运行脚本
npm init                     # 创建 package.json
npm search keyword           # 搜索包</code></pre>
<hr />
<h2>十、服务管理</h2>
<h3>100. systemctl &#8211; CentOS 7+/Ubuntu 16+ 服务管理</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">systemctl start service      # 启动服务
systemctl stop service       # 停止服务
systemctl restart service    # 重启服务
systemctl status service     # 查看服务状态
systemctl enable service     # 设置开机自启
systemctl disable service    # 关闭开机自启
systemctl is-enabled service # 查看是否开机自启
systemctl list-units --type=service    # 列出所有服务
systemctl list-unit-files --type=service   # 列出所有服务配置文件
systemctl daemon-reload      # 重载配置文件（修改配置后）</code></pre>
<hr />
<h3>101. service &#8211; 传统服务管理</h3>
<p>CentOS 6 和老版本用 service 命令。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">service service_name start    # 启动服务
service service_name stop     # 停止服务
service service_name restart  # 重启服务
service service_name status   # 查看状态
service --status-all          # 查看所有服务状态</code></pre>
<hr />
<h3>102. journalctl &#8211; 查看系统日志</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">journalctl                    # 查看所有日志
journalctl -u nginx           # 只看 nginx 服务日志
journalctl -f                 # 实时查看日志
journalctl --since today      # 只看今天的日志
journalctl --since "2025-01-10"   # 查看指定日期后的日志
journalctl -p err             # 只看错误级别日志
journalctl -b                 # 只看本次启动的日志
journalctl -k                 # 只看内核日志</code></pre>
<hr />
<h3>103. chkconfig &#8211; 设置服务开机自启（老版本）</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">chkconfig --list              # 查看所有服务开机自启状态
chkconfig service on          # 设置开机自启
chkconfig service off         # 关闭开机自启
chkconfig --add service       # 添加服务到管理列表
chkconfig --del service       # 从管理列表删除服务</code></pre>
<p>CentOS 7+ 用 systemctl enable/disable 替代。</p>
<hr />
<h2>十一、系统关机和重启</h2>
<h3>104. shutdown &#8211; 关机</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">shutdown                     # 一分钟后关机
shutdown -h now              # 立即关机
shutdown -h +10              # 10 分钟后关机
shutdown -h 20:00            # 20:00 关机
shutdown -c                  # 取消关机
shutdown -k now              # 只发送警告不关机</code></pre>
<hr />
<h3>105. reboot &#8211; 重启</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">reboot                       # 重启
reboot -f                    # 强制重启（不调用 shutdown）</code></pre>
<hr />
<h3>106. poweroff &#8211; 关机</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">poweroff                     # 关机
poweroff -f                  # 强制关机</code></pre>
<p>等于 shutdown -h now。</p>
<hr />
<h3>107. halt &#8211; 停机</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">halt                         # 停机
halt -p                      # 停机并关闭电源
halt -f                      # 强制停机</code></pre>
<hr />
<h3>108. init &#8211; 切换运行级别</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">init 0                       # 关机
init 6                       # 重启
init 3                       # 切换到多用户模式（无图形界面）
init 5                       # 切换到图形界面模式</code></pre>
<hr />
<h2>十二、其他实用命令</h2>
<h3>109. history &#8211; 查看命令历史</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">history                      # 显示所有历史命令
history 10                   # 显示最近 10 条
history -c                   # 清空历史
!10                          # 执行第 10 条历史命令
!ls                          # 执行最近的 ls 命令
!!                           # 执行上一条命令</code></pre>
<hr />
<h3>110. alias &#8211; 设置命令别名</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">alias                        # 显示所有别名
alias ll='ls -l'             # 设置 ll 别名
alias l='ls -lah'            # 设置 l 别名
unalias ll                   # 删除别名</code></pre>
<p>写进 ~/.bashrc 永久生效。</p>
<hr />
<h3>111. source &#8211; 执行脚本文件</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">source ~/.bashrc             # 执行配置文件（重新加载）
source script.sh             # 执行脚本（在当前 shell）</code></pre>
<p>等于 . ~/.bashrc。</p>
<hr />
<h3>112. export &#8211; 设置环境变量</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">export                       # 显示所有环境变量
export VAR=value             # 设置环境变量
export PATH=$PATH:/new/path  # 添加路径到 PATH</code></pre>
<p>写进 ~/.bashrc 或 /etc/profile 永久生效。</p>
<hr />
<h3>113. env &#8211; 显示环境变量</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">env                          # 显示所有环境变量
env -i command               # 清空环境变量执行命令
env VAR=value command        # 设置临时环境变量执行命令</code></pre>
<hr />
<h3>114. set &#8211; 显示 shell 变量</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">set                          # 显示所有变量（包括环境变量和 shell 变量）
set -o                       # 显示 shell 选项
set -e                       # 脚本出错立即退出
set -x                       # 显示执行的命令</code></pre>
<hr />
<h3>115. unset &#8211; 删除变量</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">unset VAR                    # 删除变量
unset -f func                # 删除函数</code></pre>
<hr />
<h3>116. crontab &#8211; 定时任务管理</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">crontab -l                   # 查看定时任务
crontab -e                   # 编辑定时任务
crontab -r                   # 删除所有定时任务
crontab -u user -l           # 查看指定用户的定时任务</code></pre>
<p>定时任务格式：<code>分 时 日 月 周 命令</code></p>
<p>例子：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash"># 每分钟执行
* * * * * /path/script.sh

# 每小时执行
0 * * * * /path/script.sh

# 每天 8 点执行
0 8 * * * /path/script.sh

# 每周一 8 点执行
0 8 * * 1 /path/script.sh

# 每月 1 号 0 点执行
0 0 1 * * /path/script.sh</code></pre>
<hr />
<h3>117. at &#8211; 执行一次性定时任务</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">at now + 5 minutes           # 5 分钟后执行
at 10:00                     # 10 点执行
at 10:00 tomorrow            # 明天 10 点执行
atq                          # 查看待执行任务
atrm job_number              # 删除任务</code></pre>
<p>输入命令后 Ctrl+D 保存。</p>
<hr />
<h3>118. time &#8211; 测量命令执行时间</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">time command                 # 测量命令执行时间
time -v command              # 详细输出</code></pre>
<p>输出类似：</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono ">real    0m1.234s    # 实际时间
user    0m0.500s    # 用户态时间
sys     0m0.100s    # 内核态时间</code></pre>
<hr />
<h3>119. man &#8211; 查看命令手册</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">man ls                       # 查看 ls 命令手册
man -k keyword               # 搜索包含关键词的手册
man 5 passwd                 # 查看第 5 章手册（配置文件）</code></pre>
<p>手册章节：</p>
<ul>
<li>1：用户命令</li>
<li>2：系统调用</li>
<li>3：库函数</li>
<li>4：特殊文件</li>
<li>5：配置文件</li>
<li>6：游戏</li>
<li>7：杂项</li>
<li>8：管理命令</li>
</ul>
<hr />
<h3>120. info &#8211; 查看信息文档</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">info ls                      # 查看 ls 信息文档
info coreutils               # 查看 coreutils 信息</code></pre>
<p>比 man 更详细，有超链接。</p>
<hr />
<h3>121. help &#8211; 查看内置命令帮助</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">help                         # 显示所有内置命令
help cd                      # 查看 cd 命令帮助</code></pre>
<p>shell 内置命令（cd、echo 等）没有 man 手册，用 help。</p>
<hr />
<h3>122. whereis &#8211; 查找命令位置</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">whereis ls                   # 查找 ls 的位置
whereis -b ls                # 只查找二进制文件
whereis -m ls                # 只查找手册文件</code></pre>
<hr />
<h3>123. which &#8211; 查找命令路径</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">which ls                     # 显示 ls 命令的完整路径
which -a ls                  # 显示所有匹配的路径</code></pre>
<hr />
<h3>124. type &#8211; 查看命令类型</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">type ls                      # 查看 ls 是什么类型
type cd                      # 查看 cd 是什么类型</code></pre>
<p>输出可能是：</p>
<ul>
<li>alias：别名</li>
<li>builtin：内置命令</li>
<li>file：外部命令文件</li>
</ul>
<hr />
<h3>125. locate &#8211; 快速查找文件</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">locate file.txt              # 快速查找文件
locate -i file.txt           # 忽略大小写
locate -r "\.txt$"           # 使用正则表达式</code></pre>
<p>locate 比 find 快，因为它搜索预先建立的数据库。数据库需要定期更新：<code>updatedb</code>。</p>
<hr />
<h3>126. updatedb &#8211; 更新 locate 数据库</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">updatedb                     # 更新 locate 数据库</code></pre>
<hr />
<h3>127. xargs &#8211; 构建命令行参数</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">find . -name "*.txt" | xargs rm      # 找出所有 txt 文件并删除
find . -name "*.txt" | xargs -I {} mv {} backup/    # 移动到 backup 目录
cat urls.txt | xargs -n 1 curl       # 每行一个参数执行 curl
ls | xargs -n 3 echo                 # 每次传递 3 个参数</code></pre>
<p>管道传递的结果，有些命令不能直接接收（比如 rm），需要 xargs 转换。</p>
<hr />
<h3>128. banner &#8211; 打印大字标题</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">banner "HELLO"               # 打印大字 HELLO</code></pre>
<p>需要安装：<code>yum install banner</code> 或 <code>apt install sysvbanner</code>。</p>
<hr />
<h3>129. yes &#8211; 持续输出</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">yes                          # 持续输出 y
yes "hello"                  # 持续输出 hello
yes | rm -r folder           # 删除时自动回答 y</code></pre>
<hr />
<h3>130. seq &#8211; 生成数字序列</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">seq 10                       # 输出 1 到 10
seq 5 10                     # 输出 5 到 10
seq 1 2 10                   # 输出 1,3,5,7,9（步长 2）
seq -s ',' 1 10              # 输出 1,2,3,4,5,6,7,8,9,10（分隔符）
seq -w 1 10                  # 输出 01,02,...,10（等宽）</code></pre>
<hr />
<h3>131. sleep &#8211; 延迟</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">sleep 5                      # 廜迟 5 秒
sleep 1m                     # 廜迟 1 分钟
sleep 1h                     # 廜迟 1 小时
sleep 0.5                    # 廜迟 0.5 秒</code></pre>
<hr />
<h3>132. clear &#8211; 清屏</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">clear                        # 清屏</code></pre>
<p>等于 Ctrl+L。</p>
<hr />
<h3>133. reset &#8211; 重置终端</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">reset                        # 重置终端</code></pre>
<p>终端显示乱码时用这个重置。</p>
<hr />
<h3>134. script &#8211; 记录终端会话</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">script session.log           # 开始记录会话到 session.log
script -a session.log        # 追加记录
exit                         # 结束记录（或 Ctrl+D）</code></pre>
<hr />
<h3>135. sha256sum &#8211; 计算文件 SHA256 哈希</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">sha256sum file.txt           # 计算哈希值
sha256sum -c checksum.txt    # 验证哈希值</code></pre>
<p>类似的还有 sha1sum、sha512sum、md5sum。</p>
<hr />
<h3>136. base64 &#8211; 编码解码</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">base64 file.txt              # 编码文件内容
base64 -d encoded.txt        # 解码
echo "hello" | base64        # 编码字符串
echo "aGVsbG8=" | base64 -d  # 解码字符串</code></pre>
<hr />
<h3>137. hexdump &#8211; 查看文件十六进制内容</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">hexdump file.txt             # 显示十六进制
hexdump -C file.txt          # 显示十六进制和 ASCII
hexdump -n 100 file.txt      # 只显示前 100 字节</code></pre>
<hr />
<h3>138. dd &#8211; 复制和转换文件</h3>
<p>dd 功能很强大，常用于磁盘操作。</p>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">dd if=/dev/sda of=disk.img   # 复制磁盘到文件
dd if=disk.img of=/dev/sdb   # 从文件复制到磁盘
dd if=/dev/zero of=test.bin bs=1M count=100   # 创建 100M 文件
dd if=file.txt of=new.txt bs=512 count=10     # 只复制前 512*10 字节</code></pre>
<p>参数：</p>
<ul>
<li>if：输入文件</li>
<li>of：输出文件</li>
<li>bs：块大小</li>
<li>count：块数量</li>
</ul>
<hr />
<h3>139. split &#8211; 分割文件</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">split -b 100M largefile.bin  # 按 100M 分割
split -l 1000 largefile.txt  # 按 1000 行分割
split -b 100M largefile.bin part_   # 分割文件命名为 part_aa, part_ab...</code></pre>
<hr />
<h3>140. paste &#8211; 合并文件行</h3>
<pre class="overflow-auto rounded-lg border border-border bg-muted p-3 text-sm text-foreground"><code class="font-mono language-bash">paste file1.txt file2.txt    # 逐行合并两个文件
paste -d ',' file1.txt file2.txt    # 用逗号分隔合并
paste -s file.txt            # 把所有行合并成一行</code></pre>
<hr />
<h2>写在最后</h2>
<p>这篇文章整理了 140 多个 Linux 常用命令，覆盖了文件操作、内容处理、压缩解压、系统信息、进程管理、网络、用户权限、磁盘管理、软件包、服务管理、关机重启、定时任务等方面。</p>
<p>实际工作中，经常用的也就 30-40 个，把这些练熟了，大部分场景都能搞定。遇到问题先查对应的分类，比到处百度省事得多。</p>
<p>建议：</p>
<ol>
<li>先把文件操作（ls、cd、mkdir、rm、cp、mv）练熟，这是基本功</li>
<li>grep、find、tar 这三个是高频命令，务必掌握</li>
<li>遇到不会的命令，先 man 一下看看手册</li>
<li>建个自己的命令速查表，常用的记下来</li>
</ol>
<p>有问题欢迎留言讨论，我会持续更新这篇文章。</p>
<p><a href="https://www.dixunblog.cn/1742.html">Linux 命令大全：新手入门必看的 80+ 实用命令详解</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dixunblog.cn/1742.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>腾讯云轻量应用服务器无忧实例：3.5 折长期续费真香指南（2026 最新）</title>
		<link>https://www.dixunblog.cn/1504.html</link>
					<comments>https://www.dixunblog.cn/1504.html#respond</comments>
		
		<dc:creator><![CDATA[小编]]></dc:creator>
		<pubDate>Thu, 02 Apr 2026 04:55:41 +0000</pubDate>
				<category><![CDATA[网络资讯]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://www.dixunblog.cn/1504.html</guid>

					<description><![CDATA[<p>腾讯云轻量应用服务器无忧实例支持 3.5 折长期续费，性价比很高。先续费再升级，188 元/年可续 1 次，升级后 273 元/年可多次续费！</p>
<p><a href="https://www.dixunblog.cn/1504.html">腾讯云轻量应用服务器无忧实例：3.5 折长期续费真香指南（2026 最新）</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>腾讯云轻量应用服务器的无忧实例一直以&#8221;续费同价&#8221;深受欢迎，此前还免费升级核心，不少没赶上的用户一直想找替代方案。近期上线一批别样无忧实例，支持 3.5 折长期续费，性价比很高。</p>
<h2>⚠️ 重要说明</h2>
<p><strong>无忧实例没有开售！！</strong>只是存量用户免费升级，升级时间需要几分钟重启。</p>
<h2>配置与价格（升级后）</h2>
<ul>
<li><strong>CPU</strong>：4 核心（免费升级）</li>
<li><strong>内存</strong>：4GB</li>
<li><strong>硬盘</strong>：60G SSD</li>
<li><strong>带宽</strong>：5Mbps，出口流量 500G</li>
<li><strong>地域</strong>：北京、上海、广州、成都</li>
<li><strong>价格</strong>：首年 188 元，升级后 273 元/年（3.5 折，可多次续费）</li>
</ul>
<div style="background: #fff3cd; padding: 15px; border-left: 4px solid #ffc107; margin: 20px 0;">
<p><strong>⚠️ 重要提醒</strong>：续费 188 元/年需要在<strong>升级前</strong>完成，升级后会失去 188/年的同价续费权益！</p>
</div>
<h2><img decoding="async" class="alignnone size-full wp-image-1499" src="http://cdn.hyclive.cn/dixunblog/2026/04/fdc70da0677641baecbc5bdb04d35d79.png" alt="" width="755" height="373" /></h2>
<h2>🎁 188 元续费方案（强烈推荐）</h2>
<h3>方案一：先买后升（适合新用户）</h3>
<ol>
<li><strong>第一步</strong>：以 188 元的价格购买第一年（2 核 4G 5M 基础款）</li>
<li><strong>第二步</strong>：之后刷新该页面，进行续费</li>
<li><strong>第三步</strong>：免费升配到 4C4G（控制台 → 轻量云服务器 → 免费升配）</li>
</ol>
<h3>方案二：先续后升（最划算）</h3>
<ol>
<li><strong>第一步</strong>：先续费，188 元/年可续 1 次</li>
<li><strong>第二步</strong>：续费成功后，在同页面再次续费</li>
<li><strong>第三步</strong>：免费升配到 4C4G</li>
</ol>
<p><strong>最终价格</strong>：188×2=376 元，获得 2 年的 2 核 4G 5M 轻量服务器，升级后变为 4 核 4G 5M！</p>
<div style="background: #f8d7da; padding: 15px; border-left: 4px solid #dc3545; margin: 20px 0;">
<p><strong>⚠️ 关键提醒</strong>：续费前<strong>不能先升级到 4 核心</strong>，否则会失去同价续费的权益！一定要先续费，再升级！</p>
</div>
<h2>📋 详细操作步骤</h2>
<h3>步骤 1：进入活动页面</h3>
<p>活动链接：<a href="https://curl.qcloud.com/E09oDLMT" target="_blank" rel="nofollow noopener">https://curl.qcloud.com/E09oDLMT</a></p>
<h3>步骤 2：购买基础款</h3>
<p>在【同价续费】专区购买：2C4G5M 188 元/年</p>
<h3>步骤 3：续费操作（升级前完成）</h3>
<ol>
<li>购买成功后，刷新页面</li>
<li>找到【续费】选项</li>
<li>选择续费 1 年（188 元）</li>
<li>完成支付</li>
</ol>
<h3>步骤 4：免费升配</h3>
<ol>
<li>登录腾讯云控制台</li>
<li>进入&#8221;轻量应用服务器&#8221;</li>
<li>找到你购买的 2 核 4G 服务器</li>
<li>点击【免费升配】选项</li>
<li>选择升级为 4C4G5M</li>
<li>确认升级（需要几分钟重启）</li>
</ol>
<h2><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1500" src="http://cdn.hyclive.cn/dixunblog/2026/04/a6621441975994e631f8762f4b1b39ff.png" alt="" width="790" height="348" /></h2>
<h3>步骤 5：享受 3.5 折续费</h3>
<p>升配后自动出现【专享续费 3.5 折】标签，如果没有就稍等一下刷新。</p>
<p><strong>3.5 折价格计算</strong>：780 元 × 0.35 = 273 元/年</p>
<p>按 273 元/年可<strong>多次续费</strong>，适合长期持有！</p>
<div style="background: #e7f3ff; padding: 15px; border-left: 4px solid #2196f3; margin: 20px 0;">
<p><strong>💡 重要提示</strong>：续费操作在活动页【同价续费】专区完成，<strong>不要直接在控制台续费</strong>，否则无法享受优惠价格。</p>
</div>
<h2><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1501" src="http://cdn.hyclive.cn/dixunblog/2026/04/f6e1ac4f2c71ce33b448130e48372b1b.png" alt="" width="359" height="156" /></h2>
<h2><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1502" src="http://cdn.hyclive.cn/dixunblog/2026/04/2c7d4bb189b37acf044e9afd1785f963.png" alt="" width="755" height="486" /></h2>
<h2>💰 价格对比</h2>
<h3>常规无忧实例</h3>
<table class="wp-block-table">
<thead>
<tr>
<th>配置</th>
<th>价格</th>
<th>特点</th>
</tr>
</thead>
<tbody>
<tr>
<td>2 核 2G 5M</td>
<td>180 元/年</td>
<td>长期同价</td>
</tr>
<tr>
<td>2 核 4G 8M</td>
<td>672 元/年</td>
<td>长期同价</td>
</tr>
</tbody>
</table>
<h3>本次别样无忧实例</h3>
<table class="wp-block-table">
<thead>
<tr>
<th>配置</th>
<th>首年</th>
<th>续费</th>
<th>总计（2 年）</th>
</tr>
</thead>
<tbody>
<tr>
<td>4 核 4G 5M</td>
<td>188 元</td>
<td>273 元/年</td>
<td>461 元</td>
</tr>
</tbody>
</table>
<p><strong>对比结论</strong>：4 核 4G 5M 的配置，首年 188 元 + 续费 273 元/年，高配低价，适合长期使用。</p>
<h2>配置对比表</h2>
<table class="wp-block-table">
<thead>
<tr>
<th>配置</th>
<th>原价</th>
<th>活动价</th>
<th>节省</th>
</tr>
</thead>
<tbody>
<tr>
<td>2C4G5M（1 年）</td>
<td>540 元</td>
<td>188 元</td>
<td>352 元</td>
</tr>
<tr>
<td>2C4G5M（2 年）</td>
<td>1080 元</td>
<td>376 元</td>
<td>704 元</td>
</tr>
<tr>
<td>4C4G5M（升级后）</td>
<td>780 元/年</td>
<td>273 元/年</td>
<td>507 元/年</td>
</tr>
</tbody>
</table>
<p>相当于<strong>3.5 折</strong>优惠，非常划算！</p>
<h2>👥 适合人群</h2>
<ul>
<li>需要长期稳定服务器的个人开发者</li>
<li>搭建博客、小型网站的用户</li>
<li>对性价比要求较高的学生群体</li>
<li>需要备用服务器的技术人员</li>
<li>学习 Linux、Docker 等技术的初学者</li>
<li><strong>已有无忧实例想升级的用户</strong></li>
</ul>
<h2>⚠️ 注意事项</h2>
<ol>
<li><strong>升级顺序</strong>：必须先续费，再升级！顺序不能颠倒！</li>
<li><strong>续费渠道</strong>：续费操作在活动页【同价续费】专区完成，不要直接在控制台续费</li>
<li><strong>升级时间</strong>：升级需要几分钟重启，建议低峰期操作</li>
<li><strong>地域选择</strong>：根据目标用户群体选择合适地域（北京/上海/广州/成都）</li>
<li><strong>流量限制</strong>：500G 出口流量对于大多数应用足够</li>
<li><strong>续费次数</strong>：188 元/年的同价续费只能续 1 次</li>
<li><strong>升级后价格</strong>：升级到 4C4G 后，后续续费价格为 273 元/年（3.5 折，可多次续费）</li>
<li><strong>标签显示</strong>：升配后自动出现【专享续费 3.5 折】标签，如果没有就稍等一下刷新</li>
</ol>
<h2>🔧 使用建议</h2>
<h3>推荐用途</h3>
<ul>
<li>个人博客（WordPress、Typecho 等）</li>
<li>小型网站展示</li>
<li>学习 Linux 命令和操作</li>
<li>部署 Docker 容器</li>
<li>搭建私人云盘</li>
<li>运行 Python/Node.js 应用</li>
<li>搭建游戏私服（Minecraft 等）</li>
</ul>
<h3>不推荐用途</h3>
<ul>
<li>高流量网站（500G 流量可能不够）</li>
<li>视频流媒体服务</li>
<li>大型数据库应用</li>
<li>需要高 IOPS 的场景</li>
</ul>
<h2>📊 性能参考</h2>
<p>4C4G5M 配置的性能参考：</p>
<ul>
<li><strong>CPU</strong>：4 核心，适合中等负载应用</li>
<li><strong>内存</strong>：4GB，可同时运行多个服务</li>
<li><strong>硬盘</strong>：60G SSD，读写速度快</li>
<li><strong>带宽</strong>：5Mbps，下载速度约 625KB/s</li>
<li><strong>流量</strong>：500G/月，日均约 16.7G</li>
</ul>
<h2>💬 简评</h2>
<p>个人觉得 4 核 4G 5M 的轻量云服务器，能以 273 元/年价格进行多次续费还是不错的。</p>
<p>当然肯定是没有新客首单、首年优惠的价格力度，<strong>适合需要把服务器进行多年续费的场景</strong>。</p>
<p>如果你之前没持有无忧实例，这次也算&#8221;别样&#8221;的上车机会 🙂</p>
<h2>🎯 总结</h2>
<p>腾讯云轻量应用服务器无忧实例的 3.5 折长期续费活动性价比很高，适合需要长期稳定服务器的用户。</p>
<p><strong>最优方案</strong>：</p>
<ol>
<li>先花 188 元购买第一年（2C4G5M）</li>
<li>续费 1 年（188 元）→ 总计 376 元获得 2 年</li>
<li>免费升级到 4C4G5M</li>
<li>之后以 273 元/年（3.5 折）多次续费</li>
</ol>
<p>存量用户可以免费升级核心，新用户也可以通过同价续费活动享受优惠。注意<strong>先续费、再升级</strong>的顺序，不要失去优惠权益！</p>
<hr />
<p><em>关注我们获取更多云服务器优惠和技术教程！</em></p>
<p><a href="https://www.dixunblog.cn/1504.html">腾讯云轻量应用服务器无忧实例：3.5 折长期续费真香指南（2026 最新）</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dixunblog.cn/1504.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Linux系统运维必备：20个最实用的命令行技巧</title>
		<link>https://www.dixunblog.cn/1167.html</link>
					<comments>https://www.dixunblog.cn/1167.html#respond</comments>
		
		<dc:creator><![CDATA[老大]]></dc:creator>
		<pubDate>Sun, 15 Feb 2026 06:39:39 +0000</pubDate>
				<category><![CDATA[技术教程]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux教程]]></category>
		<guid isPermaLink="false">https://www.dixunblog.cn/?p=1167</guid>

					<description><![CDATA[<p><a href="https://www.dixunblog.cn/1167.html">Linux系统运维必备：20个最实用的命令行技巧</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p<strong><b>摘要：</b></strong> 作为Linux系统管理员或开发者，掌握高效的命令行操作技巧能让你的工作效率提升数倍。本文整理了20个最实用的Linux命令行技巧，从基础到进阶，助你成为真正的Linux高手！</p>
<p>&nbsp;</p>
<h2><strong><b>引言</b></strong></h2>
<p>在Linux的世界里，命令行就是你的武器。熟练掌握命令行不仅能让你在工作中游刃有余，还能在关键时刻快速解决问题。本文将分享20个经过实战验证的命令行技巧，涵盖了文件操作、系统监控、网络调试、Shell脚本等多个方面。</p>
<p>&nbsp;</p>
<h2><strong><b>一、文件操作高级技巧</b></strong></h2>
<h3><strong><b>1. rsync同步大文件时显示进度条</b></strong></h3>
<p>传统的cp命令在复制大文件时无法显示进度，而rsync可以完美解决这个问题：</p>
<p>&nbsp;<br />
<img src="https://cdn.hyclive.cn/dixunblog/2026/02/aiimg_69916a52aa8ae6.59571171.webp" class="attachment-full size-full" alt="Linux系统运维必备：20个最实用的命令行技巧" decoding="async" loading="lazy" /></p>
<pre>         
    # 基本用法：显示进度条    
    rsync -av --progress source_file destination_file    
         
    # 同步整个目录并显示详细进度    
    rsync -avz --progress /source/directory/ /destination/directory/    
         
    # 参数说明：    
    # -a: 归档模式，保持文件属性    
    # -v: 详细输出    
    # -z: 压缩传输（适用于网络传输）    
    # --progress: 显示进度条    
</pre>
<p>&nbsp;</p>
<h3><strong><b>2. find命令结合xargs批量处理文件</b></strong></h3>
<p>find命令配合xargs可以高效地批量处理文件：</p>
<p>&nbsp;</p>
<pre>         
    # 批量删除30天前的日志文件    
    find /var/log -name "*.log" -mtime +30 -print0 | xargs -0 rm -f    
         
    # 批量修改文件权限    
    find /home/user/documents -type f -name "*.sh" -print0 | xargs -0 chmod +x    
         
    # 批量压缩图片文件    
    find /images -name "*.jpg" -print0 | xargs -0 -I {} convert {} -quality 80 {}    
         
    # 使用-print0和-0参数可以正确处理包含空格的文件名    
</pre>
<p>&nbsp;</p>
<h3><strong><b>3. tar压缩时排除特定目录</b></strong></h3>
<p>在打包时排除不需要的目录可以节省大量空间：</p>
<p>&nbsp;</p>
<pre>         
    # 排除单个目录    
    tar --exclude='./node_modules' -czf backup.tar.gz .    
         
    # 排除多个目录    
    tar --exclude='./node_modules' --exclude='./.git' --exclude='./logs' -czf backup.tar.gz .    
         
    # 使用排除文件列表    
    echo "node_modules" &gt; exclude.txt    
    echo ".git" &gt;&gt; exclude.txt    
    echo "logs" &gt;&gt; exclude.txt    
    tar --exclude-from=exclude.txt -czf backup.tar.gz .    
</pre>
<p>&nbsp;</p>
<h2><strong><b>二、系统监控与性能分析</b></strong></h2>
<h3><strong><b>4. htop替代传统top命令</b></strong></h3>
<p>htop提供了比top更友好的界面和更多功能：</p>
<p>&nbsp;</p>
<pre>         
    # 安装htop（Ubuntu/Debian）    
    sudo apt install htop    
         
    # 安装htop（CentOS/RHEL）    
    sudo yum install htop    
         
    # 主要功能：    
    # - 颜色编码的进程列表    
    # - 树状视图显示进程关系    
    # - 鼠标支持（在终端中）    
    # - 可排序的列    
    # - 搜索功能    
</pre>
<p>&nbsp;</p>
<h3><strong><b>5. iotop监控磁盘I/O性能</b></strong></h3>
<p>当系统变慢时，可能是磁盘I/O瓶颈：</p>
<p>&nbsp;</p>
<pre>         
    # 安装iotop    
    sudo apt install iotop  # Ubuntu/Debian    
    sudo yum install iotop  # CentOS/RHEL    
         
    # 实时监控磁盘I/O    
    sudo iotop    
         
    # 只显示有I/O活动的进程    
    sudo iotop -o    
         
    # 按I/O速率排序    
    sudo iotop -o -b -n 1    
</pre>
<p>&nbsp;</p>
<h3><strong><b>6. netstat和ss网络连接分析对比</b></strong></h3>
<p>现代Linux系统推荐使用ss替代netstat：</p>
<p>&nbsp;</p>
<pre>         
    # 查看所有监听端口（netstat）    
    netstat -tuln    
         
    # 查看所有监听端口（ss）- 更快更高效    
    ss -tuln    
         
    # 查看进程对应的连接    
    ss -tulnp    
         
    # 查看TCP连接状态统计    
    ss -s    
         
    # 查看特定端口的连接    
    ss -tnlp | grep :80    
</pre>
<p>&nbsp;</p>
<h2><strong><b>三、Shell脚本优化</b></strong></h2>
<h3><strong><b>7. 错误处理的最佳实践</b></strong></h3>
<p>健壮的Shell脚本必须包含完善的错误处理：</p>
<p>&nbsp;</p>
<pre>         
    #!/bin/bash    
         
    # 设置严格模式    
    set -euo pipefail    
         
    # 自定义错误处理函数    
    error_handler() {    
        local line_number=$1    
        local exit_code=$2    
        echo "Error on line $line_number with exit code $exit_code"    
        exit $exit_code    
    }    
         
    # 捕获错误    
    trap 'error_handler ${LINENO} $?' ERR    
         
    # 安全的变量引用    
    safe_variable="${MY_VAR:-default_value}"    
         
    # 检查命令是否存在    
    command_exists() {    
        command -v "$1" &gt;/dev/null 2&gt;&amp;1    
    }    
         
    if ! command_exists docker; then    
        echo "Docker is not installed"    
        exit 1    
    fi    
</pre>
<p>&nbsp;</p>
<h3><strong><b>8. 函数库的创建和调用</b></strong></h3>
<p>将常用功能封装成函数库：</p>
<p>&nbsp;</p>
<pre>         
    # 创建functions.sh    
    #!/bin/bash    
         
    # 日志函数    
    log_info() {    
        echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] $1"    
    }    
         
    log_error() {    
        echo "$(date '+%Y-%m-%d %H:%M:%S') [ERROR] $1" &gt;&amp;2    
    }    
         
    # 文件操作函数    
    backup_file() {    
        local file="$1"    
        local backup="${file}.bak.$(date +%s)"    
        cp "$file" "$backup"    
        log_info "Backup created: $backup"    
    }    
         
    # 在主脚本中调用    
    # source ./functions.sh    
    # log_info "Starting backup process"    
    # backup_file "/etc/nginx/nginx.conf"    
</pre>
<p>&nbsp;</p>
<h3><strong><b>9. 并行处理提升脚本执行速度</b></strong></h3>
<p>利用并行处理加速耗时任务：</p>
<p>&nbsp;</p>
<pre>         
    #!/bin/bash    
         
    # 串行处理（慢）    
    for host in server1 server2 server3 server4; do    
        ssh "$host" "uptime"    
    done    
         
    # 并行处理（快）    
    run_parallel() {    
        local host="$1"    
        ssh "$host" "uptime"    
    }    
         
    for host in server1 server2 server3 server4; do    
        run_parallel "$host" &amp;    
    done    
    wait  # 等待所有后台任务完成    
         
    # 使用GNU Parallel（更高级）    
    # parallel ssh {} uptime ::: server1 server2 server3 server4    
</pre>
<p>&nbsp;</p>
<h2><strong><b>四、网络调试技巧</b></strong></h2>
<h3><strong><b>10. tcpdump抓包分析实战</b></strong></h3>
<p>tcpdump是网络故障排查的利器：</p>
<p>&nbsp;</p>
<pre>         
    # 基本抓包    
    sudo tcpdump -i eth0    
         
    # 抓取特定主机的流量    
    sudo tcpdump host 192.168.1.100    
         
    # 抓取特定端口的流量    
    sudo tcpdump port 80    
         
    # 抓取HTTP流量    
    sudo tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&amp;0xf)&lt;&lt;2)) - ((tcp[12]&amp;0xf0)&gt;&gt;2)) != 0)'    
         
    # 保存抓包到文件    
    sudo tcpdump -w capture.pcap    
         
    # 从文件读取抓包数据    
    tcpdump -r capture.pcap    
</pre>
<p>&nbsp;</p>
<h3><strong><b>11. mtr结合ping和traceroute</b></strong></h3>
<p>mtr结合了ping和traceroute的功能：</p>
<p>&nbsp;</p>
<pre>         
    # 安装mtr    
    sudo apt install mtr  # Ubuntu/Debian    
    sudo yum install mtr  # CentOS/RHEL    
         
    # 基本使用    
    mtr google.com    
         
    # 报告模式（适合脚本使用）    
    mtr --report google.com    
         
    # 指定协议（ICMP/UDP/TCP）    
    mtr --tcp --port 443 google.com    
         
    # 限制跳数    
    mtr -m 10 google.com    
</pre>
<p>&nbsp;</p>
<h3><strong><b>12. curl和wget的高级用法</b></strong></h3>
<h4><strong><b>curl高级用法：</b></strong></h4>
<pre>         
    # 测试API响应时间    
    curl -w "@curl-format.txt" -o /dev/null -s https://api.example.com    
         
    # curl-format.txt内容：    
    # time_namelookup:  %{time_namelookup}n    
    # time_connect:       %{time_connect}n    
    # time_appconnect:    %{time_appconnect}n    
    # time_pretransfer:   %{time_pretransfer}n    
    # time_redirect:      %{time_redirect}n    
    # time_starttransfer: %{time_starttransfer}n    
    # ----------n    
    # time_total:         %{time_total}n    
         
    # 上传文件    
    curl -F "file=@/path/to/file.jpg" https://upload.example.com    
         
    # 处理Cookie    
    curl -c cookies.txt -b cookies.txt https://example.com    
</pre>
<p>&nbsp;</p>
<h4><strong><b>wget高级用法：</b></strong></h4>
<pre>         
    # 断点续传    
    wget -c http://example.com/largefile.zip    
         
    # 递归下载网站    
    wget --recursive --no-parent --page-requisites --html-extension --convert-links http://example.com    
         
    # 限制下载速度    
    wget --limit-rate=100k http://example.com/file.zip    
         
    # 批量下载    
    wget -i urls.txt    
</pre>
<p>&nbsp;</p>
<h2><strong><b>五、系统管理技巧</b></strong></h2>
<h3><strong><b>13. journalctl日志管理</b></strong></h3>
<p>现代Linux系统使用systemd，日志管理变得简单：</p>
<p>&nbsp;</p>
<pre>         
    # 查看系统日志    
    sudo journalctl    
         
    # 查看特定服务的日志    
    sudo journalctl -u nginx    
         
    # 实时跟踪日志    
    sudo journalctl -u nginx -f    
         
    # 查看最近的日志    
    sudo journalctl --since "1 hour ago"    
         
    # 导出日志到文件    
    sudo journalctl -u nginx --since "2026-02-14" &gt; nginx.log    
</pre>
<p>&nbsp;</p>
<h3><strong><b>14. systemd服务管理</b></strong></h3>
<p>创建和管理自定义systemd服务：</p>
<p>&nbsp;</p>
<pre>         
    # /etc/systemd/system/myapp.service    
    [Unit]    
    Description=My Application    
    After=network.target    
         
    [Service]    
    Type=simple    
    User=myuser    
    WorkingDirectory=/opt/myapp    
    ExecStart=/opt/myapp/app.sh    
    Restart=always    
    RestartSec=10    
         
    [Install]    
    WantedBy=multi-user.target    
         




         
    # 重载systemd配置    
    sudo systemctl daemon-reload    
         
    # 启动服务    
    sudo systemctl start myapp    
         
    # 设置开机自启    
    sudo systemctl enable myapp    
         
    # 查看服务状态    
    sudo systemctl status myapp    
</pre>
<p>&nbsp;</p>
<h3><strong><b>15. 磁盘空间分析</b></strong></h3>
<p>快速找出占用空间大的文件和目录：</p>
<p>&nbsp;</p>
<pre>         
    # 查看磁盘使用情况    
    df -h    
         
    # 查看目录大小    
    du -sh /var/log/*    
         
    # 找出最大的10个文件    
    find / -type f -exec du -h {} + 2&gt;/dev/null | sort -hr | head -10    
         
    # 使用ncdu进行交互式分析    
    sudo apt install ncdu    
    ncdu /    
</pre>
<p>&nbsp;</p>
<h2><strong><b>六、安全相关技巧</b></strong></h2>
<h3><strong><b>16. SSH密钥管理</b></strong></h3>
<p>安全的SSH密钥管理实践：</p>
<p>&nbsp;</p>
<pre>         
    # 生成新的SSH密钥对    
    ssh-keygen -t ed25519 -C "your_email@example.com"    
         
    # 添加密钥到ssh-agent    
    eval $(ssh-agent -s)    
    ssh-add ~/.ssh/id_ed25519    
         
    # 复制公钥到远程服务器    
    ssh-copy-id user@remote-server    
         
    # SSH配置文件优化 (~/.ssh/config)    
    Host myserver    
        HostName 192.168.1.100    
        User admin    
        IdentityFile ~/.ssh/id_ed25519    
        Port 2222    
        ServerAliveInterval 60    
</pre>
<p>&nbsp;</p>
<h3><strong><b>17. 文件完整性检查</b></strong></h3>
<p>监控重要文件的完整性：</p>
<p>&nbsp;</p>
<pre>         
    # 使用sha256sum生成校验和    
    sha256sum /etc/passwd &gt; passwd.checksum    
         
    # 验证文件完整性    
    sha256sum -c passwd.checksum    
         
    # 使用AIDE进行高级完整性监控    
    sudo apt install aide    
    sudo aideinit    
    sudo aide --check    
</pre>
<p>&nbsp;</p>
<h3><strong><b>18. 用户和权限管理</b></strong></h3>
<p>批量用户管理和权限设置：</p>
<p>&nbsp;</p>
<pre>         
    # 批量创建用户    
    for user in alice bob charlie; do    
        sudo useradd -m -s /bin/bash "$user"    
        echo "$user:temp_password" | sudo chpasswd    
    done    
         
    # 批量修改文件所有权    
    sudo chown -R www-data:www-data /var/www/html    
         
    # 查找具有SUID权限的文件    
    find / -perm -4000 -type f 2&gt;/dev/null    
         
    # 查找世界可写的文件    
    find / -perm -o+w -type f 2&gt;/dev/null    
</pre>
<p>&nbsp;</p>
<h2><strong><b>七、自动化和调度</b></strong></h2>
<h3><strong><b>19. crontab高级用法</b></strong></h3>
<p>编写健壮的cron任务：</p>
<p>&nbsp;</p>
<pre>         
    # 编辑crontab    
    crontab -e    
         
    # 示例：每天凌晨2点备份数据库    
    0 2 * * * /usr/local/bin/backup-db.sh &gt;&gt; /var/log/backup.log 2&gt;&amp;1    
         
    # 示例：每5分钟检查服务状态    
    */5 * * * * /usr/local/bin/check-service.sh    
         
    # 环境变量设置    
    MAILTO=admin@example.com    
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin    
         
    # 避免邮件通知    
    */5 * * * * /usr/local/bin/script.sh &gt;/dev/null 2&gt;&amp;1    
</pre>
<p>&nbsp;</p>
<h3><strong><b>20. at命令一次性任务调度</b></strong></h3>
<p>使用at命令调度一次性任务：</p>
<p>&nbsp;</p>
<pre>         
    # 安装at（如果未安装）    
    sudo apt install at  # Ubuntu/Debian    
    sudo yum install at  # CentOS/RHEL    
         
    # 启动at服务    
    sudo systemctl enable --now atd    
         
    # 调度任务    
    echo "systemctl restart nginx" | at 2:00 AM tomorrow    
         
    # 查看待执行任务    
    atq    
         
    # 删除任务    
    atrm &lt;job_number&gt;    
</pre>
<p>&nbsp;</p>
<h2><strong><b>结语</b></strong></h2>
<p>这20个命令行技巧涵盖了Linux系统运维的各个方面。掌握这些技巧不仅能提高你的工作效率，还能帮助你在紧急情况下快速定位和解决问题。记住，真正的Linux高手不是记住所有命令的人，而是知道如何快速找到解决方案的人。</p>
<p><a href="https://www.dixunblog.cn/1167.html">Linux系统运维必备：20个最实用的命令行技巧</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dixunblog.cn/1167.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
