仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1543|回复: 10
打印 上一主题 下一主题

[其他Linux] 来谈谈:shell典范实例分享

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 10:58:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
RedHatCentOS等等.学习linux不是逛自由市场,选定版本就要静下心来学习.不要今天换版本明天要升级.这样对你没有好处。
怎样远程杀逝世僵历程?
  所谓“僵历程”是指处于就寝中,并且没用的历程。在举行并行盘算时常常会有僵历程发生。因为用top看不到“僵历程”,以是写了以下一个叫做“rkill”的shell文件:
  #!/bin/tcsh
  echo"Inputstartnumberofnode:"
  setN1="___FCKpd___0lt;"
  echo"Inputendnumberofnode:"
  setN2="___FCKpd___0lt;"
  echo"InputtheNAMEofprogram"
  setpname="___FCKpd___0lt;"
  echo"**********************************************************"
  while($N1<=$N2)
  seth=t$N1
  setppid=`rsh$hps-ef|grep$pname|awk{print$2}`
  echo"rsh$hkill$ppid"
  rsh$hkill$ppid
  @N1++
  end
  echo"**********************************************************"
  怎样将一个index文件中的空链接删除?
  在目次/doc/Art_and_Photos/photo/NASA-Astronomy_Picture_of_the_Day中只要无限的几个文件,而archivepix.html文件中却链接了两千多个文件,我们的方针就是要把不存在的文件链接删撤除。
  #!/bin/tcsh-f
  #从以后目次中查找有哪些可用文件。find不撑持正则表达式{}
  settmp=`find.-typef-maxdepth1vuDLinux同盟-name"ap[0-9][0-9][0-9][0-9][0-9][0-9].html"`
  #将查找了局./ap000303.html转换为ap000303.html
  setff1=`echo$tmp|sed-es/./(ap[0-9]{6}.html)/1/g`
  #在文件archivepix.html中查找包括相似ap000303.html的行,vuDLinux同盟并将其导进一时文件ftmp中
  grepap[0-9]{6}.htmlarchivepix.html>ftmp
  #将ftmp中的每行转换为ap000303.html的情势,如许ff1和ff2vuDLinux同盟中的字符串在情势上就是不异的了。
  setff2=`sed-es/.*(ap[0-9]{6}.html).*/1/gftmp`
  rmftmp-f
  #对照变量ff1和ff2的内容,假如一个字符串只存在于ff2中,vuDLinux同盟那末就把文件archivepix.html中含有
  #该字符串的行删撤除。
  foreachf2($ff2)
  echo$f2
  setflag=0
  foreachf1($ff1)
  if($f2==$f1)then
  setflag=1
  endif
  end
  if($flag==0)then
  sed-e/$f2/darchivepix.html>ftmp#此句最关头的地方在于$f2vuDLinux同盟可用于正则表达式。
  mvftmparchivepix.html-f
  endif
  end
  怎样将一个目次中的一切文件链接到网页中?
  只需将以下程序的输入导到一个文件中,再将其拷至网页的响应地位就能够了。这里最关头的是看双引号怎样输入(")。
  #!/bin/tcsh-f
  setdd="/doc/Art_and_Photos/Flash/flash/AGui"
  setffff=`find$dd-typef`
  setn=0
  foreachf($ffff)
  @n++
  echo$f
  echo<ahref="$f"<$n,</a>>>AGui.html
  end
  怎样为一堆文件换名字?
  在吴先生的条记心得中先容了张林波的高着,但那是bash的,并且是以命令行情势给出的。为了便于了解,我将其改写为tcsh格局,并将其置于剧本文件当中,更利于利用。
  #!/bin/tcsh-f#-f申明间接运转该文件,而不会先运转.cshrc举行初始化
  rmtmp_file-f#确保该文件不存在
  foreachfold(*.jpg.*)
  setfnew=`echo$fold|sed-e"s/.jpg.(.*)/-1.jpg/g"`vuDLinux同盟#精髓的地方
  echo"mv$fold$fnew-f">>tmp_file
  end
  chmoda+xtmp_file
  ./tmp_file
  rmtmp_file-f
  在这个剧本文件中,关头是“精髓的地方”。它的意义是:起首将要
123下一页


linux系统的文件布置,etc/,opt/目录的内容等;
逍遥一派 该用户已被删除
沙发
 楼主| 发表于 2015-1-16 12:02:14 | 只看该作者

来谈谈:shell典范实例分享

如果你学不好的话,你在linux中开发的机会就很少,或者说几乎没有,它的优势就消失了,然后随着时间的流逝,你就会全部忘记她;
修正的文件名($fold)经由过程管道(|)传给流编纂器(sed),流编纂器对文件名举行处置,其各项的详细意义为:</P>  setfnew=`echo$fold|sed-e"s/\.jpg\.\(.*\)/-\1.jpg/g"`
  sed-e命令+选项暗示同意多点编纂
  s/re/string/用string交换正则表达式re
  /\.jpg\.\(.*\)/vuDLinux同盟“\.”暗示一个真实的点,“\.jpg\.”代表文件名中的“.jpg.”;vuDLinux同盟“\(.*\)”中的‘.’婚配一个非换行符的字符,‘*’婚配0个或多个“先前”字符,
  它与shell的通配符完整分歧,shell的通配符代表0个或多个“恣意”字符。
  “.*”所代表的内容被设为“标签1”,可在必要的中央用“\1”援用。值得注重
  的是:“.*”决不克不及用“*”来取代,由于“*”将暗示恣意个“\.”。
  /-\1.jpg/“\1”代表“标签1”的内容
  g暗示行内周全交换
  这里另有一个中央必要提示,那就是将`echo...`引发来的不是单引号,而是键盘左上角标有“~`”上的撇号.
  怎样办理网页中字体缩小时呈现堆叠的成绩?
  计划一:合用于单层目次
  #!/bin/tcsh-f
  setdir=`ls.`
  foreachd($dir)
  if(-d$d)then#判别是不是为目次
  cd$d
  echo"cd$d"
  foreachf(*.htm*.html)
  sed-e/[0-9]pt/d$f>ftmp#删除一切包括9pt、12pt等关头词的行
  mvftmp$f-f
  end
  cd..
  endif
  end
  计划二:合用于多层目次
  #!/bin/tcsh-f
  setSearchPath="/doc/Reading/everything/武侠/梁羽生"
  setfiles=`find$SearchPath-typef-name"*.htm*"`
  foreachf($files)
  echo$f
  sed-e/[0-9]pt/d$f>ftmp
  mvftmp$f-f
  end
  怎样将一个目次中一切文件名由年夜写变成小写
  我们以目次tmp为例
  1.进进tmp目次的上一级目次
  2.zip-rtmp.ziptmp/*
  3.mvtmptmp-old(这是为了平安起见,此处也可改成rm-r-ftmp)
  4.unzip-LLtmp.zip
  如许,tmp目次中的文件名就全改成小写了。在确认无误后,可将tmp-old目次删除。
  怎样将一个文件中的内容由年夜写变成小写
  最复杂的做法是在~/.cshrc中设以下命令:
  aliastrtrA-Za-z<\!*>ttttmp;mvttttmp\!*-f
  此处别号必需为tr,其他的就不可,不知为何。当必要对文件举行操纵时,敲以下命令:
  tr[filename]
  该命令在命令行中运转没有任何成绩,可是假如将其放在一个shellscript文件中,然后将该文件的属性改成可实行并实行之的话,你会发明用alias设置的简化命令全体生效。办理举措为:
  sourceshell_file
  此处还特地说一句,sh命令运转的是bash文件。
  怎样使体系每隔约莫3小时主动激活一次声卡
  1.因为我们所用的声卡驱动程序是一个试用版的,在一礼拜之内,它有3小时的无效工夫(尚可承受)。但凌驾一个礼拜今后,无效工夫就只要20分钟了,那是相对没法忍耐的!吴首教为此感应满腔怒火,于2003年9月1日“坐台”终了后,组建攻关小组并亲身挂帅,率领组员王或人经由“极为艰辛”的搏斗,终究霸占了这一困难。夭折的攻关小组在完成了其汗青任务,并开完“非典声卡激活履历总结惩处年夜会”后,当场遣散。茫茫六合间只留下了以下办理计划:
  (1)创建shell剧本文件opensound
  #!/bin/tcsh-f
  while(1)
  setdatesave=`date+%m%d%H%M%Y`
  date082500002003
  /usr/lib/oss/soundoff
  /usr/lib/oss/soundon
  date$datesave
  sleep10800
  end
  (2)将opensound的属性改成一切人都可实行,命令为:
  chmoda+xopensound
  (3)将opensound拷贝至/usr/local/bin
  (4)在/etc/rc.d/rc.local中到场
  /usr/local/bin/op
上一页123下一页


初学阶段只要把上课时候学习过的命令练熟就可以了.单靠学习各种命令而成为高手是不可能的。
逍遥一派 该用户已被删除
板凳
 楼主| 发表于 2015-1-16 12:04:35 | 只看该作者

来谈谈:shell典范实例分享

看不懂man文档的人.在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有.
ensound>&/dev/null&</P>  (5)从头启动盘算机。然后我们就可以永久听到美好的声响啦!!!(此事又一次证实:道高一尺,魔高一丈!)
  2.已经我觉得这一成绩已美满办理,但在利用过程当中却成绩多多,人生最疾苦的事莫过云云。究其缘故原由,都是soundoff惹得祸。为了声响永驻,我将不吝CPU工夫与其试比高。
  #!/bin/tcsh-f
  setdatesave=`date+%m%d%H%M%Y`
  date082500002003
  /usr/lib/oss/soundoff
  /usr/lib/oss/soundon
  date$datesave
  sleep8000#以上是为了在体系启动时激活声卡
  while(1)
  /usr/lib/oss/soundoff>&out
  setflag=`catout`
  rmout-f
  setN=0
  if("$flag"!="")then#flag不是空串申明soundoff实行失利
  while(2)
  @N++
  /usr/lib/oss/soundoff>&out
  setflag=`catout`
  rmout-f
  if("$flag"=="")then
  echo"soundoffsucceed"
  break
  else
  echo"$Nsoundofffailed"
  sleep5
  endif
  end
  endif
  setdatesave=`date+%m%d%H%M%Y`
  date082500002003
  /usr/lib/oss/soundon
  date$datesave
  sleep8000
  end

</p>
上一页123


如果你只是想应付一下操作系统的课程,劝你最好别学,或者说不要指望能用的怎么样。
飘飘悠悠 该用户已被删除
地板
发表于 2015-1-18 18:52:59 | 只看该作者
Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。
深爱那片海 该用户已被删除
5#
发表于 2015-1-27 18:08:48 | 只看该作者
我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。
爱飞 该用户已被删除
6#
发表于 2015-2-5 14:40:56 | 只看该作者
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
透明 该用户已被删除
7#
发表于 2015-2-12 08:59:36 | 只看该作者
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
再现理想 该用户已被删除
8#
发表于 2015-3-3 02:11:54 | 只看该作者
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
只想知道 该用户已被删除
9#
发表于 2015-3-11 09:07:48 | 只看该作者
放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
小魔女 该用户已被删除
10#
发表于 2015-3-18 09:16:04 | 只看该作者
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
变相怪杰 该用户已被删除
11#
发表于 2015-3-25 21:10:46 | 只看该作者
我想即使Linux高手也很难快速准确精练的回答你。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-26 11:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表