图书介绍

深入解析Ubuntu操作系统pdf电子书版本下载

深入解析Ubuntu操作系统
  • (美)赫达逊,(美)赫达逊著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302175513
  • 出版时间:2008
  • 标注页数:737页
  • 文件大小:139MB
  • 文件页数:761页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

深入解析Ubuntu操作系统PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第Ⅰ部分 安装与配置 3

第1章 Ubuntu概述 3

1.1什么是Ubuntu 5

Ubuntu内部 5

Ubuntu的安装特点 7

Ubuntu文件系统的特点 8

1.2 Ubuntu的商业应用 9

1.3 Ubuntu的个人应用 10

1.4 64位Ubuntu 11

1.5基于PPC平台的Ubuntu 11

1.6基于双核处理器的Ubuntu 11

1.7充分利用Ubuntu与Linux的文档 11

1.8 Ubuntu开发者与文档 13

1.9阅读参考 13

第2章 安装Ubuntu前的准备 15

2.1计划Ubuntu的部署方案 16

商业部署需要考虑的因素 16

系统部署需要考虑的因素 17

用户因素 18

预部署计划的核对表 18

安装计划 20

2.2硬件需求 20

安装Ubuntu的最低硬件配置 21

在遗留的设备上安装Ubuntu 21

为Ubuntu安装分配硬盘空间 22

检查硬件的兼容性 22

为潜在的硬件问题做准备 23

准备并使用硬件列表 26

2.3安装过程的准备 30

2.4安装前与安装过程中的硬盘分区操作 31

选择分区方案 33

将Linux文件系统安排到各个分区上 33

2.5使用Ubuntu的kickstart安装方式 34

2.6 阅读参考 37

第3章 安装Ubuntu 39

3.1开始安装前的准备 39

检查硬件规格 40

安装选项 40

计划分区策略 40

引导程序 41

本地光盘安装 41

3.2逐步安装 42

开始安装 42

首次更新 49

3.3关机 50

3.4阅读参考 50

第4章 安装后的配置 53

4.1安装后配置问题的故障诊断 53

4.2 sudo命令 55

4.3首次更新 59

4.4配置软件源 58

4.5安装显卡驱动 59

4.6更改Ubuntu的桌面风格 60

更改桌面背景 60

更改颜色 61

更改系统字体 62

4.7首选行为 63

首选应用程序 63

Removable Drives and Media 64

4.8输入设备 65

键盘快捷键 65

键盘布局 65

鼠标 66

4.9检测与配置调制解调器 67

配置串口调制解调器 67

为笔记本电脑配置WinModem 68

4.10配置Ubuntu中的电源管理 68

4.11重设日期和时间 69

使用date命令 69

使用hwclock命令 70

更改时间和日期 70

4.12管理PCMCIA 71

使用PCMCIA 71

控制PCMCIA服务 72

4.13配置与使用CD、DVD和CD-RW光驱 73

4.14配置无线网络 75

4.15配置 Firestarter 76

4.16阅读参考 76

第5章 Ubuntu初步 79

5.1使用Linux文件系统 80

查看Linux文件系统 81

使用/bin和/sbin目录下的基本命令 83

在/boot目录和/dev目录中存储引导的内核和查看存储设备 84

使用和编辑/etc目录下的文件 84

保护用户目录/home中的内容 85

使用/proc目录的内容与内核进行交互 85

使用/usr目录下的共享数据 87

在/tmp目录下存储临时文件 87

访问/var目录下的可变数据文件 87

5.2登录与使用Linux 87

基于文本的控制台登录 88

使用虚拟控制台 88

在Linux控制台会话中使用简单的键盘和鼠标技巧 89

退出 90

从远程计算机登录与退出 90

5.3修改用户信息 92

5.4阅读文档 93

使用手册页 94

查找和阅读软件包文档 95

5.5使用shell 95

使用环境变量 97

使用shell导航和搜索 99

使用shell管理文件 100

通过shell压缩和解压的文件 101

5.6使用文本编辑器 102

使用vi 103

使用emacs 104

5.7使用权限 105

指派权限 106

目录权限 107

