服务器 频道

Linux系统非常好的实践工具 前言

  前言

  目前的Linux操作系统的图形化操作界面已经相当优秀。在Linux上可采用多种图形管理程序,来改变不同的桌面图案或功能菜单,例如GNOME和KDE等,这一点是Windows操作系统单一界面所望尘莫及的。但Linux是一个基于命令行的操作系统,命令行的命令是Linux操作系统的灵魂和精华所在,只有学会并掌握命令行技术,才能真正精通Linux,并成为真正的Linux高手。命令行能够让你访问数百个工具软件。在命令行上面,你可以使用一个管道把工具软件结合在一起执行一项单个工具软件无法完成的工作。

  为什么关注命令行

  对于某些用户和执行某些任务来说,使用图形界面更容易、更简洁。这实际上依赖于你要做什么和你是谁。图形用户界面和命令行之间的区别就像优品飞车游戏的自动驾驶与自己使用技巧玩一样。不过还是建议你自己慢慢地打任务。这样更有意思,而且你会慢慢地发现自己的技术提高了很多,包括漂移,你多玩就会领悟很多技巧,如果直接下载补丁的话就没有太多的乐趣了。

  初级Linux用户多将矛头指向相对图形界面缺乏的UNIX的时候,多少人发出疑问:为何要死守命令行?我们说一个简单的逻辑:图形界面人机交互好,图形界面简单,图形界面在某些任务方面,确实是高效而且简单的,但是,某些任务方面,图形界面是无能的。

  Linux操作系统是一款文本式驱动的操作系统,这是它的优点所在,即使是Windows处理复杂任务的时候,图形界面也只是一个界面(举个例子:Word图形界面做得很单纯,但有不少任务仍需宏完成)。图形界面消耗的是物理内存的空间,你的屏幕上需要处理复杂的问题的时候,图形界面要密密麻麻地列出一堆列表,而它的作用不过是基于某个命令的图形外壳,这个时候,图形界面的直观作用和命令行没有区别。而命令行遵循的是逻辑原则,当你需要处理某个任务的时候,命令和参数的位置决定了你执行的逻辑,这个时候图形界面无法做到。也许有人说,对于图形界面的执行逻辑可以决定命令行的位置依赖性,并且可以在合适的地方增加更多的、更直观的元素。但是,问题是图形界面一旦达到这个地步,它的定制性能迅速下降。图形界面的优点就在于这里:对于简单、固定逻辑流程的东西,它处理起来简单、直观、高效,所以非常适合作为应用软件的交互界面,但是这也是图形界面的缺点:对于复杂变化逻辑的东西,它处理能力低下。

  学习命令行,不是要抛弃图形界面,但是使用图形界面,无法抛弃命令行。如果想要自己的系统更完善,那么还是好好学习命令行吧。下面看一个实际的例子。

  公司经常会同步过来很多文件,希望能按上传日期移动到相应的文件夹。

  如果使用图形界面操作会比较麻烦,也许有人会说可以用Windows的一些同步软件帮忙,但是如果你的系统不兼容Windows呢?可以使用一个简单的shell脚本解决问题:

  #!/bin/bashORIGDIR="/var/UploadFiles"TARGDIR="/var/ClassifiedFiles"filelist=$( ls $ORIGDIR/* )for file in $filelistdodate=$( ls -l $file | tail -1 | awk '{print $6}' )if [ ! -e $TARGDIR/$date ]thenmkdir $TARGDIR/$datefimv $file $TARGDIR/$datedone

  说明  变量ORIGDIR是上传目录,所有上传的文件都必须放在这个目录下,且该目录不能有子目录。变量TARGDIR是分类目录所在的目录,所有分类好的目录和文件都是该目录的子目录。每一个文件都按其修改日期(如果此文件在上传后未被修改的话,也应该就是其上传日期)放在以其修改日期命名的目录下。例如:位于$ORIGDIR目录下修改日期为2008-09-26的文件就被放在$TARGDIR/2008-09-26目录下。

  总结:虽然软件可以解决不少问题,但是本来系统能解决的东西不需要软件。你的高效和稳定来自于你的命令行,而图形界面无法解决这个矛盾。

  本书结构

  本书的每一章都建立在前面章节所介绍知识的基础之上,这样就形成了从始至终的一个自然的学习路径。读者从本书获得了足够的知识之后,也会获得相应的信心,同时会发现章节的顺序和结构就是一个很有用的参考工具。
 

1部分  Linux基础

1  Linux简介

介绍Linux的基础知识,包括桌面概述、各种可用的GUI应用程序,如何管理用户、目录和文件,以及如何检查系统进程以管理系统资源。

