Linux环境编程

出版社:人民邮电出版社
出版日期:2013-5
ISBN:9787115312259
作者:姜林美
页数:320页

章节摘录

版权页:   插图:   Shell也是一种解释性的高级程序设计语言,它允许用户编写由Shell命令组成的程序,这些由Shell命令组成的程序也常被称为命令脚本或脚本程序(简称“脚本”,英文为script)。Shell编程语言具有普通编程语言的很多特点,比如它也有变量、运算符、分支控制结构和循环控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。本书在第3章将详细介绍Shell程序设计。 同Linux本身一样,Shell也有多种不同的版本,列举如下。 (1)Bourne Shell(sh):贝尔实验室开发的,最早被广泛使用和标准化的Shell。这个命名是为了纪念此Shell的发明者Steven Bourne。 (2)Korn Shell(ksh):是对Bourne Shell的发展,在大部分内容上与Bourne Shell兼容。 (3)C Shell(csh):主要在BSD版的UNIX系统中使用,因其语法和C语言相类似而得名。 (4)BASH(bash):GNU的Bourne Again Shell,是Linux操作系统上默认的Shell,也是本书使用的并着重介绍的Shell。BASH与Bourne Shell兼容,许多早期开发出来的Boume Shell程序都可以继续在BASH中运行。 (5)Z Shell(zsh):集成了BASH和Korn Shell的重要特性,同时又增加了自己独有的特性。 如前所述,不论是哪一种Shell,它最主要的功能都是解释使用者在命令行提示符号下输入的命令。Shell对命令行进行语法分析,把整行命令拆分成以空白区(包括制表符、空格和换行)分隔的符号(Token),并分析命令行格式或语法上的正确性。在正确拆分命令行之后,Shell开始寻找命令并执行它们,最后输出执行结果。 Shell有交互和非交互、登录非登录之分。一个交互的登录Shell在/bin/login成功登录之后运行。一个交互的非登录Shell是通过在一个已运行的Shell的命令行调用运行的,如:Sfoinfoash。一般一个非交互的Shell出现在运行Shell脚本的时候,因其他不在命令行上等待用户输入而称之为非交互的Shell。 1.3.3.2 Linux的环境变量和自动运行脚本 Shell除了作为命令解释器外,它的另一个重要作用是可以为用户提供个性化的使用环境。这一般通过在Shell的启动脚本(如profile、.bash_login、.bashrc等)中设置环境变量来完成。 使用环境变量,可以设定终端机类型,定义窗口的特征,定义命令搜寻路径、命令提示符,设定特殊应用程序所需要的变量,例如窗口、文字处理程序和程序语言的链接库等。 环境变量根据作用范围,可以分为系统级的环境变量和用户级的环境变量。系统级的环境变量对登录系统的所有用户均有效,用户级的环境变量仅对当前登录用户有效。

书籍目录