理解设置用户ID和设置组ID权限 109

5.8以root用户身份工作 110

创建用户 111

删除用户 112

关闭系统 112

重启系统 113

5.9阅读参考 114

第6章 X Window系统 117

6.1 X的基本概念 118

6.2使用X 11 R7 119

xorg.conf文件的元素 120

配置X 124

6.3启动X 125

使用显示管理器 125

通过使用startx从控制台启动X 128

6.4选择和使用窗口管理器 129

6.5 GNOME和KDE桌面环境 130

GNU网络对象模型环境GNOME) 130

K桌面环境(KD) 131

Xfce:备选的轻量级桌面环境 132

6.6阅读参考 133

第7章 管理软件 135

7.1使用Add/RemoveApplications管理软件 135

7.2使用Synaptic管理软件 136

7.3保持最新 138

7.4使用命令行 139

日常使用 140

查找软件 142

7.5从源代码编译软件 143

7.6阅读参考 145

第8章 Internet应用:Web冲浪、写邮件、读新闻 147

8.1选择Web浏览器 147

Mozilla Firefox 148

Mozilla Suite 149

Epiphany 150

Konqueror 150

8.2选择电子邮件客户端 151

Evolution 152

Mozilla Thunderbird 155

Balsa 155

KMail 155

Mozilla Mail 156

mail应用程序 158

mutt 159

其他邮件客户端 161

8.3网络新闻概述 161

8.4选择新闻阅读器 162

slrn新闻客户端 162

Pan新闻客户端 163

Mozilla新闻客户端 164

Thunderbird新闻客户端 166

8.5 Internet Relay Chat 166

8.6 GAIM IM 168

8.7使用Ekiga进行视频会议 168

8.8阅读参考 170

第9章 生产应用程序 171

9.1 Ubuntu中的办公套件 172

使用OpenOffice.org 173

使用OpenOffice.org Writer 176

使用OpenOffice.org Calc 178

使用GNOME Office 182

使用KOffice 186

9.2为Microsoft Windows编写的生产应用程序 189

9.3阅读参考 189

第10章 多媒体应用 191

10.1在Ubuntu中烧录CD和DVD 192

从命令行创建CD 193

从命令行创建DVD 194

使用Ubuntu的图形界面客户端创建CD和DVD 196

10.2声音和音乐 200

声卡 200

录音 200

声音格式 201

翻录音乐 202

音乐播放器 204

流式音频 205

10.3观看电视和视频 206

电视和视频硬件 206

视频格式 208

在Linux中观看视频 209

使用Linux观看电视 209

个人录像机 210

DVD和视频播放器 211

10.4阅读参考 212

第11章 图形处理 215

11.1在Ubuntu中使用数码相机 217

网络摄像头 217

手持式数码相机 218

使用F-Spot 219

11.2在Ubuntu中使用扫描仪 221

使用图形格式 222

捕获屏幕图像 224

11.3阅读参考 225

第12章 Ubuntu打印 227

12.1 Ubuntu打印概述 227

12.2配置和管理打印服务 229

快速完成基于GUI的打印机配置 230

管理打印服务 230

12.3创建和配置本地打印机 232

创建打印队列 232

编辑打印机设置 235

12.4阅读参考 236

第13章 游戏 239

13.1 Linux游戏 239

安装专有显卡驱动程序 240

安装DOOM 3 242

安装Unreal Tournament2004 243

安装Quake 4 244

安装Wolfenstein.EnemyTerritory 244

安装Battle for Wesnoth 245

使用Cedega玩Windows游戏 246

13.2阅读参考 246

第Ⅱ部分 系统管理 249

第14章 管理用户 249

14.1用户账户 249

用户ID和组ID 251

文件访问权限 251

14.2用户组管理 252

14.3用户管理 256

用户管理工具 256

添加新用户 257

监视用户在系统上的行为 258

14.4口令管理 259

系统口令策略 259

口令文件 259

shadow口令 261

管理用户口令的安全性 263

用户口令的批量更改 263

14.5权限提升 264

用su命令临时改变用户身份 264

适时地用sudo命令获取root权限 266

用受限shell控制用户权限 268

