You are on page 1of 659

[General Information]

书名=LINUX命令行与SHELL脚本编程大全  第2版
作者=(美)布卢姆,(美)布雷斯纳汉著
页数=620
出版社=北京市:人民邮电出版社
出版日期=2012.08
SS号=13057851
DX号=000008334722
URL=http://book2.duxiu.com/bookDetail.jsp?
dxNumber=000008334722&d=48B6BBBFBAADE2576BD60B
15E0815BF9
封面
书名
版权
前言
目录
第一部分Linux命令行
    第1章  初识Linux shell
        1.1什么是Linux
            1.1.1深入探究Linux内核
            1.1.2  GNU工具链
            1.1.3  Linux桌面环境
        1.2 Linux发行版
            1.2.1核心Linux发行版
            1.2.2专业Linux发行版
            1.2.3  Linux LiveCD
        1.3小结
    第2章  走进shell
        2.1终端模拟
            2.1.1图形功能
            2.1.2键盘
        2.2 terminfo数据库
        2.3 Linux控制台
        2.4 xterm终端
            2.4.1命令行参数
            2.4.2  xterm主菜单
            2.4.3  VT选项菜单
            2.4.4  VT字体菜单
        2.5 Konsole终端
            2.5.1命令行参数
            2.5.2标签式窗口会话
            2.5.3配置文件
            2.5.4菜单栏
        2.6 GNOME Terminal
            2.6.1命令行参数
            2.6.2标签
            2.6.3菜单栏
        2.7小结
    第3章  基本的bash shell命令
        3.1启动shell
        3.2  shell提示符
        3.3  bash手册
        3.4浏览文件系统
            3.4.1 Linux文件系统
            3.4.2遍历目录
        3.5文件和目录列表
            3.5.1基本列表功能
            3.5.2修改输出信息
            3.5.3完整的参数列表
            3.5.4过滤输出列表
        3.6处理文件
            3.6.1创建文件
            3.6.2复制文件
            3.6.3链接文件
            3.6.4重命名文件
            3.6.5删除文件
        3.7处理目录
            3.7.1创建目录
            3.7.2删除目录
        3.8查看文件内容
            3.8.1查看文件统计信息
            3.8.2查看文件类型
            3.8.3查看整个文件
            3.8.4查看部分文件
        3.9小结
    第4章  更多的bash shell命令
        4.1监测程序
            4.1.1探查进程
            4.1.2实时监测进程
            4.1.3结束进程
        4.2监测磁盘空间
            4.2.1挂载存储媒体
            4.2.2使用df命令
            4.2.3使用du命令
        4.3处理数据文件
            4.3.1排序数据
            4.3.2搜索数据
            4.3.3压缩数据
            4.3.4归档数据
        4.4小结
    第5章  使用Linux环境变量
        5.1什么是环境变量
            5.1.1全局环境变量
            5.1.2局部环境变量
        5.2设置环境变量
            5.2.1设置局部环境变量
            5.2.2设置全局环境变量
        5.3删除环境变量
        5.4默认shell环境变量
        5.5设置PATH环境变量
        5.6定位系统环境变量
            5.6.1登录shell
            5.6.2交互式shell
            5.6.3非交互式shell
        5.7可变数组
        5.8使用命令别名
        5.9小结
    第6章理解Linux文件权限
        6.1 Linux的安全性
            6.1.1 /etc/passwd文件
            6.1.2  /etc/shadow文件
            6.1.3添加新用户
            6.1.4删除用户
            6.1.5修改用户
        6.2使用Linux组
            6.2.1 /etc/group文件
            6.2.2创建新组
            6.2.3修改组
        6.3理解文件权限
            6.3.1使用文件权限符
            6.3.2默认文件权限
        6.4改变安全性设置
            6.4.1改变权限
            6.4.2改变所属关系
        6.5共享文件
        6.6小结
    第7章  管理文件系统
        7.1探索Linux文件系统
            7.1.1基本的Linux文件系统
            7.1.2日志文件系统
            7.1.3扩展的Linux日志文件系统
        7.2操作文件系统
            7.2.1创建分区
            7.2.2创建文件系统
            7.2.3如果出错了
        7.3逻辑卷管理器
            7.3.1逻辑卷管理布局
            7.3.2  Linux中的LVM
            7.3.3使用Linux LVM
        7.4小结
    第8章  安装软件程序
        8.1包管理基础
        8.2基于Debian的系统
            8.2.1用aptitude管理软件包
            8.2.2用aptitude安装软件包
            8.2.3用aptitude更新软件
            8.2.4用aptitude卸载软件
            8.2.5  aptitude库
        8.3基于Red Hat的系统
            8.3.1列出已安装包
            8.3.2用yum安装软件
            8.3.3用yum更新软件
            8.3.4用yum卸载软件
            8.3.5处理损坏的包依赖关系
            8.3.6  yum软件库
        8.4从源码安装
        8.5小结
    第9章  使用编辑器
        9.1 Vim编辑器
            9.1.1 Vim基础
            9.1.2编辑数据
            9.1.3复制和粘贴
            9.1.4查找和替换
        9.2  Emacs编辑器
            9.2.1在控制台上使用Emacs
            9.2.2在X Window中使用Emacs
        9.3  KDE系编辑器
            9.3.1 KWrite编辑器
            9.3.2  Kate编辑器
        9.4  GNOME编辑器
            9.4.1启动gedit
            9.4.2基本的gedit功能
            9.4.3设定偏好设置
        9.5小结
