谈谈 Shell 该怎么学

冻结 2011-08-23 06:13:52
加精
大家踊跃的谈,
我踊跃的给分。

见者有分。
...全文
6053 211 打赏 收藏 转发到动态 举报
写回复
用AI写文章
211 条回复
切换为时间正序
请发表友善的回复…
发表回复
titer1 2014-02-28
  • 打赏
  • 举报
回复
引用 19 楼 Vafox 的回复:
chinaunix 这方面的内容比较多啊。 推荐个CU上的精华帖。 [精华] 我的shell水平越来越高了--向shell初学者介绍一些学习经验 三个多月前,我开始学习shell编程,当时对shell编程一窍不通,连最基本的变量赋值都一头雾水。经过三个多月的学习和练习,我的shell已经有了一点水平,至少坛子里的很多问题我都知道怎么解决。我想把我学习过程中的一点心得与诸位菜鸟们分享。 首先看些系统地介绍shell编程的书籍,我的手头只有一本《linux 与unix shell编程指南》,我觉得写得实在不怎么样,但是因为手头只有这一本书,只好凑合着用了。实际上,这本书我只翻了翻(因为觉得写得不好,所以没细看)第18章,介绍shell分支和循环流程的,然后自己写个例子,试验shell流程。会了以后,就把这本书扔到一边了。 然后,我开始在本版潜水,先看了置顶的帖子,发现“十三问”很不错,就copy了下来。然后浏览本版精华区,把我认为有用的文章全部copy下来,预备慢慢看。接着就是细读了“十三问”,把里面的例子在我的环境下面试验。网中人版主水平很高,对shell的研究非常深入透彻,十三问可以解决大部分人对于shell的很多疑问,不管是初学者还是老鸟这篇帖子都很适用。这样,对于shell编程所需要的基本元素我就了解了,可以试着应用了。 接着,在坛子里面继续潜水,不是发问,而是看看别人提出的初级问题,先不看别人的解答,试着自己先解答,然后把自己的方案贴出去,再与别人的方案比对,寻找差距。别人会对你的方案提出修改和批评意见,虚心接受,在斗争中成长。同时,研究awk的用法,因为我知道awk是shell下面功能最强的一个工具。我的学习资料是本版精华区的“Unix awk使用手册”,这个帖子很好,系统的介绍了awk的用法。 再接着,因为熟悉了awk,试着用awk解决一些坛子里面提出的问题,发现awk果然好用,但是也有局限性,所以开始学习sed。我的学习资料是本版精华区的“通用线程 -- sed 实例”。对sed有了初步了解后,开始试着用sed解决一些问题。然后又细读了本版精华区的“通过几个例子看sed的模式空间与保持空间”和“sed 学习笔记(与大家共勉)”。两篇帖子通过例子深入的介绍了sed的高级功能,我试着把几乎每一个例子都看懂了,有的实在太复杂,只好先放放。这样,我的sed水平就不低了。 要注意,正则表达式是shell编程很重要的一个内容,它无所不在。在学习awk和sed的过程中,由于它们和正则表达式结合得非常紧密,因此我也慢慢的熟悉了正则表达式。如果要看资料的话,本版精华有一篇“正则表达式语法”和一篇“正则表达式介绍”都是不错的材料。 至此,由于掌握了shell基本编程、正则表达式和awk、sed的用法,我的shell已经有了一定的水平,接下去是继续提高。提高的方式是继续潜水,给一些问题做出解答,同时研究其它大侠的解决方案。ad版主和r2007版主的水平很高,他们的代码总是十分简洁,研究他们的代码可以得到不少帮助。bjgirl很热心,熟悉的shell命令甚至比几位版主都多,研究她的代码可以学习到一些边边角角的shell命令的用法。还可以研究精华里面一些巧妙的或是复杂的shell例子,比如c1l2d3大侠的五子棋程序等等(那个五子棋让我PF得五体投地)。另外,把潜水过程中发现的一些精巧的解决方案和心得记录下来,比如ad版主提出的如何判断有连续重复字母的单词,r2007版主的洗牌方案等等问题的帖子,写在我的一篇“shell用法心得”笔记里面,有不懂的地方时,把这篇笔记拿出来翻翻,往往可以得到以前类似题目的解决办法。 在三个多月的学习过程中,我印象中只发贴提问过一次,是关于sed命令序列的执行组合、执行条件、执行顺序的问题。遇到其它不懂的地方时,争取自己解决,这也是我从幼儿园开始一贯的学习作风。只有自己思考,才能更快提高,除非你很懂得提问技巧,否则一味地发贴提问并没有太大的帮助。 希望上面介绍的这些经验对初学者有帮助。 --------------------------------- yjchlove 回复于:2004-04-25 14:58:56 我发表我个人的看法: (1)我想学习shell的过程是思维转换的过程: 理由如下: ①我想在做的各位有许多是从windows下来的,由于windows与unix之间的本质的不同让我们理解unix/linux存在相当的困难; ②由于windows与unix/linux在标准的符合上存在相当的差异(虽然两者之间有相同的标准),windows是图形化界面,而unix却是命令行,这是其二; (2)shell自身的理解过程: ①学习shell编程之前无论是grep,sed,还是大名鼎鼎的awk,首先必须理解的是"正则表达式",该表达式理解的好坏直接关系着你以后的水平的提高; ②sed,grep,awk内在的理解问题:其实学习shell编程重要的是理解上面这些工具的执行过程,如:什么是“pattern space”and so on; (3)对unix/linux自身的熟练或理解的过程: shell编程离不开os,所以shell直接依附与你对os的理解: 我举个例子: 现在叫你用shell写查找登陆用户的目录下所以的“*.a”文件,然后把找到的文件放到a.tmp文件中。 其实shell并不难,但是在写该shell之前你必须知道"find"命令的用法,如果你find不会用,那什么都是免谈; 以上是我对shell编程的看法,请专家指教!!!! 谢谢!! ----------------- ChinaUnix首页 > 精华文章 > Shell(共 391 篇)
顶上!好东西反复学
ufent 2013-12-20
  • 打赏
  • 举报
