熟悉Linux系统的同学都知道,它的效率主要体现在命令行上。通过命令行,可以将很多简单的命令自由组合,获得非常强大的功能。命令行也意味着它可以自动化。自动化会让你的工作更有效率,解放大量的人工操作,让你有更多的时间去做更有意义的事情。在这篇文章中,我将分享一些非常实用的小技巧,希望能帮助到大家提高工作效率,学完就可以用上!1、快速清空文件的方法快速清空文件,有N种方法,我比较喜欢下面的一种,因为最短$>access.log是不是很好玩?嗯,我也顺便总结一下,其他最常见的清空文件的方法:>access.logtrue>access.logcat/dev/null>access.logecho-n"">access.logecho>access.logtruncate-s0access为.log的简单说明,:是shell中的内置命令,意思是no-op,大概是空语句的意思,所以使用:表示命令执行后,没有任何输出,而空内容被覆盖到文件中。2.快速生成大文件有时,在Linux上,我们需要一个大文件来测试上传或下载的速度。dd命令可以快速生成一个大文件$ddif=/dev/zeroof=file.imgbs=1Mcount=1024上面的命令生成一个文件file.img,大小为1G。3、安全擦除硬盘数据介绍一种高效、安全的擦除硬盘数据的方法。通过dd命令可以轻松实现:$ddif=/dev/urandomof=/dev/sda使用/dev/urandom生成随机数据,将生成的数据写入sda硬盘,相当于安全擦除硬盘数据。陈老爷子当年,若是知道了这个命令,估计就不会有燕赵门事件了。4、快速制作系统盘Linux下制作系统盘,老毛淘神的工具都比较弱,直接一条命令就可以了:$ddif=ubuntu-server-amd64.isoof=/dev/sdb哈哈,是不是很爽?sdb可以是U盘,也可以是普通硬盘。5.可以查看某个进程的运行时间。大部分同学只会用psaux。其实可以通过-o参数指定只显示特定的字段,结果会更清晰。$ps-p10167-oetimes,etimeELAPSEDELAPSED171205519-19:34:15通过etime获取进程的运行时间,可以直观的看到进程已经运行了19天。同样可以通过-o指定rss只获取进程信息的内存。$ps-p10167-orssRSS21806。动态实时查看日志通过tail命令的-f选项,可以动态监控日志文件的变化,非常有用$tail-ftest.log如果想在出现Failed等信息时立即停止tail监控在日志中,可以通过如下命令实现:$tail-ftest.log|sed'/Failed/q'7.时间戳的快速转换时间操作对于程序员来说是家常便饭。有时我希望能够将时间戳转换为日期和时间。在linux命令行也可以快速转换:$date-d@1234567890+"%Y-%m-%d%H:%M:%S"2009-02-1407:31:30当然,您还可以在命令行上查看当前时间戳$date+%s16175141418。优雅计算程序的运行时间在Linux下,可以通过time命令轻松获取程序的运行时间Time:$time./testreal0m1.003suser0m0.000ssys0m0.000s可以看到程序的运行时间为:1.003秒。细心的同学会看到,real好像不等于user+sys,远大于此。这是怎么回事?首先解释一下这三个参数的含义:real:表示时钟时间,即程序执行到结束所用的时间;user:表示cpu在用户空间运行时消耗的时间;sys:表示在运行过程中,cpu在内核空间消耗的时间;由于user和sys只统计cpu消耗的时间,程序在运行过程中会调用sleep进行阻塞,还可能等待网络或磁盘IO,会消耗大量时间。因此,对于类似的情况,real的值会大于其他两项的总和。另外还会有real比user+sys小很多的场景。这到底是什么?这样比较容易理解。如果程序在多个cpu上并行运行,那么user和sys的统计时间就是多个cpu的时间,实际消耗的时间real很可能小于其他两者的总和。9、在命令行查看ascii码在开发过程中,通常需要查看ascii码,通过linux命令行就可以轻松查看,不用去google或者百度$manascii10。优雅删除乱码文件在Linux系统中,经常会遇到文件名乱码的情况。我想删除它,但我无法通过键盘输入名称。有时候我复制粘贴乱码的名字,终端可能识别不了。我应该怎么办?别着急,让我们看看find是如何优雅地解决问题的。$ls-i138957a.txt138959T.txt132395?.txt$find.-inum132395-execrm{}\;命令中-inum指定文件的inode号,它是系统中每个文件对应的唯一编号,find通过该编号找到后,执行删除操作。11、在Linux上获取你的公网IP地址在办公室或者家庭环境中,我们的虚拟机或者服务器通常配置有一个内网IP地址。我们怎么知道在和外网通信的时候,我们的公网出口IP是不是马?这个在linux上很简单,一条命令搞定$curlip.sb$curlifconfig.me以上两条命令都可以12.如何批量下载网页资源有时候,同事会通过网页分享文件下载链接。在Linux系统中,通过wget命令可以轻松下载,无需编写脚本或爬虫$wget-r-nd-np--accept=pdfhttp://fast.dpdk.org/doc/pdf-guides/#--accept:选项指定资源类型格式pdf13。历史命令使用小技巧分享几个历史命令使用小技巧,可以提高你的工作效率。!!:重复前面的命令;!N:重复历史中的第N条命令,N可以通过历史查看;!pw:重复上一条以pw开头的历史命令,这个很有用,小编用的很频繁;!$:表示最后一个命令的最后一个参数;估计大部分同学都没用过!$,这里举个简单的例子让大家感受一下它的高效用法$vim/root/sniffer/src/main.c$mv!$!$.bak#相当于$mv/root/sniffer/src/main.c/root/sniffer/src/main.c.bak当前工作目录是root,我想把main.c改成main.c.bak。一般情况下,你可能需要敲两次包含main.c的长参数,当然你也可以选择直接复制粘贴。通过使用!$变量,我可以轻松而优雅地重命名它。是黑客吗?14、快速搜索历史命令在Linux下,我们经常会敲很多条命令。如何快速查找并执行历史命令?使用上下键查看历史命令,NoNoNo,可以执行Ctrl+r,然后输入要搜索的命令的关键字,回车执行,效率很高。
