第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
- 查找文件file.log中“passport”字段,并且统计出出现次数:
grep “passport” file.log |wc –l 或者 grep “passport” file.log –c
这里我们说下,管道操作符“|”的作用吧。管道命令操作符仅能处理经由前面一个指令传出的正确输出信息,也就是 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的列
top和ps命令:探测进程
ps命令,默认只会显示运行在当前控制台下的属于当前用户的进程。
- ps –A和ps –e可以显示所有进程
- ps -ef 显示完整格式的所有进程
- 指定进程名,ps -ef | grep“java”找出进程名中包括java的所有进程
top命令,可以实时监测进程,输出的第一部分是显示系统的概括。如下所示:
- 第一行显示了当前时间、系统的运行时间、登录的用户数和系统的平均负载(平均负载有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
sort命令:
sort命令可以实现对文件进行排序。
- 正序排序:sort -n test.txt
- 反序排序:sort –nr test.txt
tail和head命令:
- tail –n 2 file.log 可以查看文件的最后2行。
- tail –f file.log可以实时查看文件的后边追加的部分。
- head –n 2 file.log可以查看文件的开始2行。
总结:
Linux命令很多,对于面试来说,我们重点掌握grep,awk以及sed的使用,这个对于面试是一个很好的加分项。对于在校学生来说,我们的Linux使用环境可能不是特别多,导致对常用命令不太熟悉,即使看了一些书籍与视频也不太熟练,毕竟命令这些东西还是得靠用,用则熟,不用则忘。所以,我们可以在自己的电脑上安装Linux系统来进行学习使用。下一小节中,我们将学习Maven的相关知识点及其常用命令。