14.6用户登录过程 268

14.7磁盘配额 269

使用磁盘配额 270

手动配置磁盘配额 270

14.8阅读参考 272

第15章 自动执行任务 273

15.1自启动服务 274

开始启动加载过程 274

加载Linux内核 275

系统服务和运行级别 276

运行级别的定义 276

启动到默认运行级别 277

用GRUB启动到非默认的运行级别 278

理解init脚本以及初始化的最后步骤 278

用管理工具控制自启动服务 279

改变运行级别 280

利用运行级别排除故障 280

15.2手动启动和停止服务 281

15.3计划任务 282

使用at和batch命令制定计划任务 282

使用cron命令重复执行任务 284

15.4 shell控制基础 287

shell命令行 287

在shell中进行模式匹配 289

输入输出的重定向 290

管道数据 290

后台处理 291

15.5编写和执行shell脚本 291

运行shell脚本程序 293

系统启动时自动加载shell脚本 294

使用指定的命令行解释器运行shell脚本 294

在脚本中使用变量 295

给变量赋值 296

获取变量的值 296

位置参数 296

位置参数实例 297

使用位置参数从命令行获取变量 298

使用简单的脚本自动执行任务 298

内置变量 300

特殊字符 301

用双引号处理字符串中含有空格的变量 301

用单引号保留未被扩展的变量 302

使用反斜杠作为逃逸符号 303

使用backtick符号 303

pdksh和bash中的表达式比较 304

tcsh中的表达式比较 308

for语句 312

while语句 313

until语句 315

repeat语句(tcsh) 316

select语句(pdksh) 316

shilt语句 317

if语句 317

case语句 318

break和exit语句 320

在shell脚本中使用函数 320

15.6阅读参考 321

第16章 系统资源 323

16.1系统监视工具 323

控制台环境下的系统监视 323

使用kill命令控制进程 325

进程优先级调度与控制 326

使用free命令显示内存使用情况 327

磁盘配额 328

图形界面的进程和系统管理工具 328

KDE桌面环境的进程和系统监视工具 330

16.2阅读参考 332

第17章 备份、还原和恢复 333

17.1选择合适的备份策略 333

为什么会丢失数据 334

备份需求与所需资源的评估 334

如何评价备份策略的好坏 336

做出选择 339

17.2选择备份硬件和介质 339

可移动存储介质 339

网络存储 341

磁带驱动器备份 341

17.3使用备份软件 342

tar:最基本的备份工具 342

GNOME中的File Roller软件 344

KDE中的归档工具(KDEark和kdat) 345

使用dd命令归档 346

使用Amanda备份程序 346

可供选择的其他备份软件 347

17.4复制文件 347

用tar命令复制文件 348

压缩、加密和发送tar数据流 348

用cp命令复制文件 349

用me命令复制文件 349

用scp命令复制文件 350

用rsync命令复制文件 351

17.5恢复被删除的文件 353

在遇到未知的文件系统错误时使用-S选项重新格式化 353

用me命令恢复被删除的文件 354

17.6系统修复 355

Ubuntu系统修复盘 355

备份和恢复主引导记录 355

从普通的可引导软盘启动系统 356

使用GRUB可引导软盘 356

使用系统恢复功能 357

17.7阅读参考 357

第18章 网络连接 359

18.1基础:localhost接口 359

检查loopback接口是否可用 360

手动配置loopback接口 360

18.2 TCP/IP网络 361

TCP/IP地址 362

在Ubuntu中使用IP伪装技术 364

端口 364

18.3网络结构 365

子网划分 365

子网掩码 366

广播、单播和多播地址 366

18.4网络硬件设备 367

网卡 367

网线 369

集线器和交换机 370

路由器和网桥 371

初始化新的网络硬件 371

18.5使用网络配置工具 373

在命令行中配置网络接口 374

网络配置文件 378

使用图形界面配置工具 380

18.6动态主机配置协议 382

DHCP工作原理 382

在安装和启动时激活DHCP 383

DHCP软件的安装和配置 384

使用DHCP配置网络主机 385

DHCP的其他用途 387

18.7无线网络 387

