学习linux shell 下的编程有什么用?
工作或者读书等)需要学习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,或者什么语言基本上都是这个过程。
0条评论