第二部分shell脚本编程基础
    第10章  构建基本脚本
        10.1使用多个命令
        10.2创建shell脚本文件
        10.3显示消息
        10.4使用变量
            10.4.1环境变量
            10.4.2用户变量
            10.4.3反引号
        10.5重定向输入和输出
            10.5.1输出重定向
            10.5.2输入重定向
        10.6管道
        10.7执行数学运算
            10.7.1 expr命令
            10.7.2使用方括号
            10.7.3浮点解决方案
        10.8退出脚本
            10.8.1查看退出状态码
            10.8.2  exit命令
        10.9小结
    第11章  使用结构化命令
        11.1使用if-then语句
        11.2  if-then-else语句
        11.3嵌套i f
        11.4  test命令
            11.4.1数值比较
            11.4.2字符串比较
            11.4.3文件比较
        11.5复合条件测试
        11.6if-then的高级特性
            11.6.1使用双尖括号
            11.6.2使用双方括号
        11.7  case命令
        11.8小结
    第12章  更多的结构化命令
        12.1 for命令
            12.1.1读取列表中的值
            12.1.2读取列表中的复杂值
            12.1.3从变量读取列表
            12.1.4从命令读取值
            12.1.5更改字段分隔符
            12.1.6用通配符读取目录
        12.2  C语言风格的for命令
            12.2.1C语言的for命令
            12.2.2使用多个变量
        12.3  while命令
            12.3.1 while的基本格式
            12.3.2使用多个测试命令
        12.4 until命令
        12.5嵌套循环
        12.6循环处理文件数据
        12.7控制循环
            12.7.1 break命令
            12.7.2  continue命令
        12.8处理循环的输出
        12.9小结
    第13章  处理用户输入
        13.1命令行参数
            13.1.1读取参数
            13.1.2读取程序名
            13.1.3测试参数
        13.2特殊参数变量
            13.2.1参数计数
            13.2.2抓取所有的数据
        13.3移动变量
        13.4处理选项
            13.4.1查找选项
            13.4.2使用getopt命令
            13.4.3使用更高级的getopts
        13.5将选项标准化
        13.6获得用户输入
            13.6.1基本的读取
            13.6.2超时
            13.6.3隐藏方式读取
            13.6.4从文件中读取
        13.7小结
    第14章  呈现数据
        14.1理解输入和输出
            14.1.1标准文件描述符
            14.1.2重定向错误
        14.2在脚本中重定向输出
            14.2.1临时重定向
            14.2.2永久重定向
        14.3在脚本中重定向输入
        14.4创建自己的重定向
            14.4.1创建输出文件描述符
            14.4.2重定向文件描述符
            14.4.3创建输入文件描述符
            14.4.4创建读写文件描述符
            14.4.5关闭文件描述符
        14.5列出打开的文件描述符
        14.6阻止命令输出
        14.7创建临时文件
            14.7.1创建本地临时文件
            14.7.2在/tmP目录创建临时文件
            14.7.3创建临时目录
        14.8记录消息
        14.9小结
    第15章  控制脚本
        15.1处理信号
            15.1.1重温 Linux信号
            15.1.2产生信号
            15.1.3捕捉信号
            15.1.4捕捉脚本的退出
            15.1.5移除捕捉
        15.2以后台模式运行脚本
            15.2.1后台运行脚本
            15.2.2运行多个后台作业
            15.2.3退出终端
        15.3在非控制台下运行脚本
        15.4作业控制
            15.4.1查看作业
            15.4.2重启停止的作业
        15.5调整谦让度
            15.5.1 nice命令
            15.5.2  renice命令
        15.6定时运行作业
            15.6.1用at命令来计划执行作业
            15.6.2计划定期执行脚本
        15.7启动时运行
            15.7.1开机时运行脚本
            15.7.2在新shell中启动
        15.8小结