回复
不懂太多,只知道很简单的shell 路过
1263539387 2013-11-02
  • 打赏
  • 举报
回复
没什么难的吧,多用用帮助命令,比如man,help,高手一般是寻求帮助比较厉害的啦,多读读官方文档,不过这英语要求蛮高的,呵呵,自己去探索吧,多编编就会好些的!
雪碧透心凉_ 2013-01-31
  • 打赏
  • 举报
回复
问赵老师就对了。
仙境之桥2046 2013-01-18
  • 打赏
  • 举报
回复
还是要一点点的来啊 切莫贪心,浮躁啊
codesnail 2011-11-16
  • 打赏
  • 举报
回复
什么情况。。。。。。。。。
signforlin 2011-11-15
  • 打赏
  • 举报
回复
装个LINUX,天天敲命令就行了
wanch0302 2011-11-13
  • 打赏
  • 举报
回复
不太懂,路过帮顶一族
卡卡_苏米 2011-11-12
  • 打赏
  • 举报
回复
shell不就是一些基本命令吗,如果拿它来用来编程或者开发好像不是很好吧,毕竟C和JAVA实用性都比它要好~~
baozidian 2011-11-11
  • 打赏
  • 举报
回复
很想学习啊,受用了!
wzz19901226 2011-11-09
  • 打赏
  • 举报
回复
要说shell好像不是在这个版块里谈吧!!!!!
  • 打赏
  • 举报
回复
我也有往这方面的打算
siasjack 2011-10-30
  • 打赏
  • 举报
回复
说说自己的看法吧,其实shell很简单,语法很简单,麻烦的是awk,grep,sed等几个比较复杂的文本处理命令!我把shell的语法看完了,感觉比起C语言来说简单多了!但是真的用起上面的几个命令时就麻烦了!!呵呵
我要变大牛 2011-08-28
  • 打赏
  • 举报
回复
围观 - - |||初学者,渴望知识 = = 。。。
caoyangnianhua2007 2011-08-28
  • 打赏
  • 举报
回复
Unix/Linux Shell
类似于DOS下面的批处理
学习方法也类似吧
有人C基础,加LINUX基础,学习SHELL不难了
你可以搞本有项目的书,自己做几个项目出来,一个月就应该比较熟了
wudihan0905 2011-08-28
  • 打赏
  • 举报
回复
好好学吗
qwer_boo 2011-08-28
  • 打赏
  • 举报
回复
感觉方法不错
NewJu 2011-08-28
  • 打赏
  • 举报
回复
《高级Bash脚本编程指南》 不错 可以看看的
发仔 2011-08-28
  • 打赏
  • 举报
回复
学习学习,Linux shell 很深奥啊
zengzz 2011-08-28
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 vafox 的回复:]
《LINUX与UNIX Shell编程指南》
[/Quote]

这个书确实不错啊
加载更多回复(185)

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