
最 低 价:¥46.60
| Graham Glass毕业于英格兰南安普敦大学,获得了计算机科学和数学的学士学位。他移民到美国后在德州大学达拉斯分校获得了计算机科学的硕士学位。此后他成为一名UNIX/C系统分析师,并大量参与神经网络和并发分布式处理的研究工作。再后来他成了这所大学的教师,讲授包括UNIX、C、汇编语言、编程语言、C++和Smalltalk在内的多门课程。他与别人联手创立了ObjectSpace公司,专门从事于面向对象的培训、咨询和产品开发。他随后又创建了The Mind Electric公司,生产一种名为Glue的Java web服务平台,和一种用.. << 查看详细 |
| 第1章 linux的定义. 1.1 计算机系统1 1.2 硬件2 1.2.1 中央处理器(cpu)2 1.2.2 总线2 1.2.3 随机存储器(ram)3 1.2.4 只读存储器(rom)3 1.2.5 外存储器3 1.2.6 光驱3 1.2.7 显示器3 1.2.8 图形卡3 1.2.9 键盘3 1.2.10 鼠标3 1.2.11 打印机3 1.2.12 磁带3 1.2.13 调制解调器4 1.2.14 网络接口4 1.2.15 其他外围设备4 1.3 操作系统4 1.4 软件4 .1.5 共享资源5 1.6 通信5 1.7 实用程序6 1.8 程序员支持6 1.9 标准7 1.10 linux家族7 1.10.1 unix7 1.10.2 开源软件和自由软件 基金9 1.10.3 linus9 1.11 linux的软件打包10 1.12 linux和unix的基本方法10 1.13 linux的特性11 1.14 本书内容展望12 第2章 安装linux系统 2.1 引言14 2.2 支持linux的硬件15 2.2.1 cpu类型15 2.2.2 总线结构15 2.2.3 内存15 2.2.4 磁盘16 2.2.5 显示器、键盘和鼠标16 2.3 选择linux分发版16 2.3.1 debian17 2.3.2 fedora17 2.3.3 mandrake18 2.3.4 slackware18 2.3.5 suse19 2.3.6 turbolinux19 2.4 选择软件包19 2.4.1 x window系统19 2.4.2 桌面环境20 2.4.3 联网21 2.4.4 office工具22 2.4.5 编程语言和工具22 2.5 设计系统22 2.5.1 运行linux的方式23 2.5.2 磁盘分区23 2.5.3 linux文件系统24 2.5.4 引导加载程序26 2.5.5 引导软盘26 2.6 获得linux27 2.6.1 光盘27 2.6.2 下载28 2.7 安装linux28 2.7.1 获得linux分发版的文档28 2.7.2 引导29 2.7.3 分区工具29 2.7.4 重新设置windows分区的大小30 2.7.5 系统设置30 2.7.6 引导加载程序31 第3章 非程序员使用的gnu实用程序 3.1 获得账户34 3.2 登录34 3.3 shells35 3.4 运行gnu实用程序35 3.5 输入、输出和错误通道36 3.6 获得联机帮助:man36 3.7 特殊字符38 3.7.1 终止进程:control-c39 3.7.2 输入结束:control-d39 3.8 设置密码:passwd39 3.9 登出40 3.10 浏览文件系统41 3.11 打印shell的当前工作目录:pwd41 3.12 绝对路径名和相对路径名42 3.13 创建文件43 3.14 列出目录内容:ls44 3.15 列出文件的内容:cat/more/head/tail45 3.16 重命名文件:mv46 3.17 创建目录:mkdir46 3.18 切换目录:cd47 3.19 复制文件:cp48 3.20 编辑文件:vim49 3.21 删除目录:rmdir49 3.22 删除文件:rm50 3.23 打印文件:lp/lpstat/cancel51 3.24 打印文件:lpr/lpq/lprm52 3.25 计算文件字数:wc54 3.26 文件属性54 3.26.1 文件存储空间54 3.26.2 文件名55 3.26.3 文件修改时间55 3.26.4 文件所有者55 3.26.5 文件组55 3.26.6 文件类型55 3.26.7 文件权限56 3.26.8 硬链接数58 3.27 组58 3.28 列出组:groups58 3.29 改变文件组:chgrp59 3.30 修改文件权限:chmod59 3.31 改变文件所有者:chown61 3.32 改变组:newgrp61 3.33 尾声62 3.34 确定终端类型:tset62 3.35 改变终端的特性:stty64 3.36 编辑文件:vim66 3.36.1 启动vim66 3.36.2 文本输入模式66 3.36.3 命令模式67 3.36.4 内存缓冲区和临时文件68 3.36.5 常见的编辑功能68 3.36.6 光标移动68 3.36.7 删除文本69 3.36.8 替换文本70 3.36.9 粘贴文本70 3.36.10 查找71 3.36.11 查找/替换72 3.36.12 保存/加载文件72 3.36.13 其他操作73 3.36.14 自定义vim73 3.36.15 保存自定义设置74 3.37 编辑文件:emacs74 3.37.1 启动emacs74 3.37.2 emacs命令75 3.37.3 脱困75 3.37.4 获得帮助76 3.37.5 退出emacs76 3.37.6 emacs的模式76 3.37.7 输入文本76 3.37.8 常见编辑功能76 3.37.9 移动光标76 3.37.10 删除、粘贴和撤销77 3.37.11 查找78 3.37.12 查找/替换78 3.37.13 保存/加载文件78 3.37.14 其他操作79 3.38 电子邮件:mail79 3.38.1 发邮件80 3.38.2 读邮件81 3.38.3 联系系统管理员82 第4章 特权用户使用的gnu实用程序 4.1 引言85 4.2 过滤文件:egrep,fgrep,grep,uniq86 4.2.1 过滤模式:egrep/fgrep/grep86 4.2.2 删除重复行:uniq89 4.3 排序文件:sort90 4.4 比较文件:cmp和diff92 4.4.1 测试同一性:cmp92 4.4.2 文件差异:diff93 4.5 查找文件:find94 4.6 归档文件:cpio,tar和dump/restore96 4.6.1 复制文件:cpio96 4.6.2 磁带归档:tar98 4.6.3 增量备份:dump和restore100 4.7 调度命令:crontab和at101 4.7.1 定期执行:crontab102 4.7.2 一次性执行:at103 4.8 可编程的文本处理:gawk105 4.8.1 gawk程序105 4.8.2 访问单个的域106 4.8.3 begin和end106 4.8.4 运算符107 4.8.5 变量107 4.8.6 控制结构107 4.8.7 扩展的正则表达式108 4.8.8 条件范围108 4.8.9 域分隔符108 4.8.10 内建函数109 4.9 硬链接和软链接:ln109 4.10 标识shell:whoami111 4.11 替换用户:su111 4.12 转换文件112 4.12.1 压缩文件:gzip和gunzip112 4.12.2 流编辑:sed113 4.12.3 转换字符:tr117 4.12.4 转换下划线序列:ul118 4.13 查看原始文件内容:od118 4.14 挂接文件系统:mount和umount120 4.15 标识终端:tty120 4.16 测试执行时间:time121 4.17 自己编写程序:perl121 4.17.1 获得perl122 4.17.2 运行perl122 4.17.3 打印文本122 4.17.4 变量、字符串和整数123 4.17.5 数组123 4.17.6 算术和逻辑运算符125 4.17.7 字符串运算符126 4.17.8 比较运算符126 4.17.9 if,while和foreach循环结构126 4.17.10 文件127 4.17.11 函数128 4.17.12 库函数128 4.17.13 命令行参数129 4.17.14 现实世界的例子130 第5章 linux shell 5.1 引言135 5.2 选择shell135 5.3 shell操作136 5.4 可执行文件对内建命令137 5.4.1 显示信息:echo137 5.4.2 切换目录:cd137 5.5 元字符137 5.6 重定向138 5.6.1 输出重定向138 5.6.2 输入重定向139 5.7 文件名替换(通配符)140 5.8 命令替换142 5.9 序列143 5.10 组合命令144 5.11 后台处理144 5.12 重定向后台进程145 5.13 shell程序(脚本)146 5.14 子shell147 5.15 变量148 5.16 引用150 5.17 here文档150 5.18 作业控制151 5.18.1 进程状态:ps151 5.18.2 向进程发送信号:kill154 5.18.3 等待子进程:wait155 5.19 查找命令:$path156 5.20 替换标准实用程序157 5.21 终止和退出码157 5.22 通用的核心内建命令158 5.22.1 eval158 5.22.2 exec159 5.22.3 shift159 5.22.4 umask159 第6章 bourne again shell 6.1 引言164 6.2 启动164 6.3 变量164 6.3.1 简单变量的创建/赋值165 6.3.2 访问简单变量166 6.3.3 列表变量的创建/赋值167 6.3.4 访问列表变量168 6.3.5 建立列表168 6.3.6 摧毁列表169 6.3.7 从标准输入读取变量169 6.3.8 导出变量170 6.3.9 只读变量171 6.3.10 预定义变量172 6.4 命令的快捷方式173 6.4.1 别名174 6.4.2 命令历史174 6.4.3 命令补全176 6.5 代字号替换176 6.6 重定向177 6.7 命令替换178 6.8 算术运算178 6.9 条件表达式179 6.9.1 算术测试179 6.9.2 字符串比较179 6.9.3 面向文件的表达式180 6.10 控制结构180 6.10.1 case..in..esac181 6.10.2 if..then..elif..then..else..fi182 6.10.3 for..do..done183 6.10.4 while/until..do..done184 6.10.5 trap185 6.11 函数186 6.11.1 使用参数186 6.11.2 从函数返回187 6.11.3 访问函数187 6.11.4 递归188 6.11.5 共享函数189 6.12 菜单:select189 6.13 目录访问和目录堆栈190 6.14 作业控制192 6.14.1 指定作业192 6.14.2 bg192 6.14.3 fg193 6.14.4 kill193 6.15 命令行选项193 第7章 korn shell 7.1 引言196 7.2 启动197 7.3 变量198 7.3.1 变量的创建/赋值198 7.3.2 访问变量199 7.3.3 从标准输入读取变量200 7.3.4 导出变量201 7.3.5 只读变量202 7.3.6 预定义的局部变量202 7.3.7 预定义的环境变量203 7.4 别名204 7.4.1 给内建命令指定别名204 7.4.2 删除别名204 7.4.3 预定义的别名205 7.4.4 几个有用的别名205 7.4.5 被跟踪的别名205 7.4.6 共享别名206 7.5 历史207 7.5.1 命令的编号207 7.5.2 命令的存储207 7.5.3 命令重执行207 7.5.4 编辑命令208 7.6 编辑命令209 7.6.1 内建的vi编辑器209 7.6.2 内建的emacs/gmacs编辑器211 7.7 算术运算211 7.7.1 防止元字符的特殊解释212 7.7.2 测试值213 7.8 代字号替换213 7.9 菜单:select214 7.10 函数215 7.10.1 使用参数216 7.10.2 从函数返回216 7.10.3 上下文217 7.10.4 局部变量217 7.10.5 递归217 7.10.6 共享函数218 7.11 作业控制218 7.11.1 jobs219 7.11.2 指定作业219 7.11.3 bg220 7.11.4 fg220 7.11.5 kill220 7.12 增强功能221 7.12.1 重定向221 7.12.2 管道222 7.12.3 命令替换222 7.12.4 变量222 7.12.5 内建命令227 7.13 示范项目:junk232 7.14 命令行选项234 第8章 c shell 8.1 引言238 8.2 启动238 8.3 变量239 8.3.1 简单变量的创建/赋值239 8.3.2 访问简单变量240 8.3.3 列表变量的创建/赋值240 8.3.4 访问列表变量241 8.3.5 建立列表241 8.3.6 预定义局部变量242 8.3.7 环境变量的创建/赋值243 8.3.8 预定义的环境变量243 8.4 表达式243 8.4.1 字符串表达式243 8.4.2 算术表达式244 8.4.3 面向文件的表达式245 8.5 文件名补全246 8.6 命令编辑246 8.7 别名247 8.7.1 删除别名248 8.7.2 有用的别名248.. 8.7.3 共享别名248 8.7.4 带参数的别名248 8.8 历史249 8.8.1 命令的编号249 8.8.2 命令的存储249 8.8.3 读取历史249 8.8.4 命令重执行250 8.8.5 访问历史的某个部分250 8.8.6 访问文件名的某个部分251 8.8.7 历史替换252 8.9 控制结构252 8.9.1 foreach..end253 8.9.2 goto253 8.9.3 if..then..else..endif254 8.9.4 onintr255 8.9.5 repeat255 8.9.6 switch..case..endsw256 8.9.7 while..end257 8.10 示例项目:junk258 8.11 增强功能260 8.11.1 元字符:{}260 8.11.2 文件名替换261 8.11.3 重定向261 8.11.4 管道262 8.11.5 作业控制262 8.11.6 终止登录shell264 8.12 内建命令264 8.12.1 chdir264 8.12.2 glob265 8.12.3 source265 8.13 目录堆栈265 8.14 命令行选项267 第9章 联网与internet 9.1 引言270 9.2 组网270 9.2.1 以太网270 9.2.2 网桥271 9.2.3 路由器271 9.2.4 网关272 9.3 网络互联272 9.3.1 包交换273 9.3.2 ip地址273 9.3.3 命名274 9.3.4 路由274 9.3.5 安全274 9.3.6 端口和常见服务276 9.3.7 网络编程276 9.4 标识网络用户276 9.4.1 列出用户:users277 9.4.2 更详细的用户列表:who和w277 9.4.3 本地主机名:hostname278 9.4.4 个人数据:finger278 9.5 与网络用户通信279 9.5.1 屏蔽通信:mesg279 9.5.2 一次发送一行文本:write279 9.5.3 互动交谈:talk280 9.5.4 把消息发送给所有用户:wall280 9.6 分发数据281 9.6.1 在两台linux或unix主机间复制文件:rcp和scp281 9.6.2 在非linux/unix主机间复制文件:ftp和sftp282 9.7 分布式处理284 9.7.1 远程登录:rlogin和slogin284 9.7.2 执行远程命令:rsh和ssh285 9.7.3 远程连接:telnet285 9.8 internet的演变287 9.8.1 开端——20世纪60年代288 9.8.2 intenet的标准化——20世纪70年代288 9.8.3 重新架构和重新命名internet--20世纪90年代290 9.8.4 web--20世纪90年代293 9.9 使用当今的internet297 9.9.1 url297 9.9.2 web搜索297 9.9.3 查找用户和域298 第10章 linux桌面 10.1 引言300 10.1.1 图形用户界面301 10.1.2 mit301 10.2 x服务器301 10.2.1 屏幕几何学302 10.2.2 安全性和授权302 10.3 桌面环境303 10.3.1 cde304 10.3.2 gnome304 10.3.3 kde304 10.4 窗口管理器305 10.4.1 焦点305 10.4.2 程序启动305 10.4.3 打开和关闭窗口306 10.4.4 选择306 10.5 控件308 10.5.1 菜单308 10.5.2 按钮309 10.5.3 复选框/单选按钮309 10.5.4 滚动条309 10.6 桌面操作310 10.6.1 弹出根菜单310 10.6.2 打开和关闭窗口310 10.6.3 最小化窗口310 10.6.4 最大化窗口311 10.6.5 移动窗口311 10.6.6 重新调整窗口大小311 10.6.7 升起或降低窗口311 10.6.8 弹出窗口菜单311 10.7 客户端应用程序311 10.7.1 xclock311 10.7.2 xterm312 10.8 x客户端的标准参数312 10.8.1 几何学312 10.8.2 前景和背景313 10.8.3 标题313 10.8.4 iconic313 10.9 高级话题313 10.9.1 复制和粘贴313 10.9.2 联网功能314 10.9.3 应用程序资源315 第11章 c编程工具 11.1 c语言318 11.2 c编译器319 11.3 单模块程序319 11.3.1 编译c程序320 11.3.2 修改的程序清单321 11.3.3 运行c程序321 11.3.4 覆盖默认的可执行文件名322 11.4 多模块程序322 11.4.1 可重用的函数322 11.4.2 创建可重用的函数322 11.4.3 分别编译和连接模块324 11.4.4 重用反向函数324 11.5 归档模块:ar325 11.5.1 创建或添加文件326 11.5.2 追加文件326 11.5.3 获得内容表326 11.5.4 删除文件327 11.5.5 抽取文件327 11.5.6 从命令行维护归档327 11.5.7 建立归档索引328 11.5.8 共享库328 11.6 管理依赖性:make328 11.6.1 makefile329 11.6.2 make规则的次序330 11.6.3 运行make330 11.6.4 make规则331 11.6.5 强制编译332 11.6.6 宏332 11.6.7 使用make维护归档333 11.6.8 make的其他功能334 11.7 gnu分析器:gprof334 11.8 调试器:gdb335 11.8.1 准备程序进行调试336 11.8.2 进入调试器336 11.8.3 运行程序337 11.8.4 列出程序338 11.8.5 设置断点339 11.8.6 单步执行代码341 11.8.7 检查变量值341 11.8.8 问题所在342 11.9 移除特殊代码:strip343 第12章 系统编程 12.1 引言346 12.2 错误处理:perror()347 12.3 普通文件的管理349 12.3.1 文件管理基础知识349 12.3.2 第一个例子:reverse350 12.3.3 reverse的工作原理351 12.3.4 reverse.c:程序清单352 12.3.5 打开文件:open()356 12.3.6 读文件:read()357 12.3.7 写文件:write()358 12.3.8 在文件中移动:lseek()359 12.3.9 关闭文件:close()360 12.3.10 删除文件:unlink()360 12.3.11 第二个例子:monitor361 12.3.12 monitor的工作方式362 12.3.13 monitor.c:清单362 12.3.14 获得文件信息:stat()369 12.3.15 读目录信息:opendir(),readdir()和closedir()370 12.3.16 其他各种文件管理系统调用371 12.3.17 改变文件所有者/文件组:chown()371 12.3.18 修改文件权限:chmod()372 12.3.19 复制文件描述符:dup()372 12.3.20 文件描述符操作:fcntl()373 12.3.21 控制设备:ioctl()374 12.3.22 创建硬链接:link()375 12.3.23 创建特殊文件:mknod(),mkdir()和mkfifo()376 12.3.24 清空文件系统缓冲区:sync()376 12.3.25 截短文件:truncate()377 12.4 进程管理377 12.4.1 创建新进程:fork()378 12.4.2 孤儿进程380 12.4.3 终止进程:exit()381 12.4.4 僵尸进程382 12.4.5 等待子进程:wait()382 12.4.6 区分进程:exec383 12.4.7 改变目录:chdir()384 12.4.8 改变优先级:nice()385 12.4.9 访问用户id和组id386 12.4.10 示例程序:后台处理386 12.4.11 重定向387 12.5 信号388 12.5.1 信号类型389 12.5.2 定义的信号389 12.5.3 posix信号389 12.5.4 终端信号390 12.5.5 请求闹钟信号:alarm()390 12.5.6 处理信号:signal()390 12.5.7 保护关键代码,束缚中断处理程序392 12.5.8 发送信号:kill()392 12.5.9 子进程的死亡393 12.5.10 挂起和恢复进程394 12.5.11 进程组和控制终端395 12.6 进程间通信399 12.6.1 管道399 12.6.2 套接字405 第13章 linux内核 13.1 引言425 13.2 内核基本426 13.2.1 内核子系统426 13.2.2 进程和文件427 13.2.3 和内核交流427 13.2.4 系统调用427 13.2.5 用户模式和内核模式428 13.2.6 同步与非同步处理429 13.2.7 对中断的中断431 13.3 文件系统431 13.3.1 磁盘架构431 13.3.2 虚拟文件系统434 13.3.3 i节点434 13.3.4 文件系统的布局436 13.3.5 坏块437 13.3.6 目录438 13.3.7 把路径名转换为i节点号438 13.3.8 挂接文件系统439 13.4 进程管理440 13.4.1 可执行文件440 13.4.2 第一批进程441 13.4.3 内核进程和用户进程441 13.4.4 进程层次结构441 13.4.5 进程状态441 13.4.6 处理内核数据442 13.4.7 任务列表443 13.4.8 调度程序444 13.5 虚拟内存444 13.5.1 页表444 13.5.2 调页445 13.5.3 内存-映射文件445 13.5.4 交换446 13.5.5 分配和收回446 13.5.6 加载可执行文件:execl()/execv()447 13.5.7 复制进程:fork()447 13.6 输入和输出447 13.6.1 i/o对象448 13.6.2 i/o系统调用448 13.6.3 i/o缓冲448 13.6.4 普通文件i/o449 13.6.5 目录文件i/o451 13.6.6 挂接文件系统452 13.6.7 文件名的转换452 13.6.8 特殊文件i/o453 13.7 进程间通信455 13.7.1 信号455 13.7.2 管道457 13.7.3 套接字458 第14章 系统管理 14.1 引言462 14.2 成为超级用户462 14.2.1 使用su462 14.2.2 使用sudo462 14.3 启动linux463 14.3.1 linux内核463 14.3.2 运行级别464 14.3.3 init464 14.3.4 引导脚本464 14.4 停止linux465 14.5 维护文件系统465 14.5.1 文件系统的完整性465 14.5.2 磁盘空间466 14.5.3 创建新的文件系统467 14.5.4 备份文件系统468 14.6 维护用户账户468 14.6.1 密码文件469 14.6.2 组文件470 14.7 安装新软件470 14.8 外部设备471 14.9 网络接口472 14.10 自动执行任务472 14.11 可调优的内核参数473 14.11.1 /proc文件系统473 14.11.2 sysctl实用程序474 14.12 安全性问题474 附录a 正则表达式与系统函数 a.1 正则表达式477 a.1.1 文本477 a.1.2 模式478 a.2 扩展的正则表达式478 a.3 修改的backus-naur符号479 a.4 实用程序和内建的shell命令480 a.5 系统调用和库函数484 附录b 参考文献... |
商品评论(0条)