第1章 Linux基础 1 1.1 概述 1 1.1.1 Linux内核和发行版 1 1.1.2 Linux的发展要素 3 1.2 Linux的安装 5 1.2.1 在虚拟机上安装 5 1.2.2 在实体机上安装 12 1.3 Linux操作环境 12 1.3.1 GNOME简介 12 1.3.2 Linux文件系统 17 1.3.3 Shell 22 1.4 小结 24 1.5 习题 25 第2章 LinuxShell命令操作 26 2.1 获取帮助 26 2.1.1 ——help选项 27 2.1.2 man 28 2.1.3 info 29 2.2 通配符、引号、管道和输入输出重定向 29 2.2.1 通配符 29 2.2.2 转义字符 30 2.2.3 引号 30 2.2.4 管道 31 2.2.5 输入、输出重定向 31 2.3 基础操作 33 2.3.1 sudo 33 2.3.2 路径和当前工作目录 33 2.3.3 创建和删除文件 34 2.3.4 创建和删除目录 35 2.3.5 查看用户、日期和输出简单信息 35 2.3.6 命令历史和名称补全 36 2.3.7 ls命令 37 2.3.8 别名 38 2.4 浏览及搜索文件系统 39 2.4.1 find 39 2.4.2 which 40 2.4.3 whereis 40 2.4.4 locate 41 2.5 阅读文本文件 42 2.5.1 cat 42 2.5.2 more和less 42 2.5.3 head和tail 43 2.6 编辑文本文件 43 2.6.1 vi 43 2.6.2 gedit 46 2.7 文件内容操作命令 46 2.7.1 grep 46 2.7.2 sort 48 2.7.3 diff 49 2.7.4 wc 50 2.8 文件的复制、移动、链接和归档 51 2.8.1 cp 51 2.8.2 mv 52 2.8.3 ln 53 2.8.4 tar 53 2.9 文件系统操作 55 2.9.1 挂载——mount 55 2.9.2 卸载——umount 57 2.9.3 查看系统信息 57 2.10 用户管理 58 2.11 文件权限操作 59 2.12 进程相关命令 61 2.12.1 进程和作业 61 2.12.2 查看进程——ps 62 2.12.3 结束进程——kill 64 2.13 网络相关命令 64 2.14 小结 66 2.15 习题 66 第3章 LinuxShell编程 68 3.1 基础知识 68 3.1.1 第一个Shell程序 68 3.1.2 如何运行Shell程序 69 3.1.3 Shell的命令种类 70 3.1.4 Shell执行命令的顺序 71 3.1.5 注释、退出状态和逻辑操作 71 3.1.6 复合命令 72 3.2 Shell变量 73 3.2.1 变量的赋值与引用 73 3.2.2 命令替换 74 3.2.3 变量属性声明 75 3.2.4 数组变量 75 3.2.5 变量引用操作符 77 3.2.6 位置参数和特殊变量 79 3.2.7 read命令 81 3.2.8 export语句 82 3.3 控制结构 83 3.3.1 条件测试 83 3.3.2 if语句 88 3.3.3 case语句 89 3.3.4 while语句 91 3.3.5 until语句 92 3.3.6 for语句 93 3.3.7 break、continue和exit 96 3.4 Shell函数 98 3.5 Shell内部命令 99 3.6 Shell程序调试 101 3.7 小结 103 3.8 习题 103 第4章 LinuxC语言编程基础 105 4.1 gcc编译器 105 4.1.1 概述 105 4.1.2 第一个C程序 106 4.1.3 编译选项 107 4.2 EclipseCDT 111 4.2.1 简介、安装和启动 111 4.2.2 创建项目并运行 112 4.2.3 程序调试方法 116 4.3 C语言基础 118 4.3.1 C语言概述 118 4.3.2 数据类型 119 4.3.3 运算符与表达式 128 4.3.4 C语言的语句 130 4.3.5 控制结构 130 4.3.6 函数 135 4.3.7 内存管理 137 4.3.8 编译预处理 138 4.4 小结 142 4.5 习题 143 第5章 文件 144 5.1 Linux文件I/O概述 144 5.1.1 简介 144 5.1.2 文件和目录 144 5.1.3 文件和设备 145 5.1.4 系统调用和标准函数库 146 5.2 底层文件访问 146 5.2.1 文件描述符 146 5.2.2 文件的创建、打开和关闭 147 5.2.3 文件的读、写 148 5.2.4 文件的定位 150 5.2.5 文件属性的读取 152 5.2.6 文件属性的修改 157 5.3 链接文件的操作 162 5.3.1 创建硬链接 162 5.3.2 创建和读取符号链接 162 5.3.3 删除链接 163 5.4 目录文件的操作 165 5.4.1 目录文件的创建与删除 165 5.4.2 目录文件的打开与关闭 166 5.4.3 目录文件的读取 167 5.5 设备文件 168 5.6 小结 168 5.7 习题 169 第6章 标准I/O库 170 6.1 流和文件指针 170 6.2 缓存 171 6.3 流的打开和关闭 171 6.3.1 打开流 171 6.3.2 关闭流 173 6.4 基于字符和行的I/O 173 6.4.1 字符I/O 173 6.4.2 行I/O 176 6.5 二进制I/O 178 6.5.1 读二进制流 178 6.5.2 写二进制流 179 6.5.3 二进制I/O的常见用法 179 6.6 定位流 181 6.7 格式化I/O 182 6.7.1 格式化输出 182 6.7.2 格式化输入 185 6.8 临时文件 186 6.9 文件流和文件描述符 188 6.10 小结 188 6.11 习题 188 第7章 进程和信号 192 7.1 进程的基本概念 192 7.1.1 什么是进程 192 7.1.2 Linux进程环境 193 7.2 进程的结构 199 7.2.1 进程控制块和进程表 199 7.2.2 进程标识 199 7.2.3 进程的状态 200 7.3 进程控制 202 7.3.1 system函数 202 7.3.2 exec函数 203 7.3.3 fork函数 206 7.3.4 vfork函数 208 7.3.5 进程的终止状态 209 7.3.6 wait和waitpid函数 210 7.4 信号 213 7.4.1 简介 213 7.4.2 捕获信号 214 7.4.3 发送信号 216 7.4.4 信号集 219 7.4.5 sigaction函数 220 7.5 小结 222 7.6 习题 222 第8章 进程间通信 224 8.1 IPC简介 224 8.2 管道 225 8.2.1 pipe函数 225 8.2.2 popen和pcolse函数 227 8.3 命名管道(FIFO) 229 8.4 SysVIPC 232 8.5 信号量 233 8.5.1 简介 233 8.5.2 semget函数 233 8.5.3 semop函数 234 8.5.4 semctl函数 234 8.5.5 信号量的应用 235 8.6 共享内存 238 8.6.1 简介 238 8.6.2 shmget函数 239 8.6.3 shmat和shmdt函数 239 8.6.4 shmctl函数 240 8.6.5 共享内存的应用 240 8.7 消息队列 243 8.7.1 简介 243 8.7.2 msgget函数 244 8.7.3 msgsnd函数 245 8.7.4 msgrcv函数 245 8.7.5 msgctl函数 246 8.7.6 消息队列的应用 246 8.8 小结 248 8.9 习题 249 第9章 Gtk+编程基础 250 9.1 Gtk+简介 250 9.2 glib库 251 9.3 Gtk+程序结构 254 9.3.1 第一个Gtk+程序 254 9.3.2 Gtk+的数据类型 255 9.3.3 初始化Gtk+ 256 9.3.4 创建和显示窗口/构件 256 9.3.5 Gtk+的主循环 257 9.4 响应Gtk+的信号 257 9.4.1 完善第一个Gtk+程序 257 9.4.2 事件和信号 259 9.5 构件的基本概念 264 9.5.1 有窗口构件和无窗口构件 264 9.5.2 敏感性 264 9.5.3 焦点、独占和缺省构件 265 9.5.4 构件状态 265 9.6 构件的排列 266 9.6.1 容器构件 266 9.6.2 尺寸分配 266 9.6.3 GtkWindow 267 9.6.4 GtkBox 268 9.6.5 GtkTable 269 9.7 小结 272 9.8 习题 272 第10章 Gtk+构件 273 10.1 基础构件 273 10.1.1 GtkImage 273 10.1.2 GtkButton 274 10.1.3 GtkEntry 275 10.1.4 GtkLabel 278 10.1.5 GtkCheckButton 280 10.1.6 GtkComboBoxText 282 10.1.7 GtkRadioButton 284 10.1.8 GtkScrolledWindow 287 10.1.9 GtkTextView 287 10.1.10 GtkSeparator 291 10.1.11 GtkFrame 291 10.2 菜单 293 10.3 工具栏 299 10.4 树型构件和列表构件 304 10.4.1 模型 304 10.4.2 视图 306 10.5 对话框 313 10.5.1 GtkMessageDialog 313 10.5.2 GtkFileChooserDialog 314 10.5.3 自定义对话框 316 10.6 小结 318 10.7 习题 318 参考文献 320

编辑推荐

《21世纪高等教育计算机规划教材:Linux环境编程》适合作为高等院校计算机相关专业“Linux环境编程”课程的教材或参考书,也适合具有一定编程基础的读者将其作为学习Linux环境下应用程序开发之入门教程。

作者简介

《21世纪高等教育计算机规划教材:Linux环境编程》介绍Linux环境下Shell编程、C语言系统编程和Gtk+编程三个方面的知识。第1章~3章介绍Linux操作系统的基础知识、Linux常用命令和Shell编程;第4章介绍C语言的基础知识;第5~第8章介绍Linux系统编程,包括文件I/O、标准I/O库、进程和信号以及进程间通信等方面的知识;第9~第10章介绍如何使用Gtk+库进行图形界面编程。《21世纪高等教育计算机规划教材:Linux环境编程》编写的宗旨是引导读者快速入门,所以行文注重循序渐进、逻辑连贯、语言简洁、阐述清晰、例程详尽。


 Linux环境编程下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024