第三部分  高级shell脚本编程
    第16章  创建函数
        16.1基本的脚本函数
            16.1.1创建函数
            16.1.2使用函数
        16.2返回值
            16.2.1默认退出状态码
            16.2.2使用return命令
            16.2.3使用函数输出
        16.3在函数中使用变量
            16.3.1向函数传递参数
            16.3.2在函数中处理变量
        16.4数组变量和函数
            16.4.1向函数传数组参数
            16.4.2从函数返回数组
        16.5函数递归
        16.6创建库
        16.7在命令行上使用函数
            16.7.1在命令行上创建函数
            16.7.2在.bashrc文件中定义函数
        16.8小结
    第17章  图形化桌面上的脚本编程
        17.1创建文本菜单
            17.1.1创建菜单布局
            17.1.2创建菜单函数
            17.1.3添加菜单逻辑
            17.1.4整合shell脚本菜单
            17.1.5使用select命令
        17.2使用窗口
            17.2.1 dialog包
            17.2.2  dialog选项
            17.2.3在脚本中使用dialog命令
        17.3使用图形
            17.3.1 KDE环境
            17.3.2  GNOME环境
        17.4小结
    第18章  初识sed和gawk
        18.1文本处理
            18.1.1sed编辑器
            18.1.2 gawk程序
        18.2  sed编辑器基础
            18.2.1更多的替换选项
            18.2.2使用地址
            18.2.3删除行
            18.2.4插入和附加文本
            18.2.5修改行
            18.2.6转换命令
            18.2.7回顾打印
            18.2.8用sed和文件一起工作
        18.3小结
    第19章  正则表达式
        19.1什么是正则表达式
            19.1.1定义
            19.1.2正则表达式的类型
        19.2定义BRE模式
            19.2.1纯文本
            19.2.2特殊字符
            19.2.3锚字符
            19.2.4点字符
            19.2.5字符组
            19.2.6排除字符组
            19.2.7使用区间
            19.2.8特殊字符组
            19.2.9星号
        19.3扩展正则表达式
            19.3.1问号
            19.3.2加号
            19.3.3使用花括号
            19.3.4管道符号
            19.3.5聚合表达式
        19.4实用中的正则表达式
            19.4.1目录文件计数
            19.4.2验证电话号码
            19.4.3解析邮件地址
        19.5小结
    第20章sed进阶
        20.1多行命令
            20.1.1 next命令
            20.1.2多行删除命令
            20.1.3多行打印命令
        20.2保持空间
        20.3排除命令
        20.4改变流
            20.4.1跳转
            20.4.2测试
        20.5模式替代
            20.5.1 and符号
            20.5.2替换单独的单词
        20.6在脚本中使用sed
            20.6.1使用包装脚本
            20.6.2重定向sed的输出
        20.7创建sed实用工具
            20.7.1加倍行间距
            20.7.2对可能含有空白行的文件加倍行间

            20.7.3给文件中的行编号
            20.7.4打印末尾行
            20.7.5删除行
            20.7.6删除HTML标签
        20.8小结
    第21章gawk进阶
        21.1使用变量
            21.1.1内建变量
            21.1.2自定义变量
        21.2处理数组
            21.2.1定义数组变量
            21.2.2遍历数组变量
            21.2.3删除数组变量
        21.3使用模式
            21.3.1正则表达式
            21.3.2  匹 配操作符
            21.3.3数学表达式
        21.4结构化命令
            21.4.1 if语句
            21.4.2  while语句
            21.4.3  do-while语句
            21.4.4  for语句
        21.5格式化打印
        21.6内建函数
            21.6.1数学函数
            21.6.2字符串函数
            21.6.3时间函数
        21.7自定义函数
            21.7.1定义函数
            21.7.2使用自定义函数
            21.7.3创建函数库
        21.8小结
    第22章  使用其他shell
        22.1什么是dash shell
        22.2  dash shell的特性
            22.2.1 dash命令行参数
            22.2.2  dash环境变量
            22.2.3  dash内建命令
        22.3  dash脚本编程
            22.3.1创建dash脚本
            22.3.2不能使用的功能
        22.4  zsh shell
        22.5  zsh shell的组成
            22.5.1 shell选项
            22.5.2内建命令
        22.6  zsh脚本编程
            22.6.1数学运算
            22.6.2结构化命令
            22.6.3函数
        22.7小结
