心路历程————LinuxBash

发布时间:2014-10-23 23:28:14
来源:分享查询网

接触计算机至今十余载,算不上什么绝世高手,但磕磕绊绊也算还在这路上奔跑着。 细细回忆,故事挺多,心潮澎湃就有了写下来的想法。 一则养成记录、总结的习惯,自读书来不比人笨,但疏于记录与总结(解题方法,错题这类) 二来锻炼一下文笔,工作以后发现写东西不烂,还有钱拿,这种级别的文章写出来应该有人看的吧。 最后也许多年以后再看起来也会觉得很有意思呢? 一、Windows时代的CMD 2002前的386DOS时代 第零个生存的命令:cd 从马尾到福州上小学以后,学校比较前卫,有进行信息化教育,开设计算机课。 身为一个从“农村”来的孩子,第一次见到这东西,是又怕动它,又想动它。 这里只扯CLI相关的,其他经历后续撰文再表。 那会只有老师的电脑是windows 95,GUI,屌的不行。 所以我们每个学生必须:硬着头皮上CLI,也就是那一堆头大的命令。 HCI从最早的拨弄开关、到打孔纸带、再到键盘的CLI、鼠标的GUI、语音的Siri、体感的Kinect。 现在回头看CLI还是很有用,再怎么苦逼难学也不至于去拨开关和打纸带孔的地步。 这个硬着头皮上,还是要一些代价的,第一堂课开始没多久我就被罚不准动电脑。 原因很简单,我没像其他同学那样课前做好“预习”,也就是把每一步都记在一张纸上, 到上课的时候按这个流程逐步操作:开机顺序,输入命令顺序,以及何时要等待老师下一步指挥。 我想,这多不爽啊,怎么也要按自己的style来搞吧,结果就是搞出问题。 这让刚毕业几年来到这里带小屁孩的女老师的脸更臭了,把我说的一无是处,然后干巴巴的看别人操作了一节课。 我就暗下决心,屌什么屌啊,不就是个电脑嘛,看我以后玩转它! 那会就是只要知道cd命令打开指定路径,然后找到你的程序执行就好了。 第一个有用的命令:copy 家里在2001年的时候,老娘觉得这计算机以后会是一个趋势,1000块买了个二手386机。 1000块什么概念,01年福州的房价很像才2000多软妹币吧。一年平均每平方米涨了119元算是房价飙升。 所以还是很感激老妈独具慧眼,做了一笔重要投资。 当然当时搞的IBM PC是因为它最便宜了,那会Apple II的天价是不可能考虑的。 对这个东西我是爱不释手,虽然跑的是DOS,带了一个WPS也算是让我见识了一下伪“GUI”。 有了自己的计算机,就可以不用墨守陈规的按学校的规矩操作了,所以我很快就发现了一个报复老师的命令:copy 那会学校机房里面有很多游戏,RO(雪人),scorched earth(焦土),PONG(打砖块),worms(百战天虫) 这些东西如果你要拿回去玩,是要找臭屁的老师用软盘去拷的,win 95就直接拖到“A盘(软驱默认盘符)”就行了 并不是每个人去找臭屁老师拷贝都能成的,比如我。 后来从同学那借了一张从老师那拷的软盘回来玩,结果很惊奇的发现用copy命令复制一份里面的东西就行了! 开心的不行唉(很白痴有木有,那会对程序没概念的) 而且其实是不用放在软盘上玩的,我拷出来也能玩(继续白痴吧。。。) 结果嘛,臭屁的老师突然发现去求她拷东西的孩子少了,为啥?不就一个copy命令嘛,我也会! 2002-2005的个人电脑普及 第二个神奇的命令:win 家里最早添的计算机怎么也是一台二手386,磁盘小,内存少,机器还会嘎嘎响。后来折价卖掉了,贱卖真的是贱卖。 02年小升初,走了很大一段插曲和坎坷,但最后老妈还是应允,能上这所初中就赏一台新电脑。 这台电脑价格5000。。。老妈以身作则的言而有信,一直潜移默化的影响我。 电脑装的是windows 98,启动默认是DOS,所以这次见到了一个很酷的命令:win 输入之后你以为你赢了,其实你没有,win 98的GUI是噩梦的开始,新时代产物:蓝屏诞生了 但不得不说这是个神奇的命令,神奇在于,你的GUI和CLI切换是那样的不自然,也造就了这个命令的转瞬即逝。 第三个破解的命令:debug 初中照样有计算机课,不爽的是机器上有远程监控和还原卡。 远程监控比较好搞,启动的时候选对时机打开任务管理器,biu的一下杀掉就行了。 老师那边最多看你不上线,会说远程显示不了的同学和旁边的一起看一下。 后来自己一炫耀,这事情被太多同学知道就不好使了,老师会走过来盯着你重启机器,不让你杀进程。 当然后面发现另一种bug可以搞定这货,但得在主控机控制你之前,有了上次的经验,这个就没让太多同学知道。 还原卡比较恶心,经常是一节课好不容从FTP或者外网拖了一个CS(counter-strike),装好,没玩几把就下课了。 所以就想方设法想破这货,因为它是硬件相关,所以我很自然的想到了老朋友CLI。 只要能进BIOS,就能关掉这个设备,但是BIOS要密码,清除这个密码最笨的方法是主板放电。 这老师肯定会防范的,防范的方法就是机箱上锁。 所以只能从软件级别入手了,大概能找到的东西,现在大多没了踪影 http://kipirvine.com/asm/debug/Debug_Tutorial.pdf 还有一些CMOS、BIOS相关的资料,《电脑爱好者》、《电脑报》、《黑客防线》这类书上看的 最后还真被我破解了: debug -o 70 10 -o 71 10 经过上述操作(不同的CMOS芯片输入的数值略有差别)如此一来,进入BIOS设置就不需要密码 pia一下把还原卡关了,然后进系统把远程监控给卸了,再进BIOS把还原卡开起来 嗯,作为贪玩的我呢,是肯定不会忘记同时把CS也拷一份在机器里一起做备份的! 老师这下纳闷了,怎么开机了那么久,远程监控软件还没启动? 而且游戏永远存在于机房,删也删不光的感觉。 当然老师是充分怀疑我的,但是看我那么傻逼的样子,又拿不到什么证据,证明是我干的。 就这样一直相安无事,老师也就睁一只闭一只眼 直到有一次一个同学(少数几个知道的啊。。。)在关了还原卡的机器上A站,导致机房中毒。。。 事情弄的很大,因为那会整个学校的出口带宽就那2M,办公网络也直接受影响了! 在年段长(这个好像是福建才有的概念?我问了同事都不知道啥叫:段长)的感化下,我算是招供了。 段长人很好(叫商平,我现在还记得),对这个事情既往不咎,只是嘱咐我心思要放在正道上之类的。 这件事之后我也参加了NOI的培训,然后就是一堆“公益”事业,后续另撰文再表。 2005-2008的脚本小子 到了高一,丫的居然还有计算机课,教的一些超级基础的东西(Office使用,网页制作,FoxPro) 而且!还是初中的那个老师。。。还要参加一个叫会考的考试(确定大家都会考?) 不过这次我比较老实,自己搞定了就一边打游戏去了,同学要是有问题也帮老师解答一下 当然当时的机房让我发现了更大的天地————网络世界 第四个网络的命令:ping、netstat、tracert、nslookup 那会有个计算机实习老师,叫蔡宗明,大概也属于那种不安分守己的人,我们聊的很投机 他带我初探了网络世界,嗯,神秘而庞大的网络世界啊。。。 还给我一些所谓抗遗忘记忆法的东西,里面很多观点还是很受用的(其实后来发现就是艾宾浩斯的记忆曲线) ping可以检查网络,也可以ping死机器(死亡之ping,大意是发送的数据包非常大,导致windows的接收缓冲区爆掉) ping -s 65535 主机ip (当然,现在的系统肯定已经修复这个漏洞了。。。) netstat告诉你机器上开了哪些窗户(端口),哪些窗户(端口)是不安全的(状态异常) netstat -an 输出大致如下: Active Internet connections Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)     tcp4       0      0  192.168.0.10.62105     74.125.128.17.443      SYN_SENT    tcp4       0      0  192.168.0.10.62100     74.125.128.18.443      SYN_SENT    tcp4       0      0  192.168.0.10.62101     74.125.235.22.443      SYN_SENT    tcp4       0      0  192.168.0.10.62098     173.194.127.112.443    ESTABLISHED 那么这些命令的存在是干啥用的呢?装酷嘛?有一点,更关键是:排查问题! 就在这里顺带提一下TCP SYN Flood攻击吧 原理大概是:利用的是TCP三次握手中第二次SYN ACK之后,客户端不再答复ACK,此时会导致服务器存在大量的半开链接 这样后面正常的客户请求就会被拒绝(denial of service) http://en.wikipedia.org/wiki/SYN_flood 管理员在这里通过netstat就可以看出 state 一列,有大量的:SYN-RECEIVED 解决方法就是放低半开连接数和SYN-RECEIVED的超时时间。 tracert用来跟踪数据包的每一跳 tracert www.google.com 这个来看你的数据包是如何跳转的(比如有没有被block——被发送了RST包) 想想看,网络这种如果是汇集在几个出口节点才出去的,是很明显的树形结构 那么分布在各地的叶子节点肯定是有公共祖先的(LCA Least Common Ancestors,嗯,btw,这类题也是面试喜欢问的!) 于是乎,有蛋疼的人利用分布式的tracert,定位出了可疑的墙的几个位置 是github上的一个python project https://github.com/mothran/mongol nslookup用来反查dns信息 输出大致如下: nslookup www.google.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: www.google.com Address: 74.125.128.147 这个又有什么用呢?有一种攻击叫做钓鱼攻击(Phishing,不是Fishing哈。。。) http://en.wikipedia.org/wiki/Phishing 大概就是,攻击者模拟一个假的淘宝,支付宝这类网站,诱使受害者点击,套取密码的过程 主要是通过一些比较弱智的域名,弄的和真的很像,通过邮件发送。 这怎么也都不显得高大上吧,渐渐的被邮箱越来越强大的反垃圾邮件。 这里多扯一下反垃圾邮件吧,bayes公式的绝妙应用,有一个keypoint:允许漏判,不允许误判(打住,再扯又远了。。。) 由此看来呢,发邮件这招似乎不好使了,于是就有了:DNS hijacking http://en.wikipedia.org/wiki/DNS_hijacking DNS可以说是最早的分布式系统啦 但也正是因为它最早,所以它把网络世界想的太安全太安全(有一句名言:网络本来是安全的,就是有了研究安全的人才使得它不安全) 它是不保证数据一致性的,而且任何一台机器都可以提供所谓的DNS服务,而不能确保它提供的信息是准确的 也就是说,www.taobao.com原先是指向 1.1.1.1 的,可能被欺骗到2.2.2.2上! 而你的浏览器显示的域名还是丝毫没有变化的。。。 现在很多电信运营商弹广告神马的就是在干这个劫持! 还有伟大的墙。。。早期对部分网站的屏蔽也是这个原理(但基本都可以通过改本机上的host文件绕过,基本无用) 当然最近还有一种针对家庭路由器的攻击,修改其中的DNS,也算是万变不离其宗吧。 所以nslookup的作用就体现在这里了,你可以手动查询信任的DNS服务器,对比返回的结果,识破骗局。 第五个入侵的命令:net、telnet 第六个防御的命令:attrib、arp 二、初识Linux Shell 2008-2009 入侵的艺术,网络很安全? 第七个窃取密码的“命令”:bt3 第八个知己知彼的命令:tcpdump Be conservative in what you do, be liberal in what you accept from others 2010-2013 Shell的威力,大数据时代! 第九个自动化的命令:fg bg jobs nohup kill ps top mpstat 管道 流 三、进阶Linux Shell 跋 在路上 第十个 并分十全十美的UNIX哲学 未完待续。。。靠,感觉自己挖了好大一个坑,慢慢填了 今天先填到这里,整理一下Hadoop的环境搭建去!

返回顶部
查看电脑版