hey~大家好,今天要给大家分享的是一个相对基础的主题:终端下的基本操作,相信很多同学对于终端有着抵触的看法,认为哎呀终端有什么好用的有那么多难记的命令,用界面优美的GUI应用程序它不香吗,那么这篇文章笔者会带领大家认识一下终端,文章总共分三部分:第一部分笔者会介绍一些终端下的常用命令,第二部分笔者会配合几个场景展示一下如何用命令去解决一些问题,最后一部分会给大家分享一些提高效率的插件。希望大家阅读完这篇文章后能在日常工作中多用使用终端来完成工作,相信我这可以大大提高我们的工作效率。 笔者以mac系统为例,终端采用的是iterm(超越mac下自带的终端),shell用的zsh(当然并不代表zsh就是最好用的shell,这个看个人习惯,大家也可以将自己终端上的bash,fish等等打造成自己熟悉的shell环境),话不多说我们开始~ 一、常用命令篇:1、man命令,可以理解为命令的说明手册,只要遇到不会的命令或者一时想不起来这个命令怎么使用的时候,可以用man command,会在终端下打印出该命令的详细说明。这里我推荐给大家一个叫tldr(too long,don’t read.)的命令,它会比man命令更加精简。man命令和tldr命令都可以很方便的查询一个命令的使用方法。 2、grep命令,用法: grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,全称是Global Regular Expression Print,使用上十分灵活。对于经常查日志的同学会很有帮助。一行 3、tail和head命令,用法: tail使用方式有两种,一种是 4、awk命令,用法: awk提供了极其强大的功能:用来处理数据和生成报告(excel)。处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入。这个命令多用于将一行文本按照自定义分隔符分割为多个列,然后筛选出想要的列,可用来输出也可用来统计。常见的方式就是统计线上日志的接口调用量,直接awk出来接口url路径那一列,配合sort命令和uniq命令进行统计。完整语法: 5、top命令,用法: top命令是Linux下常用的性能分析工具,实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。运行top命令会进入top模式,里边有很多指标,详细解释可参考https://www.cnblogs.com/peida/archive/2012/12/24/2831353.html,进入top模式后会有很多列,经常查看的是cpu列、mem列,cpu排序按P键,mem排序按M键,查看进程完整路径按c键,top命令默认显示所有进程。想要查看某个进程,需先使用ps命令,找到想要查询的进程号之后使用 6、lsof命令,用法: lsof命令是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件,如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。由于应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。我经常使用 7、ansible命令https://github.com/ansible/ansible,用法: 之前说的命令都是在一台机器上执行的,那么我们有时候会需要在多台机器上执行相同的命令,这时候ansible就派上用场了,ansible可以批量执行远程命令,可以批量部署下载文件,这对于运维同学来说是个非常不错的工具,详细使用大家可以查阅相关文档。 8、nc命令,用法: nc可用来探测端口, 8、netstat命令,用法: netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。常用参数-t或–tcp 显示TCP传输协议的连线状况。-u或–udp 显示UDP传输协议的连线状况。-p或–programs 显示正在使用Socket的程序识别码和程序名称。-n或–numeric 直接使用IP地址,而不通过域名服务器。-l或–listening 显示监控中的服务器的Socket。所以基本上都直接用 二、实践篇:哇线上出问题啦,快查日志:1、如果可以定位到时某台机器出错了,大家一般会执行以下步骤:
2、由于用户流量一般都是以负载均衡的方式打到后边很多机器上,所以是定位不到某台机器的,这时候如果每台机器我们都要ssh的话太不可取了,可以用如下步骤解决:
有个莫名其妙的进程我需要查一查:先用 怎么磁盘又快满了:使用df 命令查看当前磁盘使用情况,执行 三、提高效率篇:1、强烈建议大家把自己的终端打造的好看一些,这样你在敲写命令的时候视觉上就会舒服很多~有人和我一样用zsh的话,那么推荐ohmyzsh里边包含了各种各样的主题,可以给你的小黑框穿上漂亮的小裙子。 2、对于自动补全方面:zsh下是忽略大小写的,这点比较舒服,而不是遇到大写目录的时候怎么tab都tab不出来~,再就是可以安装一个叫zsh-autosuggestions的插件,该插件可以在写命令的时候将近期写过的命令以浅色的形式在后面显示出来,按→键时就会补全这个命令。 3、多用alias,可以大大提高命令敲写效率,它可以把一个长命令或者一个带了很多参数的命令代替成一个自定义的命令,所以大家都偏爱ll而不是ls -l。 4、在跳转目录的时候会常用cd命令,cd /etc进入系统配置目录,cd ~ 进入家目录,如果到达一个路径很长的目录下要敲写很多路径,而这个目录又是一个我们常使用的办公目录,对没错,你可以用alias进入办公目录的命令缩写成一个短的命令比如:cdwork;如果有多个这种目录那就比较麻烦了,在这里推荐一个叫autojump的命令,它可以将最近访问的目录按权重记录到一个地方,然后以模糊搜索的方式进行跳转目录,只需敲j+一部分目录名即可跳转,非常方便。 5、大家用mac系统,对于文件管理器通常会使用mac自带的finder来进行鼠标点点点~,推荐大家使用ranger命令,运行这个命令是会进入linux下的文件管理器,默认操作使用vim的快捷键,可完全脱离鼠标进行文件操作,这个命令最大的优点是可配置性极强,写一些复杂的操作脚本集成到ranger里,比如解压缩文件,批量删除等等等等,非常方便,建议去试一试,相信大家会爱不释手的。 6、fzf命令https://github.com/junegunn/fzf,是一个模糊搜索文件的命令,当cd到某个目录时,想要编辑这个目录下的某个文件,明确文件名却不知道具体在哪?对,是的~大家可以使用find命令进行查找,对于简单地查找一个文件这个操作,find还是有一些低效的。进入fzf模式后只需写几个关键词就可将想要搜索的文件列出来,并且fzf的特点远不止这些,可集成到vim下进行常用搜索:缓冲区的文件,近期使用的命令等等;可集成到ranger下进行模糊搜索文件;可集成到kill命令下来搜索想要关闭的进程;可替换系统的ctrl + r来搜索近期执行的命令。这些配置可在https://github.com/junegunn/fzf/wiki下找到。 结尾:感谢大家可以阅读到这里,以上就是给大家带来的终端下的一些基本操作,希望大家可以把小黑框运用起来,能用命令完成的工作就用命令来完成,相信我这绝对比用鼠标点点点效率要高,最后配一张黑客帝国的图~希望大家以后都可以像黑客帝国里的人一样,随便敲几行命令屏幕就会炫酷的滚动起来~ |
|
来自: 西北望msm66g9f > 《编程》