当前位置: 首页 > 科技观察

Linux小技巧大大提高你的工作效率

时间:2023-03-12 04:18:15 科技观察

前言Linux中的一些小技巧可以大大提高你的工作效率。本文将详细介绍那些提高效率或简短但有效的Linux技巧。命令编辑和光标移动这里有很多快捷键可以帮助我们修改自己的命令。接下来,用cursor这个词来代替cursor的位置。删除从头到光标处的命令文本ctrl+u例如:cd/proc/tty;ls-alcursor如果此时使用ctrl+u快捷键,那么不用长按退格键,命令就会被清除。ctrl+k从光标处删除命令文本至末尾,例如:cd/proc/ttycursor;ls-al如果此时使用ctrl+k快捷键,会删除光标处从头到尾的命令文本。还有其他的操作,不再举例,例如:ctrl+a:将光标移动到命令的开头ctrl+e:将光标移动到命令的结尾altf:将光标向前移动一个单词altb:将光标移回一个单词ctrlw:删除一个单词(以空格分隔的字符串)快速执行历史命令我们都知道history记录了执行过的历史命令,使用!+历史命令前的数字可以快速执行历史命令。部分历史命令查看历史会显示大量的历史命令,而fc-l只会显示其中的一部分。实时查看日志$tail-ffilename.logtail-f加上文件名可以实时显示日志文件的内容。当然使用less命令查看文件内容,使用shift+f键也可以达到类似的效果。如何通过查看磁盘或内存状态知道当前磁盘是否已满?$df-h/dev/sda144.6G10M4.4G1%/tmp/dev/sda11454M366M61M86%/boot/dev/sda1555G18G35G35%/home/dev/sda1256M31M226M12%/boot/efitmpfs786M64K786M1%/run/user/1000使用df命令快速查看各个挂载路径的磁盘使用情况。当前目录下各个子目录占用的空间如果你已经知道home目录占用空间大,想知道home目录下各个目录的占用情况:$du-h--max-depth=1/home(或者-d1)18G/home/hyb16K/home/lost+found18G/home/这里指定目录深度,否则会递归统计子目录占用的空间,大家可以自己试试。当前内存使用$free-htotalusedfreesharedbuff/cacheavailableMem:7.7G3.5G452M345M3.7G3.5GSwap:7.6G0B7.6G通过free的结果很容易看出当前总内存和剩余availablememory等待多少。使用-h参数。不知道大家有没有注意到我们在之前的命令中使用了-h参数。它的作用是让结果以人类可读的方式呈现,所以我们看到它呈现的单位是G,M等。如果不使用-h参数,可以自己试试看结果会。通过名字查找进程id如果想快速直接的找到进程id,可以使用:$pgrephello22692或者:$pidofhello22692其中hello是进程名。按名称杀死进程一般我们可以使用kill -9pid来杀死一个进程,但是需要先找到该进程的进程id。其实我们也可以通过名称直接杀掉进程,例如:$killallhello或者:$pkillhello查看进程的运行时间可以使用如下命令查看进程的运行时间:$ps-p24525-olstart,etimeSTARTEDELAPSEDSAtMar2320:52:08201902:45其中24525是您要检查的进程的进程ID。快速目录切换cd- 回到上一级目录cd回到用户家目录执行多条命令我们知道可以执行多条命令,用分号隔开,例如:$cd/temp/log/;rm-rf*但是如果当前目录是/目录,而/temp/log目录不存在,那么就会出现激动人心的一幕:bash:cd:/temp/log:Nosuchfileordirectory(突然沉默)因为;命令,但由于前一个命令失败,后续命令将不会执行。所以cd执行失败后,rm-rf*会继续执行。既然是在/目录下,结果可想而知。那么你认为出现这种事故是因为不了解rf-rf*的强大功能造成的吗?如果解决了?很简单,使用&&,例如:$cd/temp/log/&&rm-rf*这样会保证上一条命令执行成功后,下一条才会执行。查看压缩后的日志文件有时候日志文件是压缩过的,能不能偷懒不解压查看呢?当然可以。例如:$zcattest.gztestlog或:$zlesstest.gztestlog删除乱码文件无论是意外创建的还是程序异常创建的,都不可避免地会出现一些名字奇怪或乱码的文件。如何删除它们?参考《linux中删除特殊名称文件的多种方式》。清空文件内容比如有一个大文件,想快速删除,或者不想删除,但是又想清空内容:>filename会同时记录日志和将其打印到控制台。在执行shell脚本的时候,日志经常会被重定向,但是在这种情况下,控制台是不打印的,如何记录日志文件并将日志输出到控制台呢?$./test.sh|teetest.log终止和恢复进程执行我们使用ctrl+z来暂停一个进程执行也可以用fg来恢复。比如我们使用$catfilename,当发现文件内容可能很多时,使用ctrl+z暂停程序,如果想从上一个地方继续执行,只需要使用fg命令恢复执行。或者使用bg让进程在后台运行。计算程序运行时间我们可能会写一些小程序,想知道它的运行时间。其实我们可以使用time命令来帮助我们计算,例如:$time./fibo30the30结果是832040real0m0。088suser0m0.084ssys0m0.004s显示系统时间、用户时间和实际使用的总时间。查看内存占用前10的进程$ps-aux|sort-k4nr|head-n10快速找到你需要的命令我们都知道man可以查看命令的帮助手册,但是如果我们想要某个功能却不知道'知道使用哪一个命令呢?别担心,您仍然可以使用man:$man-k"copyfiles"cp(1)-复制文件和目录cpio(1)-将文件复制到存档和从存档中复制文件git-checkout-index(1)-复制文件从索引到工作树gvfs-copy(1)-复制文件gvfs-move(1)-复制文件install(1)-复制文件并设置属性使用-k参数显示与复制文件相关的帮助手册。命令行下的复制粘贴我们知道,在命令行下,copy不能再ctrl+c了,因为它意味着终止当前进程,而命令行下的复制粘贴需要用到如下快捷键:ctrl+insertshift+insertsearch包含某个字符串的文件比如在当前目录下查找包含测试字符串的文件:$grep-rn"test"test2.txt:1:test,可以找到该文件所在行其中字符串是.卡顿程序运行时,终端可能会输出大量日志。如果想简单查看但又不想记录log文件,可以使用ctrl+s键冻结屏幕,这样log就不会继续输出了。如果要恢复,用ctrl+q退出冻结。不用编辑器编辑文本文件如果有些系统连基本的vi编辑器都没有,可以用下面的方法编辑内容:$cat>file.txtsomewords(ctrl+d)编辑完后,ctrl+d保存。查看elf文件可以查看elf文件的头信息例如:$readelf-hfilename我们可以在显示的结果中看到运行平台、elf文件类型、字节序等。检查库是否包含接口$nmfilename|grepinterface这里是从文件filename中检查接口interface是否包含,前提是文件包含符号表。更多相关内容请参考《linux常用命令-开发调试篇》过滤查看日志。例如,如果要查看包含test关键字的日志行:$sed-n"/test/p"logfile将只显示那些包含test行的日志。总结本文提到的内容,建议在电脑上操作,体验一下效果。