免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7517 | 回复: 4
打印 上一主题 下一主题

Shell 技巧 [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-09-01 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-03 18:07 |只看该作者 |倒序浏览
   Shell作为Unix系操作系统当中最有魅力且不可或缺的组件,经过数十载的洗礼不仅没有被淘汰,而且愈加变得成熟稳健,究其原因,大概因为它是个非常稳固的粘合剂,能够把大量功能强大的组件任意配搭,总能很好很快地完成用户的任务。

  本文的一些命令很可能看起来是“雕虫小技”,我们只好仰慕一下Shell大牛了,但是有些细节我会稍加发掘加以说明,遇到有趣的地方希望能博您一笑了。


1.以sudo运行上条命令

  $ sudo !!

  大家应该都知sudo,不解释。但通常出现的情况是,敲完命令执行后报错才发现忘了sudo。这时候,新手用户就会:按上箭头,按左箭头,盯着光标回到开始处,输入sudo,回车;高手用户就淡定多了,按Ctrl-p,按Ctrl-a,输入sudo,回车。

  这里介绍这个是天外飞仙级别的,对,就直接sudo !!。

  当然这几种解决方式效果是完全一样的,只是款不一样,嗯,不解释。

  两个感叹号其实是bash的一个特性,称为事件引用符(event designators)。!!其实相当于!-1,引用前一条命令,当然也可以!-2,!-50。默认情况下bash会在~/.bash_history文件内记录用户执行的最近500条命令,history命令可以显示这些命令。

  关于事件引用符的更多用法可以深入阅读The Definitive Guide to Bash Command Line History。


2.以HTTP方式共享当前文件夹的文件

  $ python -m SimpleHTTPServer

  这命令启动了Python的SimpleHTTPServer模块,考虑到Python在绝大多数的Linux发行版当中都默认安装,所以这个命令很可能是最简单的跨平台传文件的方法。

  命令执行后将在本机8000端口开放HTTP服务,在其他能访问本机的机器的浏览器打开ttp://ip:8000即打开一个目录列表,点击即可下载。


3.在以普通用户打开的vi当中保存一个root用户文件

  :w !sudo tee %

  这题目读起来纠结,其实是很常见的,常常忘记了sudo就直接用vim辑/etc内的文件,(不过也不一定,vi发现保存的文件无法保存时候会提示)等编辑好了,保存时候才发现没权限。曲线方法是先保存个临时文件,退出后再sudo cp回去。不过实际上在vi里面可以直接完成这个过程的,命令就是如此。

  查阅vi的文档(输入:help :w),会提到命令:w!{cmd},让vi执行一个外部命令{cmd},然后把当前缓冲区的内容从stdin传入。

  tee是一个把stdin保存到文件的小工具。

  而%,是vi当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。

  所以执行这个命令,就相当于从vi外部修改了当前编辑的文件,好完工。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-09-01 06:20:00
2 [报告]
发表于 2010-09-03 18:08 |只看该作者
4.切换回上一个目录

  $ cd -
  应该不少人都知道这个,横杆-代表上一个目录的路径。

  实际上cd -就是cd $OLDPWD的简写,bash的固定变量$OLDPWD总保存着之前一个目录的路径。

  相对地,$PWD总保存着当前目录的路径。这些变量在编写shell脚本时候相当有用。


5.替换上一条命令中的一个短语

  $ ^foo^bar^

  又是另外一个事件引用符(event designator),可以把上一条命令当中的foo替换成bar。

  在需要重复运行调试一道长长的命令,需要测试某个参数时候,用这个命令会比较实用;但多数人会首先选择按上箭头提出上道命令,再移动光标去修改某参数,这样更直观,但效率上就不够使用引用符高,而且在脚本中用这个方法可以简化很多。

  这道命令的原始样式应该是这样的:
  !!:s/foo/bar/

  本文一开始介绍过!!,后面的一段大家应该很熟悉,vi、sed的替换操作都是这样的语法。

论坛徽章:
0
3 [报告]
发表于 2010-09-07 15:05 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2010-09-07 15:29 |只看该作者
shell的功能很强大,学习!

论坛徽章:
0
5 [报告]
发表于 2011-08-31 11:51 |只看该作者
闻所未闻的一些牛技巧 膜拜了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP