为什么关注命令行

<!-- /* Font Definitions */ @font-face {font-family:"MS Mincho"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-alt:"MS 明朝"; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:黑体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimHei; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:1 135135232 16 0 262144 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:AdobeSongStd-Light; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-alt:黑体; mso-font-charset:134; mso-generic-font-family:auto; mso-font-format:other; mso-font-pitch:auto; mso-font-signature:1 135135232 16 0 262144 0;} @font-face {font-family:方正大黑简体; mso-font-alt:"Arial Unicode MS"; mso-font-charset:134; mso-generic-font-family:script; mso-font-pitch:fixed; mso-font-signature:0 135135232 16 0 262144 0;} @font-face {font-family:方正楷体简体; mso-font-alt:"Arial Unicode MS"; mso-font-charset:134; mso-generic-font-family:script; mso-font-pitch:fixed; mso-font-signature:0 135135232 16 0 262144 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@黑体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:1 135135232 16 0 262144 0;} @font-face {font-family:"/@MS Mincho"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face {font-family:"/@方正大黑简体"; mso-font-charset:134; mso-generic-font-family:script; mso-font-pitch:fixed; mso-font-signature:0 135135232 16 0 262144 0;} @font-face {font-family:"/@方正楷体简体"; mso-font-charset:134; mso-generic-font-family:script; mso-font-pitch:fixed; mso-font-signature:0 135135232 16 0 262144 0;} @font-face {font-family:"/@AdobeSongStd-Light"; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-charset:134; mso-generic-font-family:auto; mso-font-format:other; mso-font-pitch:auto; mso-font-signature:1 135135232 16 0 262144 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; text-indent:10.0pt; mso-char-indent-count:2.0; line-height:15.6pt; mso-pagination:none; punctuation-trim:leading; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} h2 {mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 2 Char"; mso-style-next:正文; margin-top:7.0pt; margin-right:0cm; margin-bottom:5.5pt; margin-left:1.0pt; mso-para-margin-top:1.4gd; mso-para-margin-right:0cm; mso-para-margin-bottom:1.1gd; mso-para-margin-left:.2gd; mso-line-height-alt:15.6pt; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:2; punctuation-trim:leading; font-size:16.0pt; font-family:"Arial","sans-serif"; mso-fareast-font-family:黑体; mso-bidi-font-family:"Times New Roman"; mso-font-kerning:1.0pt; font-weight:normal; mso-bidi-font-weight:bold;} span.2Char {mso-style-name:"标题 2 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 2"; mso-ansi-font-size:16.0pt; mso-bidi-font-size:16.0pt; font-family:"Arial","sans-serif"; mso-ascii-font-family:Arial; mso-fareast-font-family:黑体; mso-hansi-font-family:Arial; mso-font-kerning:1.0pt; mso-bidi-font-weight:bold;} p.L, li.L, div.L {mso-style-name:正文L; mso-style-update:auto; mso-style-unhide:no; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; text-indent:21.0pt; mso-char-indent-count:2.0; line-height:15.6pt; mso-pagination:none; punctuation-trim:leading; font-size:10.5pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} p.a, li.a, div.a {mso-style-name:新程序; mso-style-unhide:no; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; text-indent:21.25pt; line-height:10.0pt; mso-pagination:none; background:#E6E6E6; punctuation-trim:leading; font-size:8.5pt; mso-bidi-font-size:12.0pt; font-family:"Courier New"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} span.myp111 {mso-style-name:myp111; mso-style-unhide:no;} span.ttag {mso-style-name:t_tag; mso-style-unhide:no;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; mso-ascii-font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-hansi-font-family:"Times New Roman"; mso-font-kerning:0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->

本文节选自<<Linux系统最佳实践工具:命令行技术>>

 

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

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

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

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

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

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

#!/bin/bash

ORIGDIR="/var/UploadFiles"

TARGDIR="/var/ClassifiedFiles"

filelist=$( ls $ORIGDIR/* )

for file in $filelist

do

  date=$( ls -l $file | tail -1 | awk '{print $6}' )

  if [ ! -e $TARGDIR/$date ]

  then

    mkdir $TARGDIR/$date

  fi

  mv $file $TARGDIR/$date

done

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

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

本书结构

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

1部分  Linux基础

1Linux简介

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

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

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

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

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

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

4Linux 进程及其管理命令

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

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

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

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

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

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

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

8Linux系统管理命令

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

9Linux服务器管理命令

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

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

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

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

11Linux库应用及其相关命令

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

12Linux开发常用命令gccmake

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

13Linux编辑器viEmacs

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

14章使用Shell

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

4部分  附录

限于篇幅,本书的附录BCwww.broadview.com.cn下载。

附录A解读LSB标准

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

附录B正则表达式和grep

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

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

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

本书特色

目前市场上关于Linux命令行类的图书并不多,并且大部分只是对命令行的常用命令作简要介绍,既不全面也不深入,无法满足读者的需求。针对这种现状,本书对Linux命令行下的主要命令进行了非常详尽的系统介绍,弥补了该类图书的一个市场空白。本书的最大特点是详细,对每个命令均有详细的解说,并结合大量应用实例,力求把每一个命令的使用方法及其功能都介绍清楚,让读者能够更加深入地学习。随着Linux不同版本的不断推出和Linux应用的不断增加,新的Linux命令层出不穷,原有的命令也在不断更新,但市场上缺乏与命令行发展同步的参考用书。本书针对最新版本的Linux内核,重新整理和归纳了许多重要的常用命令和新增命令,力图为读者提供最新的命令行参考。从使用方便性上考虑,本书对Linux命令进行了详细的分类,将功能相同或相近的命令放在一起,使读者可以触类旁通、举一反三,以达到全面掌握的目的。对于初、中级用户来说,许多命令并不熟悉,而且也不了解命令的参数,需要查阅相应的资料。此时,本书就可以像字典一样供查阅。

本书的编写基于RHEL 5.0操作系统,汇集了Linux命令行下最常用、最重要的命令。这些命令同时也适用于其他Linux发行版,是所有Linux用户必备的参考用书。

本书适合的读者对象

Linux应用爱好者,Linux网络管理员和系统管理员以及对故障排除方面感兴趣的读者,IT行业的相关人员,大专院校计算机专业师生,Linux系统管理、网络管理、维护的从业人员。作为一本系统管理与维护、网络配置与管理的工具类用书,本书对于相关工程技术人员也是一本不可多得的参考书。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值