<?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-%E6%95%99%E7%A8%8B/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>Linux 常用命令速查手册 &#8211; 进阶篇</title>
		<link>https://www.dixunblog.cn/1482.html</link>
					<comments>https://www.dixunblog.cn/1482.html#respond</comments>
		
		<dc:creator><![CDATA[小编]]></dc:creator>
		<pubDate>Wed, 01 Apr 2026 02:06:08 +0000</pubDate>
				<category><![CDATA[技术教程]]></category>
		<category><![CDATA[Linux 教程]]></category>
		<category><![CDATA[代码教程]]></category>
		<category><![CDATA[系统教程]]></category>
		<guid isPermaLink="false">https://www.dixunblog.cn/1482.html</guid>

					<description><![CDATA[<p>欢迎来到今天的 Linux 命令速查手册！这是每个 Linux 用户都应该收藏的参考指南。</p>
<p>一、文件和目录操作</p>
<p>1.1 目录导航</p>
<p><code class="language-bash"># 查看当前目录<br />
pwd</p>
<p># 切换目录<br />
cd /path/to/dir<br />
cd ..          # 返回上级<br />
cd ~ ...</p>
<p><a href="https://www.dixunblog.cn/1482.html">Linux 常用命令速查手册 &#8211; 进阶篇</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>欢迎来到今天的 Linux 命令速查手册！这是每个 Linux 用户都应该收藏的参考指南。</p>
<h2>一、文件和目录操作</h2>
<h3>1.1 目录导航</h3>
<pre><code class="language-bash"># 查看当前目录
pwd

# 切换目录
cd /path/to/dir
cd ..          # 返回上级
cd ~           # 回到家目录
cd -           # 返回上一个目录

# 列出目录内容
ls             # 简单列表
ls -l          # 详细信息
ls -la         # 包含隐藏文件
ls -lh         # 人类可读的文件大小
ls -lt         # 按时间排序</code></pre>
<h3>1.2 文件操作</h3>
<pre><code class="language-bash"># 创建文件
touch filename.txt
echo "内容" &gt; filename.txt

# 创建目录
mkdir dirname
mkdir -p parent/child/grandchild  # 递归创建

# 复制文件/目录
cp file1 file2
cp -r dir1 dir2  # 复制目录

# 移动/重命名
mv oldname newname
mv file /path/to/dir/

# 删除
rm file
rm -r dirname    # 删除目录（危险！）
rm -rf dirname   # 强制删除（非常危险！）</code></pre>
<h3>1.3 查看文件内容</h3>
<pre><code class="language-bash"># 查看整个文件
cat filename

# 分页查看（适合大文件）
less filename
# 操作：空格翻页。b 上一页。q 退出。/搜索

# 查看前/后 N 行
head -n 20 filename
tail -n 20 filename

# 实时查看日志
tail -f /var/log/syslog</code></pre>
<h2>二、文件权限管理</h2>
<h3>2.1 查看权限</h3>
<pre><code class="language-bash">ls -l
# 输出：-rwxr-xr-x 1 user group 4096 Jan 1 12:00 filename
#       ^^^^ ^^^^ ^^^
#       类型  用户  组   其他</code></pre>
<h3>2.2 修改权限</h3>
<pre><code class="language-bash"># 符号模式
chmod +x script.sh        # 添加执行权限
chmod u+x file            # 给所有者添加执行权限
chmod go-w file           # 移除组和其他的写权限

# 数字模式
chmod 755 script.sh       # rwxr-xr-x
chmod 644 file.txt        # rw-r--r--
chmod 600 secret.key      # rw-------

# 修改所有者
chown user:group filename
chown -R user:group dirname  # 递归修改</code></pre>
<h2>三、进程管理</h2>
<h3>3.1 查看进程</h3>
<pre><code class="language-bash"># 查看当前终端进程
ps

# 查看所有进程
ps aux
# A: 所有用户。u: 用户格式。x: 包含无终端进程

# 动态查看（类似任务管理器）
top
htop  # 更友好的界面（需安装）

# 查看特定进程
ps aux | grep nginx
pgrep nginx</code></pre>
<h3>3.2 管理进程</h3>
<pre><code class="language-bash"># 终止进程
kill PID
kill -9 PID      # 强制终止
killall nginx    # 按进程名终止
pkill nginx      # 按模式终止

# 后台运行
command &amp;        # 后台运行
nohup command &amp;  # 退出终端后继续运行</code></pre>
<h2>四、网络命令</h2>
<h3>4.1 网络诊断</h3>
<pre><code class="language-bash"># 检查连接
ping google.com
ping -c 4 google.com  # 只 ping 4 次

# 追踪路由
traceroute google.com
tracepath google.com  # 无需 root

# 查看端口占用
netstat -tulpn
ss -tulpn  # 更现代的版本

# DNS 查询
nslookup google.com
dig google.com</code></pre>
<h3>4.2 网络配置</h3>
<pre><code class="language-bash"># 查看 IP 地址
ip addr
ifconfig  # 旧命令（需安装 net-tools）

# 查看路由
ip route
route -n

# 查看 DNS
cat /etc/resolv.conf

# 测试端口连接
telnet host port
nc -zv host port  # netcat</code></pre>
<h2>五、磁盘管理</h2>
<h3>5.1 查看磁盘空间</h3>
<pre><code class="language-bash"># 查看文件系统使用情况
df -h
# -h: 人类可读格式（GB/MB）

# 查看目录大小
du -sh /path/to/dir
du -ah --max-depth=1 /path  # 查看一级子目录</code></pre>
<h3>5.2 查找大文件</h3>
<pre><code class="language-bash"># 查找大于 100M 的文件
find / -type f -size +100M

# 按大小排序查找最大的 10 个文件
find / -type f -exec du -h {} + | sort -rh | head -10</code></pre>
<h2>六、文本处理</h2>
<h3>6.1 搜索内容</h3>
<pre><code class="language-bash"># 在文件中搜索
grep "pattern" filename
grep -r "pattern" /path  # 递归搜索
grep -i "pattern"        # 忽略大小写
grep -v "pattern"        # 反向匹配
grep -n "pattern"        # 显示行号</code></pre>
<h3>6.2 文本编辑</h3>
<pre><code class="language-bash"># sed 替换（流编辑器）
sed 's/old/new/g' file         # 替换所有
sed -i 's/old/new/g' file      # 直接修改文件
sed -i '3d' file               # 删除第 3 行

# awk 处理（强大的文本分析）
awk '{print $1}' file          # 打印第一列
awk -F: '{print $1}' /etc/passwd  # 指定分隔符</code></pre>
<h3>6.3 重定向和管道</h3>
<pre><code class="language-bash"># 重定向
command &gt; file      # 覆盖输出
command &gt;&gt; file     # 追加输出
command 2&gt;&amp;1        # 重定向错误输出

# 管道（将前一个命令的输出作为后一个的输入）
ps aux | grep nginx
cat file.txt | wc -l
ls -la | grep "^d"</code></pre>
<h2>七、压缩和解压</h2>
<pre><code class="language-bash"># tar 归档
tar -cvf archive.tar file1 file2      # 创建
tar -xvf archive.tar                   # 解压
tar -czvf archive.tar.gz dir/         # gzip 压缩
tar -xzvf archive.tar.gz              # gzip 解压
tar -cjvf archive.tar.bz2 dir/        # bzip2 压缩
tar -xjvf archive.tar.bz2             # bzip2 解压

# zip/unzip
zip -r archive.zip dir/
unzip archive.zip

# gzip（只能压缩单个文件）
gzip file
gunzip file.gz</code></pre>
<h2>八、系统信息</h2>
<pre><code class="language-bash"># 系统信息
uname -a              # 内核信息
cat /etc/os-release   # 发行版信息
hostname              # 主机名

# CPU 信息
lscpu
cat /proc/cpuinfo

# 内存信息
free -h
cat /proc/meminfo

# 运行时间
uptime</code></pre>
<h2>九、软件包管理</h2>
<h3>9.1 Debian/Ubuntu</h3>
<pre><code class="language-bash"># apt 包管理
sudo apt update
sudo apt upgrade
sudo apt install package_name
sudo apt remove package_name
sudo apt search keyword
sudo apt show package_name</code></pre>
<h3>9.2 RHEL/CentOS</h3>
<pre><code class="language-bash"># yum/dnf 包管理
sudo yum update
sudo yum install package_name
sudo yum remove package_name</code></pre>
<h2>十、实用技巧</h2>
<h3>10.1 命令历史</h3>
<pre><code class="language-bash">history           # 查看历史命令
!123             # 执行第 123 条历史命令
!!               # 执行上一条命令
!$               # 上一条命令的最后一个参数
Ctrl + R         # 搜索历史命令</code></pre>
<h3>10.2 命令别名</h3>
<pre><code class="language-bash"># 临时别名
alias ll='ls -la'
alias gs='git status'

# 永久别名（添加到 ~/.bashrc）
echo "alias ll='ls -la'" &gt;&gt; ~/.bashrc
source ~/.bashrc</code></pre>
<h2>十一、总结</h2>
<p>Linux 命令是系统管理的核心技能。建议：</p>
<ol>
<li>每天练习 5-10 个命令</li>
<li>使用 <code>man command</code> 查看帮助</li>
<li>善用 Tab 键自动补全</li>
<li>将常用命令保存为脚本</li>
</ol>
<hr>
<p><em>关注我们获取更多 Linux 教程和系统管理技巧！</em></p>
<p><a href="https://www.dixunblog.cn/1482.html">Linux 常用命令速查手册 &#8211; 进阶篇</a>最先出现在<a href="https://www.dixunblog.cn">帝讯博客</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dixunblog.cn/1482.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
