第7章 第1节 常用命令 - Linux命令

大家好,很高兴我们可以继续学习交流Java高频面试题。本小节开始,我们进入了常用工具命令篇章。我们分三个小节来交流常见工具的命令及其作用。包括Linux常用命令,Maven常用命令以及Git常用命令。本小节中,我们主要针对面试中以及日常开发工作中常用的Linux命令进行学习。

做为一名服务端开发人员,我们的开发环境大多都是Linux环境,并且服务器也是Linux环境,那么我们必须学会一些常用的Linux命令。熟练掌握和使用Linux命令可以大幅度提升我们的日常工作效率,比如日志的检索和统计等工作。

Linux中常用命令包括grep,awk,top,ps,sed,sort,tail和head命令等。这也是本文,我们将要学习与介绍的命令。类似于ls,cat,vim,cp和mv这些特别简单的Linux命令不在本文的交流范围之内,希望大家可以自行学习了解其用法。
 

grep命令:

grep(Global Regular Expression Print)可以使用正则表达式搜索文本 , 并把匹配的行打印出来。我们来看下边的使用案例:

  • 查找文件file.log中“passport”字段:

grep “passport” file.log

 

第7章 第1节 常用命令 - Linux命令

  • 查找文件file.log中“passport”字段,并且统计出出现次数:

grep “passport” file.log |wc –l 或者 grep “passport” file.log –c

 

第7章 第1节 常用命令 - Linux命令

这里我们说下,管道操作符“|”的作用吧。管道命令操作符仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力。然后传递给下一个命令,作为标准的输入 standard input。然后wc(word count)可以统计指定文件中的字节数 , 字数 , 行数 , 并将统计结果显示输出。当然-c也可以起到统计次数的作用。
 

awk命令:

awk命令主要是将一行分为多个字段做处理,格式如下所示:

awk [-F field-separator] 'commands' input-file(s)

其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

假设我们现在有一个文件,里边内容有三行,如下所示,我们来一起做几个简单的awk统计吧。

  • 去掉第一列
  • 对第一列求和
  • 去掉列数不为3的列

 

第7章 第1节 常用命令 - Linux命令
 

top和ps命令:探测进程

ps命令,默认只会显示运行在当前控制台下的属于当前用户的进程。

  • ps –A和ps –e可以显示所有进程
  • ps -ef 显示完整格式的所有进程
  • 指定进程名,ps -ef | grep“java”找出进程名中包括java的所有进程

 

top命令,可以实时监测进程,输出的第一部分是显示系统的概括。如下所示:
 

第7章 第1节 常用命令 - Linux命令

  • 第一行显示了当前时间、系统的运行时间、登录的用户数和系统的平均负载(平均负载有3个值:最近1min 5min 15min)。
  • 第二行显示了进程的概要信息,有多少进程处于运行、休眠、停止或者僵化状态。
  • 第三行是CPU的概要信息。
  • 第四行是系统内存的状态。

 

ps和top命令的区别:

  • ps看到的是命令执行瞬间的进程信息,而top可以持续的监视。
  • ps只是查看进程,而top还可以监视系统性能,如平均负载,cpu和内存的消耗。
  • top可以操作进程,如改变优先级(命令r)和关闭进程(命令k)。
  • ps主要是查看进程的,关注点在于查看需要查看的进程。
  • top主要看cpu,内存使用情况,及占用资源最多的进程由高到低排序,关注点在于资源占用情况。

 

sed命令:

sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

  • 可以将文件的第二行和第三行裁剪出来

sed –n ‘2,3p’ test.txt

 

第7章 第1节 常用命令 - Linux命令
 

sort命令:

sort命令可以实现对文件进行排序。

  • 正序排序:sort -n test.txt
  • 反序排序:sort –nr test.txt

 

第7章 第1节 常用命令 - Linux命令
 

tail和head命令:

  • tail –n 2 file.log 可以查看文件的最后2行。
  • tail –f file.log可以实时查看文件的后边追加的部分。
  • head –n 2 file.log可以查看文件的开始2行。

 

第7章 第1节 常用命令 - Linux命令

 

总结:

Linux命令很多,对于面试来说,我们重点掌握grep,awk以及sed的使用,这个对于面试是一个很好的加分项。对于在校学生来说,我们的Linux使用环境可能不是特别多,导致对常用命令不太熟悉,即使看了一些书籍与视频也不太熟练,毕竟命令这些东西还是得靠用,用则熟,不用则忘。所以,我们可以在自己的电脑上安装Linux系统来进行学习使用。下一小节中,我们将学习Maven的相关知识点及其常用命令。