学习linux shell 下的编程有什么用?

学习linux shell 下的编程有什么用?,第1张

工作或者读书等)需要学习linux的人,需要系统的学习一下,最好有一本好的书 来学习。

linux是世界各地的黑客们写出来的开源系统,对于热爱学习计算机技术(算法、 数据结构、编程、操作系统……)的人来说,linux是一个天堂。

我个人就是完全因为兴趣而捣鼓linux,和工作不沾边。

有几种不同的学习:

a)使用->需要学习linux的一些历史、各种命令、桌面的操作、shell的知识

b)编程->学习linux的接口

c)系统管理->学习一些管理员需要掌握的命令

d)内核、源码->先要学好操作系统原理,然后慢慢钻研。

linux是一个很奇怪的东西,因为你知道的越多,你的问题就越多。

如果你将来用的上,那么学习linux自然有用。

如果用不上,学习linux的作用在于折腾你的精力、开拓你的思维、视野、提高自 学能力。从你付出的机会成本的角度来说,学习linux不合算,因为你应该把有限

的时间用来学习对你更重要的东西,而不是不沾边的linux。

除非把linux当作一种爱好。所谓“衣带渐宽终不悔,为伊消得人憔悴”。自然是

另一番感受。

当你用shell编写个自己能用上的脚本 你就知道有用拉

而且还老有成就感拉

比如你需要搜索全盘文件,把大写名字改为小写,这样的程序用几行shell就能写

,但是无论C还是其它语言都非常麻烦,手工修改就更麻烦。

明白shell程序设计的用处吗,任何一种语言都有他自己的适用领域

《linux就该这么学》免费提供最新Linux技术教程书籍,为开源技术爱好者努力做

得更多更好

嵌入式 Linux学习步骤

1、Linux 基础

安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能

够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务

安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程

基础使用vi编辑文件 使用Emacs编辑文件 使用其他编辑器

2、Shell 编程基础

Shell简介 认识后台程序Bash编程熟悉Linux系统下的编辑环境 熟悉Linux下的各种Shell

熟练进行shell编程熟悉vi基本操作 熟悉Emacs的基本操作 比较不同shell的区别 编写一个

测试服务器是否连通的shell脚本程序 编写一个查看进程是否存在的shell脚本程序 编写一

个带有循环语句的shell脚本程序

3、Linux 下的 C 编程基础

linux C语言环境概述 Gcc使用方法 Gdb调试技术 Autoconf Automake Makefile 代码优化

熟悉Linux系统下的开发环境 熟悉Gcc编译器 熟悉Makefile规则编写Hello,World程序 使用

make命令编译程序 编写带有一个循环的程序 调试一个有问题的程序

4、嵌入式系统开发基础

嵌入式系统概述 交叉编译 配置TFTP服务 配置NFS服务 下载Bootloader和内核 嵌入式

Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程 建立嵌入式系统开发环境制作

cross_gcc工具链 编译并下载U-boot 编译并下载Linux内核 编译并下载Linux应用程序

5、嵌入式系统移植

Linux内核代码 平台相关代码分析 ARM平台介绍 平台移植的关键技术 移植Linux内核到

ARM平台 了解移植的概念 能够移植Linux内核移植Linux26内核到 ARM9开发板

6、嵌入式 Linux 下串口通信

串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的

系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉文件I/O 编写串口通信程序

编写多串口通信程序

7、嵌入式系统中多进程程序设计

Linux系统进程概述 嵌入式系统的进程特点 进程操作 守护进程 相关的系统调用了解Linux

系统中进程的概念 能够编写多进程程序编写多进程程序 编写一个守护进程程序 sleep系统

调用任务管理、同步与通信 Linux任务概述任务调度 管道 信号 共享内存 任务管理 API

了解Linux系统任务管理机制 熟悉进程间通信的几种方式 熟悉嵌入式Linux中的任务间同步

与通信编写一个简单的管道程序实现文件传输 编写一个使用共享内存的程序

线程的基础知识 多线程编程方法 线程应用中的同步问题了解线程的概念 能够编写简单的

多线程程序编写一个多线程程序

8、嵌入式 Linux 网络编程

网络基础知识 嵌入式Linux中TCP/IP网络结构 socket 编程 常用 API函数 分析Ping命令的

实现 基本UDP套接口编程 许可证管理 PPP协议 GPRS 了解嵌入式Linux网络体系结构 能够

进行嵌入式Linux环境下的socket 编程 熟悉UDP协议、PPP协议 熟悉GPRS 使用socket 编写

代理服务器 使用socket 编写路由器 编写许可证服务器 指出TCP和UDP的优缺点 编写一个

web服务器 编写一个运行在 ARM平台的网络播放器

9、GUI 程序开发

GUI基础 嵌入式系统GUI类型 编译QT 进行QT开发熟悉嵌入式系统常用的GUI 能够进行QT编

程使用QT编写“Hello,World”程序 调试一个加入信号/槽的实例 通过重载QWidget 类方

法处理事件

10、Linux 字符设备驱动程序

设备驱动程序基础知识 Linux系统的模块 字符设备驱动分析 fs_operation结构 加载驱动

程序了解设备驱动程序的概念 了解Linux字符设备驱动程序结构 能够编写字符设备驱动程

序编写Skull驱动 编写键盘驱动 编写I/O驱动 分析一个看门狗驱动程序 对比Linux26内核

与24内核中字符设备驱动的不同Linux 块设备驱动程序块设备驱动程序工作原理 典型的块

设备驱动程序分析 块设备的读写请求队列了解Linux块设备驱动程序结构 能够编写简单的

块设备驱动程序比较字符设备与块设备的异同 编写MMC卡驱动程序 分析一个文件系统 对比

Linux26内核与24内核中块设备驱动的不同

11、文件系统

虚拟文件系统 文件系统的建立 ramfs内存文件系统 proc文件系统 devfs 文件系统 MTD技

术简介 MTD块设备初始化 MTD块设备的读写操作了解Linux系统的文件系统 了解嵌入式

Linux的文件系统 了解MTD技术 能够编写简单的文件系统为 ARM9开发板添加 MTD支持 移植

JFFS2文件系统 通过proc文件系统修改操作系统参数 分析romfs 文件系统源代码 创建一个

cramfs 文件系统

《linux shell编程从初学到精通》

第1章 shell脚本编程概述 1

11 linux和shell概述 2

111 linux简介 2

112 shell简介 3

12 shell脚本编程的优势 5

13 第一个shell脚本例子 6

131 shell脚本的基本元素 6

132 执行shell脚本 7

14 本章小结 8

第2章 linux文件系统和文本编辑器 9

21 用户和用户组管理 10

211 用户管理常用命令 10

212 用户组管理常用命令 14

22 文件和目录操作 16

221 文件操作常用命令 17

222 目录操作常用命令 21

223 文件和目录权限管理 25

224 查找文件命令——find 28

23 文本编辑器 31

231 vi编辑器 31

232 gedit编辑器 35

24 本章小结 36

25 上机提议 37

第3章 正则表达式 39

31 正则表达式基础 40

32 正则表达式的扩展 43

33 通配 44

34 grep命令 46

341 grep命令基本用法 47

342 grep和正则表达式结合使用的一组例子 53

343 grep命令族简介 57

35 本章小结 58

36 上机提议 58

第4章 sed命令和awk编程 60

41 sed命令基本用法 61

42 sed编程的一组例子 63

421 sed命令选项的一组例子 63

422 sed文本定位的一组例子 66

423 sed基本编辑命令的一组例子 68

424 sed高级编辑命令的一组例子 76

43 awk编程 79

431 awk编程模型 80

432 awk调用方法 80

44 awk编程的一组例子 81

441 awk模式匹配 81

442 记录和域 82

443 关系和布尔运算符 84

444 表达式 86

445 系统变量 88

446 格式化输出 89

447 内置字符串函数 91

448 向awk脚本传递参数 93

449 条件语句和循环语句 94

4410 数组 95

45 本章小结 99

46 上机提议 99

第5章 文件的排序、合并和分割 101

51 sort命令 102

511 sort命令的基本用法 102

512 sort和awk的联合用法 106

52 uniq命令 108

53 join命令 111

54 cut命令 114

55 paste命令 115

56 split命令 117

57 tr命令 119

58 tar命令 122

59 本章小结 125

510 上机提议 126

第6章 变量和引用 128

61 变量 129

611 变量替换和赋值 129

612 无类型的shell脚本

变量 132

613 环境变量 133

614 位置参数 140

62 引用 141

621 全引用和部分引用 142

622 命令替换 143

623 转义 146

63 本章小结 149

64 上机提议 150

第7章 退出、测试、判断及操作符 152

71 退出状态 153

72 测试 154

721 测试结构 154

722 整数比较运算符 154

723 字符串运算符 156

724 文件操作符 157

725 逻辑运算符 159

73 判断 161

731 简单if结构 162

732 exit命令 163

733 if/else结构 164

734 if/else语句嵌套 166

735 if/elif/else结构 169

736 case结构 172

74 运算符 174

741 算术运算符 175

