最牛b的linuxshell命令系列连载

最牛b的linuxshell命令系列连载

ID:32427559

大小:94.00 KB

页数:19页

时间:2019-02-04

最牛b的linuxshell命令系列连载_第1页
最牛b的linuxshell命令系列连载_第2页
最牛b的linuxshell命令系列连载_第3页
最牛b的linuxshell命令系列连载_第4页
最牛b的linuxshell命令系列连载_第5页
资源描述:

《最牛b的linuxshell命令系列连载》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、最牛B的LinuxShell命令系列连载(一)本文编译自commandlinefu.com的系列文章TopTenOne-LinersfromCommandLineFuExplained。作为一个由用户推荐最有用shell命令的网站,其记录了数以万计的各色shell命令,其中不乏相当实用和有趣的,本文就要细数当中获投票最高的一些命令,从其中取材并加以细释,希望读者能从中受益。引言Shell作为Unix系操作系统当中最有魅力且不可或缺的组件,经过数十载的洗礼不仅没有被淘汰,而且愈加变得成熟稳健,究其原

2、因,大概因为它是个非常稳固的粘合剂,能够把大量功能强大的组件任意配搭,总能很好很快地完成用户的任务。本文的一些命令很可能看起来是“雕虫小技”,我们只好仰慕一下Shell大牛了,但是有些细节我会稍加发掘加以说明,遇到有趣的地方希望能博您一笑了。1.以sudo运行上条命令1$sudo!!大家应该都知sudo,不解释。但通常出现的情况是,敲完命令执行后报错才发现忘了sudo。这时候,新手用户就会:按上箭头,按左箭头,盯着光标回到开始处,输入sudo,回车;高手用户就蛋定多了,按Ctrl-p,按Ctrl-

3、a,输入sudo,回车。这里介绍这个是天外飞仙级别的,对,就直接sudo!!。当然这几种解决方式效果是完全一样的,只是款不一样,嗯,不解释。两个感叹号其实是bash的一个特性,称为事件引用符(eventdesignators)。!!其实相当于!-1,引用前一条命令,当然也可以!-2,!-50。默认情况下bash会在~/.bash_history文件内记录用户执行的最近500条命令,history命令可以显示这些命令。关于事件引用符的更多用法可以深入阅读TheDefinitiveGuidetoBas

4、hCommandLineHistory。2.以HTTP方式共享当前文件夹的文件1$python-mSimpleHTTPServer这命令启动了Python的SimpleHTTPServer模块,考虑到Python在绝大多数的Linux发行版当中都默认安装,所以这个命令很可能是最简单的跨平台传文件的方法。命令执行后将在本机8000端口开放HTTP服务,在其他能访问本机的机器的浏览器打开ttp://ip:8000即打开一个目录列表,点击即可下载。3.在以普通用户打开的vim当中保存一个root用户文件

5、1:w!sudotee%这题目读起来纠结,其实是很常见的,常常忘记了sudo就直接用vim编辑/etc内的文件,(不过也不一定,vim发现保存的文件无法保存时候会提示)等编辑好了,保存时候才发现没权限。曲线方法是先保存个临时文件,退出后再sudocp回去。不过实际上在vim里面可以直接完成这个过程的,命令就是如此。查阅vim的文档(输入:help:w),会提到命令:w!{cmd},让vim执行一个外部命令{cmd},然后把当前缓冲区的内容从stdin传入。tee是一个把stdin保存到文件的小工具

6、。而%,是vim当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。所以执行这个命令,就相当于从vim外部修改了当前编辑的文件,好完工。4.切换回上一个目录1$cd-应该不少人都知道这个,横杆-代表上一个目录的路径。实际上cd-就是cd$OLDPWD的简写,bash的固定变量$OLDPWD总保存着之前一个目录的路径。相对地,$PWD总保存着当前目录的路径。这些变量在编写shell脚本时候相当有用。5.替换上一条命令中的一个短语1$^foo^bar^又是另外一个事件引用符(eventdesig

7、nator),可以把上一条命令当中的foo替换成bar。在需要重复运行调试一道长长的命令,需要测试某个参数时候,用这个命令会比较实用;但多数人会首先选择按上箭头提出上道命令,再移动光标去修改某参数,这样更直观,但效率上就不够使用引用符高,而且在脚本中用这个方法可以简化很多。这道命令的原始样式应该是这样的:1!!:s/foo/bar/本文一开始介绍过!!,后面的一段大家应该很熟悉,vim、sed的替换操作都是这样的语法。关于事件引用符的更多用法可以深入阅读TheDefinitiveGuidetoBa

8、shCommandLineHistory6.快速备份一个文件1$cpfilename{,.bak}这道命令把filename文件拷贝成filename.bak,大家应该在一些比较复杂的安装教程里面见过这样的用法。其原理就在于bash对大括号的展开操作,filename{,.bak}这一段会被展开成filenamefilename.bak再传给cp,于是就有了备份的命令了。大括号在bash里面是一个排列的意义,可以试试这个:1$echo{a,b,c}{a,b,c}{a,b,c}将输出

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。