微信号:javams

介绍:Java面试指南;最全最专业的面试题

作为高级Java,你应该了解的Linux知识

2016-06-04 13:53 李国

本文中出现的所有命令,应该熟记并熟练使用。

几种比较典型的linux系统
首先对目前的Linux版本有个大体的印象,大体分Desktop版和Server版,已经是百花齐放。
  • Ubuntu 最常见的Linux个人发行版,一位有情怀的南非富豪,有了钱你也可以这么做

  • CentOS 最常用Linux服务器发新版,RHEL的开放版本,因版权而生的轮子

  • Arch  滚动升级,海量二进制包,社区活跃,个人最爱

  • Gentoo 安装软件需要从源码开始编译,稳定,但用起来会很痛

  • LFS 从零构建Linux,跟着做一遍,Linux每根毛都看的清清楚楚

  • Kali 专做渗透用的,代表了发行版的一个发展路径,就是领域

首先要了解的几个概念
  • KISS Keep it Simple and Stupid,据说是哲学

  • 一切皆文件 通常是文件的东西叫文件,进程、磁盘等也被抽象成了文件,比较离谱的管道、设备、socket等,也是文件。这是Linux最重要的组织方式。

  • 管道 | 分隔,前面命令的输出作为后面命令的输入,可以串联多个

  • 重定向

  • SHELL 首先确认你的shell,一般最常用的是bash,也有不少用csh,zsh等的,通过echo $SHELL可以看到当前用户的shell,对应的配置文件也要相应改变。比如.zshrc,.bashrc

四大元素

进入linux,我们首先关注的是四个元素:内存,cpu,存储,网络。Linux提供了足够的命令,让你窥探它的每个角落。接下来的命令都是些最常用的,不管精通不精通,想不起来要打屁股

CPU
  • 使用top查看cpu的load,使用shift+p按照cpu排序。需要了解wa,us等都是什么意思

  • 使用uptime查看系统启动时间和load,load是什么意思呢?什么算是系统过载?这是个高频问题,别怪我没告诉你

  • ps命令勃大茎深,除了查进程号外,你还需要知道R、S、D、T、Z、<、N状态位的含义

  • topps很多功能是相通的,比如watch "ps -mo %cpu,%mem,pid,ppid,command ax" 相当于top的进程列表;top -n 1 -bcps -ef的结果相似。

  • 有生就有死,可以用kill杀死进程。对java来说,需要关注kill -9kill -15kill -3的含义,kill的信号太多了,可以用kill -l查看,搞懂大多数信号大有裨益。

  • 如果暂时不想死,可以通过&符号在后台执行,比如tail -f a.log &jobs命令可以查看当前后台的列表,想恢复的话,使用fg回到幕前。这都是终端作业,当你把term关了你的后台命令也会跟着消失,所以想让你的程序继续执行的话,需要nohup命令,此命令需要牢记

  • mpstat 显示了系统中 CPU 的各种统计信