第四部分  高级shell脚本编程主题
    第23章  使用数据库
        23.1 MySQL数据库
            23.1.1安装MySQL
            23.1.2  MySQL客户端界面
            23.1.3创建MySQL数据库对象
        23.2  PostgreSQL数据库
            23.2.1安装PostgreSQL
            23.2.2  PostgreSQL命令行界面
            23.2.3创建PostgreSQL数据库  对象
        23.3使用数据表
            23.3.1创建数据表
            23.3.2插入和删除数据
            23.3.3查询数据
        23.4在脚本中使用数据库
            23.4.1连接到数据库
            23.4.2向服务器发送命令
            23.4.3格式化数据
        23.5小结
    第24章  使用Web
        24.1 Lynx程序
            24.1.1安装Lynx
            24.1.2  lynx命令行
            24.1.3  Lynx配置文件
            24.1.4  Lynx环境变量
            24.1.5从Lynx中抓取数据
        24.2  cURL程序
            24.2.1安装cURL
            24.2.2探索cURL
        24.3使用zsh处理网络
            24.3.1 TCP模块
            24.3.2客户端/服务器模式
            24.3.3使用zsh进行C/S编程
        244小结
    第25章  使用E-mail
        25.1 Linux E-mail基础
            25.1.1Linux中的E-mail
            25.1.2邮件传送代理
            25.1.3邮件投递代理
            25.1.4邮件用户代理
        25.2建立服务器
            25.2.1 sendmail
            25.2.2  Postfiix
        25.3使用Mailx发送消息
        25.4  Mutt程序
            25.4.1安装Mutt
            25.4.2  Mutt命令行
            25.4.3使用Mutt
        25.5小结
    第26章  编写脚本实用工具
        26.1监测磁盘空间
            26.1.1需要的功能
            26.1.2创建脚本
            26.1.3运行脚本
        26.2进行备份
        26.3管理用户账户
            26.3.1需要的功能
            26.3.2创建脚本
        26.4小结
    第27章shell脚本编程进阶
        27.1监测系统统计数据
            27.1.1系统快照报告
            27.1.2系统统计数据报告
        27.2问题跟踪数据库
            27.2.1创建数据库
            27.2.2记录问题
            27.2.3更新问题
            27.2.4查找问题
        27.3小结
附录A  bash命令快速指南
附录B  sed和gawk快速指南

You might also like