程序员为什么都应该学点linux命令?
今天和大家分享下一个我的观点——程序猿都应该学点Linux命令!这也是这两年我做后端开发的切身体会。认识我的人可能都知道,我职业生涯比较"特殊",我毕业后先是干的运维,然后再转的Java开发。 运维的经历苦不堪言,但积累下来的运维相关经验却让我在转开发后受益匪浅,其中一项就是熟悉大部分常用的Linux命令。 我已经记不清多少次只用几行命令搞定别人半天都没搞定的事儿,然后拂袖离去,深藏功与名…… 学好linux命令有啥用?
用linux命令日常提效的例子数不胜数,我说一些对我的明显作用。 快速排查和定位问题
举个很简单的场景,早上去上班,刚坐下突然收到服务器的报警,CPU使用率98%!登陆服务器top命令可以快速定位到是哪个进程或者线程,sar命令定位出问题发生时间点,用cat、grep等命令快速找到出问题时的日志……,分分钟解决问题。当高手泡杯茶的功夫解决问题时,新手还不知所措。
关于性能问题定位的命令,我之前翻译过篇文章10行命令60秒快速定位性能瓶颈有兴趣可以了解下。 数据清洗和统计
数据清洗和统计的方法很多,就比如用excel就可以完成很多类型的统计工作,但针对一些简单的统计,我自己写个shell脚本也能分分钟搞定,尤其是当需要被统计的数据是直接在服务器上时。比如这台机器上服务今天员工报过多少次error。还有从日志中解析出某个接口今天所有请求的平均、最大、最小耗时…… 像这种简单的数据清洗和统计,我用grep、awk也能分分钟完成。
印象比较深的一个经历,有次我们在排查某个问题时,从两个系统中导出了两份用户数据,想对比下每个用户在两个系统里的数据差异,当时数据量还是挺多的。这种问题你会怎么办? 从服务器上拉到本地,然后用excel的vlookup好像也行。当服务器上数据不允许下载呢?
这两份数据如果是数据库里的两个表,很明显就是将两个表直接join起来(当时也有同事提出先将数据入库)。但在linux上用awk命令可以很容易实现这个功能,后来我也把具体方法写了一篇博客awk实现类sql的join操作 。 辅助开发
辅助开发的事就数不胜数了,比如我用wget命令下载文件,用curl命令调试接口,用dig、ping、nc测试网络,用wrk压测接口…… 装X
这个就不多说了,在控制台各种敲,很geek。 如何学习Linux命令
以上说了好多学好linux命令的优点,我相信你肯定按捺不住想要学了,这里我分享一些我的学习方法。 多练习,但没必要太刻意练习
这个也算是老生常谈了,如何东西想要熟练,都需要大量的刻意练习,学习linux命令也不例外。 但我这里给一个忠告,就是没必要一次性花太多的时间去熟练掌握某个linux命令,尤其是有些比较冷门的命令。 很多命令确实很不常用,如果你执着于一次性掌握其所有参数,但长期不使用肯定还是会忘记,到时候还是得重新学,投入产出比太低。
比如我之前学习过tcpdump的使用,当时大部分的参数基本都会用了,但tcpdump在日常工作中使用的太少了,而且也涉及到大量网络的知识,我已经很长时间没有用过了, 已经忘记怎么使用了。 像这种工作中不太涉及,也不常用的命令,了解下就可以了,知道它能干什么足以,等真正有需求的时候再去学。 先知道有什么样的命令,再考虑怎么去用
Linux命令及其参数不能用浩如烟海来描述,但也算是数不胜数了,索性大部分的命令及参数是不会用到的,但也推荐大家稍微记录下。 就比如我今天早上遇到一凌晨OOM的问题,我想去追溯那段时间机器的负载情况,最简单的方式就是用sar命令,方便快捷,虽然我早已忘记具体的参数,但man或者搜索下立马就知道了。
所以我的建议是先知道有什么样的命令,然后再按需求去了解具体命令的使用方式。初学者应该从最简单最常用的命令开始学起,比如下图中的命令。
网上有很多常用命令的参考指南,我之前也写过一篇博客我常用的Linux命令 善用man和搜索引擎
在linux中,所有命令的使用方式都可以通过man命令来查询,包括详细的示意,各种参数的作用都有,都是命令的开发者提供了,肯定保证准确无误,不过缺点是都是英文的,而且有些篇幅较长,对像我这种英文不太好的人不是很友好。
另外,搜索引擎也是了解一个linux如何使用的好工具,网上有各种相关博客,有些入门网站(比如菜鸟教程)也有比较体系化的教学内容,甚至有时候还可以找到你问题的解决方案。这种方式对新手比较友好,但这种方式的缺点是内容质量参差不齐,自己要做好信息的辨别和筛选。
对于我不熟悉的linux命令,我日常是两种方法都使用,比较倾向于第二种,但在第二种无法解决我问题时我会去看man收藏,去寻找更专业的资料。 收藏代码片段
我可能比较偏实用主义,学linux命令大多数情况都是为了解决具体的问题,而我遇到的问题各式各样,使用的方法也不一样,可能时隔好久才会重复出现,等出现时之前用的解决方案早就忘记了。为避免这种问题,我开始用snippetsLab记录一些常用的代码片段,将自己写的稍微复杂且不是很常用的代码片段保存起来,加上描述和标签方便检索,等之后如果再用到可以快速找回。
比如像上文中awk实现join的功能,稍微有点复杂,每次让我重新写也不是写不出来,但还是需要花点时间调试的。 这种与其每次都调,还不如记录下来下次贴过来直接使用。 这两年我已经在snippetsLab中记录了数百条代码片段了。
结语
说真的,虽然我不推荐做运维这个工作,尤其是在国内,但我非常建议大家了解下运维相关的技能,尤其是各种常用的linux命令,不管你是前端还是后端、不过是java还是go程序猿,都应该了解常用的linux命令。
广东省韶关市有一条热闹的步行街,游客堪称韶关版北京路这里是刘小顺的旅行和生活研究所。前些天,我和朋友一起到广东省韶关市游玩,这座粤北城市有着深厚的历史人文底蕴,旅游资源相当丰富,给我们都留下了特别深刻的印象。我们住在韶关市的传统市中
北京花团锦簇迎国庆9月27日在军事博物馆前广场拍摄的命运共同体花坛。新华社记者张晨霖摄国庆节假期日益临近,北京天安门广场的祝福祖国巨型花果篮及长安街沿线14组立体花坛精彩亮相,吸引游人及市民观赏留念
娜涟NALY科学彩妆养肤时代开拓者娜涟自上市以来时刻保持着对流行趋势和年轻潮流文化的敏锐触觉,打造实用性与艺术性兼具的彩妆产品,助力每位女性从自身特点出发,绽放自我的独特之美,从内到外释放美丽光彩,品牌秉承以匠心精
高德地图发布下一代导航产品,3D视界在北京等城市率先落地近日,高德地图正式宣布研发完成导航引擎视界,并基于此推出下一代导航产品高德地图V12。V12版本最大的特点是3D视界视觉体验。用户点击3D图层,地图界面即可全部变为3D立体形态,道
亚洲一线城市排名出炉日本韩国各占3座,中国上榜多少?我国自改革开放后,经济几十年来一直保持高速增长,在2010年就已经超过了日本,成为了世界第二大经济体。不过我国因为面积广阔,人口基数大,目前还属于发展中国家。目前亚洲地区,一共有4
爱上海的理由蒋雨彤张江,魔都科技地标视频加载中大家好,我叫蒋雨彤,来自上海外国语大学附属浦东外国语学校。我非常喜欢上海。我住在张江高科技园区。三十年的发展让张江成为了一个科学地标,堪称浦东改革开放的范例。今年是张江科
打卡北京天文馆探索浩瀚星空奥秘为落实好金桥工程工作,促进科技工作者交流和科学素养提升,更好地服务科技工作者,9月14日下午,北京市西城区科协组织到北京天文馆进行参观学习交流,北京市西城区科协机关事业单位干部企业
北京扩容自行车道,让市民乐在骑中丨新京报社论9月22日为第25个世界无车日,北京市交通委北京市重点站区管委会等单位在北京西站举行绿色出行宣传活动。新京报记者王贵彬摄近日,北京市交通委表示,十四五时期,北京将继续打造特色骑行路
第四届陈介祺艺术节筹备工作加快推进500名研究生携精品力作亮相视频加载中齐鲁网闪电新闻9月23日讯潍坊是金石之都,金石艺术享誉海内外。9月23日,在潍坊十笏园美术馆,工作人员正在加快布展,为即将开幕的第四届陈介祺艺术节做好各项准备工作。据了解
安卓版灵动岛上架GooglePlay,未来将推出更多个性化功能iPhone14Pro上的灵动岛堪称神来之笔,它可将原本的叹号形打孔区域很好地利用起来。也正因此,realme在其海外社区询问用户,是否想要类似苹果iPhone14Pro的灵动岛功
几款音质优秀的高性价比耳机哪一款最值得入手?很多小伙伴都很喜欢听音乐,而要想获得更好更纯净的音质,就要使用耳机。耳机除了音质更好,层次更丰富,而且还不影响别人,可以在公共场合或者任何地方听,不像跳广场舞的大妈,把大喇叭开到很