742 位运算符 176

743 自增自减运算符 178

744 数字常量 178

75 本章小结 180

76 上机提议 180

第8章 循环与结构化命令 182

81 for循环 183

811 列表for循环 183

812 不带列表for循环 187

813 类c风格的for循环 188

82 while循环 191

821 计数器控制的while循环 191

822 结束标记控制的while循环 193

823 标志控制的while循环 195

824 命令行控制的while循环 196

83 until循环 198

84 嵌套循环 199

85 循环控制符 203

851 break循环控制符 203

852 continue循环控制符 206

86 select结构 208

87 本章小结 210

88 上机提议 210

第9章 变量的高级用法 212

91 内部变量 213

92 字符串处理 221

93 有类型变量 227

94 间接变量引用 230

95 bash数学运算 232

951 expr命令 232

952 bc运算器 234

96 本章小结 235

97 上机提议 236

第10章 i/o重定向 238

101 管道 239

1011 管道简介 239

1012 cat和more命令 240

1013 sed命令与管道 242

1014 awk命令与管道 244

102 i/o重定向 246

1021 文件标识符 246

1022 i/o重定向符号及其用法 248

1023 exec命令的用法 252

1024 代码块重定向 255

103 命令行处理 258

1031 命令行处理流程 258

1032 eval命令 261

104 本章小结 264

105 上机提议 264

第11章 linux/unix shell类型与区别 266

111 linux/unix shell起源与分类 267

112 dash简介 268

113 tcsh简介 270

114 korn shell简介 275

115 本章小结 280

第12章 子shell与进程处理 281

121 子shell 282

1211 内建命令 282

1212 圆括号结构 285

122 shell的限制模式 290

123 进程处理 292

1231 进程和作业 294

1232 作业控制 295

1233 信号 299

1234 trap命令 302

124 本章小结 305

125 上机提议 305

第13章 函数 307

131 函数的定义和基本知识 308

132 向函数传递参数 311

133 函数返回值 314

134 函数调用 315

1341 脚本放置多个函数 316

1342 函数相互调用 317

1343 一个函数调用多个函数 319

135 局部变量和全局变量 320

136 函数递归 321

1361 使用局部变量的递归 322

1362 不使用局部变量的递归 323

137 本章小结 325

138 上机提议 326

第14章 别名、列表及数组 328

141 别名 329

142 列表 332

143 数组 334

1431 数组的基本用法 335

1432 数组的特殊用法 339

1433 用数组实现简单的数据结构 343

144 本章小结 349

145 上机提议 349

第15章 一些混杂的主题 352

151 脚本编写风格 353

1511 缩进 353

1512 {}的格式 355

1513 空格和空行的用法 355

1514 判断和循环的编程风格 356

1515 命名规范 357

1516 注释风格 358

152 脚本优化 359

1521 简化脚本 359

1522 保持脚本的灵活性 361

1523 给用户足够的提示 362

153 linux中的特殊命令 364

1531 shift命令 364

1532 getopts命令 367

154 交互式和非交互式shell脚本 369

1541 非交互式shell脚本 369

1542 交互式shell脚本 371

155 /dev文件系统 372

1551 /dev文件系统基础知识 372

1552 /dev/zero伪设备 374

1553 /dev/null伪设备 375

156 /proc文件系统 376

1561 使用/proc/sys优化系统参数 378

1562 查看运行中的进程信息 379

1563 查看文件系统信息 380

1564 查看网络信息 380

157 shell包装 381

158 带颜色的脚本 383

159 linux脚本安全 389

1591 使用shc工具加密shell脚本 390

1592 linux shell脚本编写的病毒 391

1593 linux shell中的木马 392

1510 本章小结 392

1511 上机提议 393

第16章 shell脚本调试技术 395

161 shell脚本调试概述 396

162 shell脚本调试技术 398

1621 使用trap命令 398

1622 使用tee命令 401

1623 调试钩子 403

1624 使用shell选项 404

163 本章小结 409

164 上机提议 409

第17章 bash shell编程范例 412

171 将文本文件转化为html

文件 413

172 查找文本中n个出现频率最高的单词 417

173 伪随机数的产生和应用 419

174 crontab的设置和应用 423

175 使用mysql数据库 426

1751 mysql基础 426

1752 shell脚本使用mysql 427

176 linux服务器性能监控系统 432

1761 ganglia简介及安装 432

1762 提取服务器性能参数名称及数据 435

1763 动态更新服务器监控数据 441

177 本章小结 443

178 上机提议 443

附录 445

附录a posix标准简介 446

附录b 常用ascii码对照表 447

附录c linux信号及其意义 452

附录d bash内建变量索引 453

附录e bash内建命令索引 455

参考文献 458

《Linux命令行与shell脚本编程大全》(Richard Blum)电子书网盘下载免费在线阅读

资源链接:

链接:https://panbaiducom/s/10S-mKk0ME0WotTnrFhMKOg

提取码:c1f9

书名:Linux命令行与shell脚本编程大全

作者:Richard Blum

译者:武海峰

豆瓣评分:84

出版社:人民邮电出版社

出版年份:2012-9

页数:619

内容简介:本书是一本关于Linux 命令行与shell 脚本编程的全面教程。全书分为四部分:第一部分介绍Linuxshell 命令行;第二部分介绍shell 脚本编程基础;第三部分深入探讨shell 脚本编程的高级内容;第四部分介绍如何在现实环境中使用shell 脚本。本书不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。

本书内容全面,语言简练,示例丰富,适合于Linux 系统管理员及Linux 爱好者阅读参考。

作者简介:Richard Blum 系统和网络管理员,已经在IT行业工作了22年多。他管理过UNIX、Linux、Novell和微软服务器,用Linux shell脚本进行过自动化网络监测,并在大多数常见的Linux shell环境中写过脚本。他还是一名网络课程讲师,美国各地的多所大学和学院都采用他的Linux基础课程。除本书外,Richard还著有Professional Linux Programming等书。

Christine Bresnahan 系统管理员,已经在IT行业工作了近30年。目前在印第安纳波利斯市的常春藤技术社区学院担任兼职教授,讲授Linux系统管理、Linux安全和Windows安全等课程。

武海峰 Linux系统工程师,兴趣集中在GNU/Linux和移动互联应用,热衷于开源软件。曾在商业Linux厂商任职,从事移动设备操作系统集成和商业Linux发行版集成工作。

a b c a d a

s d d d x s a

h j s a s h j h

j d f j a s j k j

删除行内与第一列字符重复的字符,shell、sed、awk各写一个。

例如:

a b c a d a结果是

a b c d

h j s a s h j结果是

h j s a s

您已有Linux基础,想要进一步学习服务器架设?还想了解如何维护与管理您的服务器?《Linux命令、编辑器与Shell编程》是您最佳的选择。  目前有关Linux架站的书籍大多只教导读者如何架设服务器,很少针对服务器的维护与管理,以及发生问题时的应对策略加以说明,以至于一旦服务器遭受攻击,眼见的就是一场手忙脚乱。因此,作者先从系统基础以及网络基础讲起,再谈到网络攻击与防火墙防护主机后,才进入服务器的架设。本书共分为四篇:第一篇,服务器搭建前的进修专区,主要介绍架设服务器之前必须具备的基本知识,看完这一篇,不论您的Linux是以何种方式进行Internet连接,都将不成问题;第二篇,主机的简易安全防护措施,这一篇将告诉您如何保护您的主机,以及如何养成良好的操作习惯,使您的主机能够百毒不侵,安然渡过一次次的考验;第三篇,局域网内常见服务器的搭建,介绍内部网络经常使用的远程连接服务(SSH、VNC、XRDP),网络参数设置服务(DHCP、NTP),网络磁盘服务(Samba、NFS、iSCSI),以及代理服务器等服务。其中SSH密钥系统,对于异地备份更是相当有帮助,您绝对不能错过;第四篇,常见因特网服务器的搭建,介绍DNS、WWW、FTP及Mail Server等常见的服务。

1是

2区别大,你会写bash shell不代表你会写c shell,不过我觉得你会写一个shell脚本

另一种你上手也很快,起码读懂应该问题不大。你可以先学bash shell因为用的比较多

而且可移植性强,bash 是shell的一种。

3属于shell,只安装了bash shell就可以运行bash shell脚本,并不是针对某个系统或者发行版本。

shell这种东西可以随意安装的。你用习惯哪个shell,就算初装系统里没有,你也可以单独安装一个

4给你推荐两本书

《Bash shell高级脚本指南》

《实战LINUX+SHELL编程与服务器管》

shell编程,可以说直接反应出你对linux命令掌握的熟练度问题,什么情况下用哪种命令更符合

你的工作需求,怎么简化脚本运行过程,优化脚本让它更有效率。

你在学习过程中必然会接触到sed,awk这种流编辑器。然后你还得学习sed,awk。

渐渐地估计你就该选择一门更强大的编程语言,而不仅限于写shell脚本,比如选perlpython,php

C,或者什么语言基本上都是这个过程。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 学习linux shell 下的编程有什么用?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情