2部分  从系统管理角度学习Linux 命令

2  Linux文件系统及其相关处理命令

介绍Linux层次式文件系统,包括文件、文件名、路径名、使用目录、访问权限、物理链接和符号链接。理解文件系统将有助于组织数据,以便快速地查找信息。还可以与其他用户共享某些文件,同时保持其他文件为私有文件。

3  Linux磁盘管理及其相关命令

介绍Linux硬盘与格式化及分区基本概念,学习Linux磁盘管理和分区及其相关命令。

4  Linux 进程及其管理命令

介绍Linux 进程的基础知识:了解进程的属性,理解Linux下进程的结构。认识Linux进程的创建、进程的管理、Linux的第一个进程init,然后简单介绍Linux的线程,理解Linux守护进程,认识100个最常见Linux守护进程简介。最后学习Linux 进程管理命令。

5  Linux网络体系及其相关命令

介绍Linux网络体系:TCP/IP网络模型、OSI七层模型。熟悉Linux网络配置文件后Linux网络管理命令。

6  Linux用户管理及其相关命令

首先介绍Linux用户管理的方法和了解Linux用户配置文件。然后学习Linux用户管理命令。

7  Linux的备份和压缩及其相关命令

首先介绍Linux备份策略,了解Linux下压缩文件格式。然后学习Linux压缩备份常用命令。最后根据Linux命令行数据备份实例学习Linux企业级数据备份和恢复。

8  Linux系统管理命令

首先介绍Linux启动过程,了解LILOGRUB启动管理器。然后学习90个最常用的Linux 系统管理命令。最后了解Linux 性能监控的方法,本章是本书重点章节。

9  Linux服务器管理命令

首先介绍Linux服务器市场近况,然后学习Linux主流服务器管理命令的使用技巧?最后解释xinetdLinux服务器工作方式的关系。本章是本书重点章节。

10  Linux打印系统及其相关命令

首先介绍Linux打印系统发展路线图,然后学习配置CUPS打印系统。最后学习Linux打印管理命令的使用方法。

3部分  Linux开发编程中需要使用的命令

11  Linux库应用及其相关命令

首先介绍Linux库的的定义、种类、常用的Linux库等基础知识。然后学习Linux库操作命令。最后学习构建、安装共享库以及库升级的过程。

12  Linux开发常用命令gccmake

介绍Linux的编程环境,内容包括:解释如何调用gcc编译器,描述如何使用make来更新一组程序。解释如何使用gdb调试C程序。另外,还学习gccmakegdb的命令选项。

13  Linux编辑器viEmacs

介绍包括两个经典的强大的Linux命令行文本编辑器。绝大多数Linux发行版均包含广泛使用的vi编辑器和同样流行的GNU Emacs编辑器的“增强”版。使用文本编辑器可创建和修改文本文件,这些文本文件包括程序源代码、Shell脚本、备忘录以及文本格式化程序的输入数据。首先将介绍vi编辑器的使用手册,然后阐述了如何使用vi的许多高级功能,包括在搜索串中的特殊字符、通用缓冲区和命名缓冲区、参数、标记以及在vi中执行命令。Emacs编辑器部分将首先介绍Emacs使用手册,然后再介绍Emacs编辑器的很多高级功能,还包括Meta键、Alt键和Escape键的使用。该章还包括键绑定、缓冲区以及字符串和正则表达式的渐增式搜索和完全搜索。另外,该章还详细讲解了指针、光标、标记和区域的关联。

14  使用Shell

一旦读者掌握了Linux基础,就可以使用已有的知识,采用Shell作为编程语言来构建更加复杂和专用的程序。本章就Shell 基础进行学习。

4部分  附录

限于篇幅,本书的附录BC从网址www.broadview.com.cn下载。

附录A  解读LSB标准

LSB 的目标是使应用程序在任何 Linux 分发版上运行。LSB 实现这一点的方式是通过受一致性担保支持的分发版和应用程序认证。但它将提供一个环境,在这个环境中,支持LSB标准的各种Linux系统可以相互竞争,用户可以在所有Linux系统中使用这些支持LSB标准的应用软件。本附录介绍LSB相关标准和基础知识。

附录B  正则表达式和grep

讲解如何使用正则表达式以充分利用Linux的潜在威力。很多工具,包括grepvi等,可以接受正则表达式来代替简单的字符串。单个的正则表达式可以匹配很多简单的字符串。

附录C  命令行下使用Linux 帮助信息

详细描述了在使Linux系统时遇到的问题的典型解决步骤。该附录还包括了很多Web站点的链接,这些站点提供了文档资料、有用的Linux信息、邮件列表和软件。

0
相关文章