Ubuntu对无线网络的支持 387

无线网络的优势 388

从现有的无线网络协议中选择合适的协议 389

18.8连接Internet 389

18.9通用的配置信息 390

18.10配置数字用户线路访问Internet 391

理解以太网上的点对点协议 392

手动配置PPPoE连接 392

18.11配置拨号Internet访问 393

18.12排除连接故障 396

18.13阅读参考 398

通用 398

DHCP 398

无线网络 398

书籍 398

第19章 使用ssh和telnet进行远程访问 399

19.1架设Telnet服务器 399

19.2 Telnet与SSH的对比 400

19.3架设SSH服务器 400

19.4 SSH工具 401

使用scp在计算机之间复制单个文件 401

使用sftp在计算机之间复制多个文件 402

使用ssh-keygen启动Key-based登录方式 403

19.5远程X图形环境 404

XDMCP 404

VNC 405

19.6阅读参考 406

第Ⅲ部分 服务器应用 409

第20章Apache Web服务器管理 409

20.1 Apache Web服务器简介 409

20.2安装Apache服务器 411

使用APT安装 411

亲自从源代码构建 412

20.3启动与停止Apache 414

手动启动Apache服务器 415

使用/etc/init.d/apache2 416

20.4设置运行时服务器配置 417

运行时配置指令 417

编辑httpd.conf 418

Apache多处理模块 420

使用.htaccess配置文件 421

20.5文件系统认证与访问控制 423

使用allow和deny限制访问 423

认证 424

关于访问控制的结束语 426

20.6 Apache模块 427

mod_access 427

mod_alias 427

mod_asis 428

mod_auth 428

mod_auth_anon 428

mod_auth_dbm 428

mod_auth_digest 428

mod_autoindex 429

mod_cgi 429

mod_dir和mod_env 429

mod_expires 429

mod_headers 429

mod_include 429

mod_info和mod_log_config 430

mod_mime和mod_mime_magic 430

mod_negotiation 430

mod_roxy 430

mod_rewrite 430

mod_setenvif 430

mod_speling 430

mod_status 431

mod_ssl 431

mod_unique_id 431

mod_userdir 431

mod_usertrack 431

mod_vhost_alias 431

20.7虚拟主机 431

基于地址的虚拟主机 432

基于名字的虚拟主机 432

20.8日志 433

20.9动态内容 435

CGI 435

SSI 436

基本的SSI指令 437

流程控制 440

20.10可在Ubuntu中使用的其他Web服务器 441

Sun ONE Web服务器 441

Zope 442

Zeus Web服务器 442

20.11阅读参考 442

第21章 管理数据库服务 445

21.1简要回顾数据库的基本概念 446

关系数据库的工作方式 447

了解SQL的基础知识 448

创建表 449

向表中插入数据 450

从数据库中检索数据 451

21.2选择数据库:MySQL和PostgreSQL 452

速度 453

数据锁定 453

在事务处理中用来保护数据完整性的ACID兼容性 454

SQL子查询 454

过程语言与触发器 454

21.3配置MySQL 455

为MySQL root用户设置口令 456

在MySQL中创建数据库 456

在MySQL中授予与撤销特权 456

21.4配置PostgreSQL 458

在PostgreSQL中初始化数据目录 458

在PostgreSQL中创建数据库 460

在PostgreSQL中创建数据库用户 460

在PostgreSQL中删除数据库用户 461

在PostgreSQL中授予和撤销特权 461

21.5数据库客户端 462

通过SSH访问数据库 462

通过本地GUI客户端访问数据库 464

通过Web访问数据库 464

MySQL命令行客户端 465

PostgreSQL命令行客户端 466

图形界面的客户端 467

21.6阅读参考 467

第22章 文件和打印 469

22.1使用网络文件系统 470

安装和启动/停止NFS 470

NFS服务器配置 470

NFS客户端配置 472

22.2让Samba工作 473

用/etc/samba/smb.conf手动配置Samba 474

使用testparm命令测试Samba 476

启动smbd守护进程 477

挂载Samba共享 478

使用SWAT配置Samba 478

