当前位置:七道奇文章资讯系统安全Linux安全
日期:2011-01-23 03:26:00  来源:本站整理

天外飞仙级别的Linux Shell号令[Linux安全]

赞助商链接



  本文“天外飞仙级别的Linux Shell号令[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

本文编译自commandlinefu.com ( 应当是 Catonmat ) 的系列文章 Top Ten One-Liners from CommandLineFu Explained .作为一个由用户举荐最有效shell号令网站,其记录了数以万计的各色shell号令,此中不乏相当实用和风趣的,本文就要细数当中获投票最高的一些号令,从此中取材并加以细释,但愿读者能从中受益.

引言

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.在以普通用户翻开的VIM当中保存一个ROOT用户文件

:w !sudo tee %

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

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

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

而%,是vim当中一个只读存放器的名字,总保存着当前编辑文件的文件途径.

所以履行这个号令,就相当于从vim外部改正了当前编辑的文件,好竣工.

4.切换回上一个目录

$ cd -

应当不少人都知道这个,横杆-代表上一个目录的途径.

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

相对地,$PWD总保存着当前目录的途径.这些变量在编写shell脚本时刻相当有效.

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

$ ^foo^bar^

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

在需求反复运行调试一道长长的号令,需求测试某个参数时刻,用这个号令会对比实用;但大都人会首先挑选按上箭头提出上道号令,再移动光标去改正某参数,这样更直观,但效率上就不够利用引用符高,并且在脚本顶用这个办法可以简化很多.

这道号令的原始款式应当是这样的:

!!:s/foo/bar/

本文一开始介绍过!!,背面的一段大家应当很熟习,vim、sed的替换操作都是这样的语法.

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

6.快速备份一个文件

$ cp filename{,.bak}

这道号令把filename文件拷贝成filename.bak,大家应当在一些对比复杂的安装教程里面见过这样的用法.其原理就在于bash对大括号的展开操作,filename{,.bak}这一段会被展开成filename filename.bak再传给cp,于是就有了备份的号令了.

大括号在bash里面是一个布列的意义,可以试试这个:

$ echo {a,b,c}{a,b,c}{a,b,c}

将输出三个调集的全布列:

aaa aab aac aba abb abc aca acb acc
baa bab bac bba bbb bbc bca bcb bcc
caa cab cac cba cbb cbc cca ccb ccc

关于shell当中的调集操作,可深化阅读”Set Operations in the Unix Shell

7.免密码SSH登录主机

$ ssh-copy-id remote-machine

这个号令把当前用户的公钥串写入到远程主机的~/.ssh/authorized_keys内,这样下次利用ssh登录的时刻,远程主机就直接按照这串密钥完成身份校验,不再询问密码了.前提是你当前用户有生成了公钥,默许是没有的,先履行ssh-keygen试试吧!

这个号令假如用手工完成,是这样的:

your-machine$ scp ~/.ssh/identity.pub remote-machine:
your-machine$ ssh remote-machine
remote-machine$ cat identity.pub >> ~/.ssh/authorized_keys

假如你想删掉远程主机上的密钥,直接翻开authorized_keys,搜索你的用户名,删除那行,便可.

8.抓取LINUX桌面的视频

$ ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg

我们在一些视频网站上看到别人的3D桌面怎么怎么酷的视频,普通就是这么来的,ffmpeg可以直接解码X11的图形,并转换到呼应输分外式.

ffmpeg的普通用法是,按照一堆参数,输出一个文件,输出文件普通放最后,下面解析下几个参数:

-f x11grab 指定输入范例.因为x11的缓冲区不是普通的视频文件可以侦测格局,必须指定后ffmpeg才知道若何得到输入.

-s wxga 设置抓取区域的大小.wxga是1366*768的尺度说法,也可以换成-s 800×600的写法.

-r 25 设置帧率,即每秒抓取的画面数.

-i :0.0 设置输入源,本地X默许在0.0

-sameq 保持跟输入流一样的图象质量,以用来后期处理.

至于其他ffmpeg的用法,可以参考下面两篇文章:

  1. How to Extract Audio Tracks from YouTube Videos
  2. Converting YouTube Flash Videos to a Better Format with ffmpeg

后记

说Shell是一种编程语言,大概有些尴尬,固然很多人每天都在用Shell,但历来没见它荣登TIOBE编程语言排行榜之类的,可以说毫无名分,因为很多用户没意识到它是一种语言,只当作这是一个可以很好完成任务的工具,基本得理所当然,就仿佛GUI程序的菜单、按钮一样.

掌握Shell,普通可以让任务在数秒钟内完成,这就让Shell跟C、Perl、Python这些语言辨别开来,没人否定后者更能胜任更多的任务,但是他们是在差别的层面上去做,Shell依靠大量的系统组件黏合调用,此后者依靠各种库,各所擅长差别的利用范畴,比方就是,Shell是混凝土,可以很便利地粘合一些建筑组件而成为安定的高楼大厦;但一样是粘合剂,粘玻璃窗、粘书报、粘皮鞋,混凝土是绝对不符合的,Shell并不擅长一些具体操作,比方它连浮点运算都不支持,更别提什么图形运算什么的.但这并无阻碍Shell来帮我们完成很多粗重担务.

Shell的工作方法,大大都入门用户会认为单调难学,而所谓的经典教材也离不开《Advanced Bash-Scripting》、《Bash Guide for Beginners》,但近似本文这样的一些”雕虫小技”因为难登大雅之堂毫不会收录进去.这情形假如象国外一些unix用户对比多的地方会有很好改进,即便是新手,无意看看别人的操作都能”偷师”一手,我编译本系列文章其实也就但愿略微改进一下这个情况.   以上是“天外飞仙级别的Linux Shell号令[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 天外飞仙级别的Linux Shell号令
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .