网站开发能自学吗,陕西泰烜建设集团网站,张家界企业网站制作,wordpress 去除 栏头作为一个javaer#xff0c;我以前写过很多关于Linux的文章。但经过多年的观察#xff0c;发现其实对于大部分人#xff0c;有些东西压根就用不着。用的最多的#xff0c;就是到线上排查个问题而已#xff0c;这让人很是苦恼。那么#xff0c;我们就将范围再缩小一下。最有…作为一个javaer我以前写过很多关于Linux的文章。但经过多年的观察发现其实对于大部分人有些东西压根就用不着。用的最多的就是到线上排查个问题而已这让人很是苦恼。那么我们就将范围再缩小一下。最有用系列 《 Linux上最常用的一批命令解析10年精选》《Linux生产环境上最常用的一套“vim“技巧》《Linux生产环境上最常用的一套“Sed“技巧》《Linux生产环境上最常用的一套“AWK“技巧》《Sed 高级功能我这小脑瓜都快绕晕了》Linux命令好像还真不少根本原因就是软件多也有像ag这样的命令想替代grep,但大多数命令古老而坚挺。不是因为这些软件设计的有多好原因是一些软件最开始入驻了系统时间久了就变成了一种约定这种习惯改变代价太大就像把所有键盘的L和F换一下一样。 这片文章假定你已经了解大多数Linux命令并了解操作系统的基本元素。如果你现在了解的命令还不足10个下面的内容就不用看了。除了最基本的东西本文列出一些对你的面试最常见的最能加分的地方有些组合可能是你没见过的技巧。但本文仅仅是给出一个大致的轮廓和印象为以后的专题性考察点作一个序。 本文中出现的所有命令应该熟记并熟练使用。几种比较典型的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也有不少用cshzsh等的通过echo $SHELL可以看到当前用户的shell对应的配置文件也要相应改变。比如.zshrc,.bashrc 四大元素 进入linux我们首先关注的是四个元素内存cpu存储网络。Linux提供了足够的命令让你窥探它的每个角落。接下来的命令都是些最常用的不管精通不精通想不起来要打屁股。CPU使用top查看cpu的load使用shiftp按照cpu排序。需要了解waus等都是什么意思使用uptime查看系统启动时间和loadload是什么意思呢什么算是系统过载这是个高频问题别怪我没告诉你ps命令勃大茎深除了查进程号外你还需要知道R、S、D、T、Z、、N状态位的含义top和ps很多功能是相通的比如watch ps -mo %cpu,%mem,pid,ppid,command ax 相当于top的进程列表top -n 1 -bc 和ps -ef的结果相似。有生就有死可以用kill杀死进程。对java来说需要关注kill -9、kill -15、kill -3的含义kill的信号太多了可以用kill -l查看搞懂大多数信号大有裨益。如果暂时不想死可以通过符号在后台执行比如tail -f a.log 。jobs命令可以查看当前后台的列表想恢复的话使用fg回到幕前。这都是终端作业当你把term关了你的后台命令也会跟着消失所以想让你的程序继续执行的话需要nohup命令此命令需要牢记mpstat 显示了系统中 CPU 的各种统计信了解cpu亲和性 内存free -m 命令了解free、used、cached、swap各项的含义cat /proc/meminfo 查看更详细的内存信息 细心的同学可能注意到CPU和内存的信息通过top等不同的命令显示的数值是一样的。slabtop 用来显示内核缓存占用情况比如遍历大量文件造成缓存目录项。曾在生产环境中遇到因执行find /造成dentry_cache耗尽服务器内存。vmstat 命令是我最喜欢也最常用的命令之一可以以最快的速度了解系统的运行状况。每个参数的意义都要搞懂。swapon、swapoff 开启关闭交换空间** sar** 又一统计类轮子一般用作采样工具 存储使用df -h查看系统磁盘使用概况lsblk 列出块设备信息du 查看目录或者文件大小 网络rsync 强大的同步工具可以增量哦netstat 查看Linux中网络系统状态信息各种ss 它能够显示更多更详细的有关TCP和连接状态的信息而且比netstat更快速更高效。curl、wget 模拟请求工具、下载工具。如wget -r http://site 将下载整个站点ab Apache服务器的性能测试工具ifstat 统计网络接口流量状态nslookup 查询域名DNS信息的工具在内网根据ip查询域名是爽爆了nc 网络工具中的瑞士军刀不会用真是太可惜了arp 可以显示和修改IP到MAC转换表traceroute 显示数据包到主机间的路径俗称几跳跳的越少越快tcpdump 不多说了去下载wireshark了wall 向当前所有打开的终端上输出信息。使用who命令发现女神正在终端上可以求爱 网络方面推荐安装体验一下kaliLinux上面的工具会让你high到极点。 如何组织起来 linux的命令很有意思除了各种stat来监控状态也有各种trace来进行深入的跟踪也有各种top来统计资源消耗者也有各种ls来查看系统硬件如lsblk、lsusb、lscpi。基本上跟着你的感觉走就能找到相应的工具因为约定是系统中最强大的导向。 Linux有个比较另类的目录/proc承载了每个命令的蹂躏。像sysctl命令就是修改的/proc/sys目录下的映射项。不信看看find /proc/sys -type f | wc -l和sysctl -a| wc -l的结果是不是很像 /proc文件系统是一个伪文件系统它只存在内存当中而不占用外存空间。只不过以文件系统的方式为访问系统内核数据的操作提供接口。系统的所有状态都逃不过它的火眼金睛。例如:cat /proc/vmstat 看一下是不是和vmstat命令的输出很像?cat /proc/meminfo 是不是最全的内存信息cat /proc/slabinfo 这不就是slabtop的信息么cat /proc/devices 已经加载对设备们cat /proc/loadavg load avg原来就躺在这里啊cat /proc/stat 所有的CPU活动信息ls /proc/$pid/fd 静静地躺着lsof的结果 一般排查问题的方法 一般排查问题也是围绕着内存cpu等几个元素去排查。下图是一张大体的排查故障或者性能问题的过程看图不多说。 应用场景举例 下面举例从具体应用场景来说明各种命令的组合应用此类场景数不胜数需要个人积累。但强烈建议将sed和awk练的熟练一些。 怎么查看某个Java进程里面占用CPU最高的一个线程具体信息获取进程中占用CPU最高的线程计为n。 使用top top -H -p pid肉眼观察之使用ps ps -mo spid,lwp,stime,time,%cpu -p pid 将线程号转化成十六进制printf 0x%x n使用jstack找到相应进程打印线程后的100行信息 jstack -l pid| grep spid -A 100 统计每种网络状态的数量netstat -ant | awk {print $6} | sort | uniq -c | sort -n -k 1 -r 首先使用netstat查看列表使用awk截取第六列使用uniq进行统计并对统计结果排序。当然也可以这样。 netstat -ant | awk {arr[$6]}END{for(i in arr){print arr[i] i }} | sort -n -k 1 -r 这和“分析apache日志给出当日访问ip的降序列表”是一样的问题。 怎么查看哪个进程在用swap 首先要了解/proc/$pid/smaps里有我们所需要的各种信息其中Swap字段即是我们所需要的。只要循环遍历一下即可。for i in cd /proc;ls |grep ^[0-9]|awk $0 100 ;do awk /Swap:/{aa$2}END{print $i,a/1024M} /proc/$i/smaps ;done |sort -k2nr End 软件领域有两种人才一种是工程型的一种是研究型的。在Linux领域里相对于搞内核研究的来说搞命令行的就属于工程型。工程型也有他自己的苦衷比如背诵命令就挺痛苦的一般来说不太推荐背诵第一覆盖的面不广第二记的快忘的也快浪费脑细胞。牛逼的记法就是用用时间来冲淡烟云见微知著并体验其中的喜悦。爱她并天天抱她上床真爱才成。作者小姐姐味道链接https://juejin.im/post/5db69c05f265da4d4434a221来源掘金著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。