22.3使用Ubuntu进行网络和远程打印 482

创建网络打印机 483

在局域网上进行网络打印 483

任务消息块打印 484

22.4使用通用UNIX打印系统GUI 485

22.5避免打印机支持问题 489

多功能一体机(打印/传真/扫描)设备 489

使用USB和老式打印机 489

22.6阅读参考 490

第23章 FTP远程文件服务 491

23.1使用FTP客户端 491

FTP客户端界面 492

使用基于文本的FTP客户端界面 492

使用图形界面FTP客户端 499

23.2 FTP服务器 501

选择认证的或匿名服务器 502

Ubuntu的FTP服务器包 502

其他FTP服务器 502

23.3安装FTP软件 503

23.4 FTP用户 504

23.5为wu-ftpd配置inetd 505

23.6配置VSFTP服务器 506

控制匿名访问 506

其他的vsttpd服务器配置文件 507

默认的vsttpd行为 507

23.7配置Wu-FTPd服务器 509

23.8使用ftpaccess文件中的命令对wu-ftpd进行配置 509

配置访问控制 510

配置用户信息 512

配置系统日志 516

配置权限控制 517

配置定向到cdpath的命令 519

shutdown文件的结构 520

23.9配置FTP服务器的文件转换操作 520

剥离前缀 521

剥离后缀 521

添加前缀 521

添加后缀 521

外部命令 521

类型 522

选项 522

描述 522

一个转换操作的例子 522

23.10使用ftphosts文件中的命令允许或禁止FTP服务器连接 523

23.11服务器管理 524

显示关于连接用户的信息 524

计算连接的数目 525

使用/usr/sbin/ftpshut安排FTP服务器停机时间 525

使用/var/log/xferlog查看服务器事务的日志 527

23.12阅读参考 529

第24章 处理电子邮件 531

24.1电子邮件是如何发送和接收的 531

邮件传输代理 532

选择一个MTA 534

邮件分发代理 534

邮件用户代理 535

24.2基本的Postfix配置和操作 535

配置伪装 536

使用智能主机 537

设置消息传递时间间隔 537

邮件中继 538

转发带别名的电子邮件 538

24.3使用Fetchmail获取邮件 539

安装Fetchmail 539

配置Fetchmail 539

24.4选择邮件分发代理 542

Procmail 542

Spamassassin 543

Squirrelmail 543

病毒扫描器 543

24.5邮件守护程序 544

24.6 Microsoft Exchange Server的替代者 544

Microsoft Exchange Server/Outlook客户端 544

CommuniGate Pro 545

Oracle协作套件 545

Bynari 545

Open-Xchange 545

phpgroupware 545

PHProjekt 545

Horde 546

24.7阅读参考 546

Web资源 546

参考书目 547

第25章 代理与反向代理 549

25.1什么是代理服务器 549

25.2安装Squid 549

25.3配置客户端 550

25.4访问控制列表 551

25.5指定客户端IP地址 555

25.6配置示例 556

25.7阅读参考 557

第26章 LDAP 559

26.1配置LDAP 服务器 560

26.2配置客户端 564

Evolution 564

Thunderbird 564

26.3管理 566

26.4阅读参考 566

第Ⅳ部分 Linux编程 569

第27章 使用Perl 569

27.1在Linux中使用Perl 569

Perl的版本 570

一个简单的Perl程序 570

27.2 Perl中的变量和数据结构 572

Perl的变量类型 572

特殊变量 573

27.3操作符 573

比较操作符 574

复合操作符 574

算术操作符 575

其他操作符 575

特殊字符串常量 576

27.4条件语句:if/else和unless 577

if 577

unless 577

27.5循环 578

for 578

foreach 578

while 579

until 579

last和next 579

do...while和do...until 580

27.6正则表达式 580

27.7访问shell 581

27.8模块和CPAN 582

27.9代码示例 582

发送电子邮件 582

清理日志 584

往新闻组发信 585

单行小程序 586

命令行处理 586

27.10阅读参考 587

书目 587

新闻组 588

万维网 588

其他资源 589

第28章 使用Python 591

28.1 Linux中的Python 591

28.2 Python基础 592

数字 593

进一步讨论字符串 594

列表 596

字典 598

条件和循环 599

28.3函数 601

28.4面向对象 602

类和对象变量 602

构造函数和析构函数 603

类继承 604

多重继承 606

28.5标准库和Vaults of Parnassus 606

28.6阅读参考 607

第29章 编写PHP脚本 609

29.1 PHP入门 609

进入和退出PHP模式 610

变量 610

数组 612

常量 613

引用 613

注释 614

转义序列 614

变量替换 615

操作符 616

条件语句 618

特殊操作符 619

switch语句 620

循环 621

包含其他文件 623

29.2基本函数 624

字符串 624

数组 627

文件 629

其他函数 630

29.3处理HTML表格 634

29.4数据库 634

29.5阅读参考 636

第30章 Ubuntu中的C/C++编程工具 639

30.1 Linux中的C编程 639

C++编程 640

Linux C/C++编程入门 640

编程的步骤 641

30.2 C/C++语言的基本元素 641

30.3 Ubuntu中的C语言编程项目管理工具 642

使用make构建程序 642

使用autoconf工具配置代码 644

使用RCS和CVS管理软件项目 644

调试工具 645

30.4使用GNU C编译器 646

30.5一个简单的C程序 647

30.6图形界面开发工具 648

使用KDevelop客户端 648

Trolltech的Qt Designer 649

GNOME中的开发工具Glade客户端 650

30.7阅读参考 651

第Ⅴ部分 Ubuntu日常维护 655

第31章 保护您的机器 655

31.1了解计算机攻击 655

31.2评估机器的弱点 657

31.3保护您的机器 658

保护无线网络 658

口令和物理安全 659

配置和使用Tripwire 659

设备 661

31.4病毒 661

31.5配置防火墙 662

31.6构建一个灾难恢复计划 662

31.7在Linux安全问题上要 663

保持最新 663

31.8阅读参考 664

第32章 性能调整 665

32.1硬盘 665

使用BIOS和内核来调整磁盘驱动器 666

hdparm命令 666

文件系统调整 667

tune2fs命令 668

e2fsek命令 668

badblocks命令 669

禁止文件访问时间 669

32.2内核 669

32.3 Apache 670

32.4 MySQL 671

衡量关键字缓冲区的使用 672

使用查询缓存 673

其他调整 675

查询优化 675

32.5阅读参考 675

第33章 命令行高级班 677

33.1为什么使用Shell 678

33.2基本命令 679

使用cat输出文件的内容 680

使用cd改变目录 681

使用chmod修改文件访问权限 682

使用cp复制文件 683

使用du输出磁盘使用情况 683

通过使用find查找文件 684

使用grep在输入中查找字符串 686

使用less为输出翻页 687

使用In在文件间创建链接 689

使用locate通过索引查找文件 690

使用ls命令列出当前目录下的文件 691

使用man阅读用户手册页 692

使用mkdir创建目录 693

使用mv移动文件 693

使用ps列出进程 693

使用rm删除文件和目录 694

使用tail输出文件的最后一行 694

使用top输出资源利用率 695

使用which输出命令的位置 696

33.3将命令组合使用 696

33.4多终端 698

33.5阅读参考 700

第34章 高级APT 701

34.1使用Aptitude 701

34.2 dpkg后端 702

34.3配置APT 704

34.4阅读参考 705

第35章 内核和模块管理 707

35.1 Linux内核 708

Linux源代码树 708

内核的类型 710

35.2管理模块 711

35.3何时进行重新编译 713

35.4内核版本 714

35.5获得内核源代码 714

35.6为内核打补丁 715

35.7编译内核 717

使用xconfig配置内核 721

创建一个初始的RAM磁盘映像 724

35.8当发生故障时 724

编译时的错误 724

运行时错误、启动加载器问题和内核oops 725

35.9阅读参考 726

第Ⅵ部分 附录 729

附录A Ubuntu和Linux的Internet资源 729

A.1 Web站点和搜索引擎 730

A.2 Usenet新闻组 735

A.3 邮件列表 736

A.4 Internet Relay Chat 737

精品推荐