kali linux 升级命令_作为高级Java,你应该了解的Linux知识

b7ba03590fd51d62a96927c4dbab954c.png

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

作为一个javaer,我以前写过很多关于Linux的文章。但经过多年的观察,发现其实对于大部分人,有些东西压根就用不着。用的最多的,就是到线上排查个问题而已,这让人很是苦恼。那么,我们就将范围再缩小一下。

5b64a291c18fc4d91f9641fc14aedc8e.png

Linux命令好像还真不少,根本原因就是软件多,也有像ag这样的命令想替代grep,但大多数命令古老而坚挺。不是因为这些软件设计的有多好,原因是一些软件最开始入驻了系统,时间久了,就变成了一种约定,这种习惯改变代价太大,就像把所有键盘的LF换一下一样。

这篇文章假定你已经了解大多数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,也有不少用csh,zsh等的,通过echo $SHELL可以看到当前用户的shell,对应的配置文件也要相应改变。

    比如.zshrc,.bashrc

    四大元素

    进入linux,我们首先关注的是四个元素:

    内存,cpu,存储,网络。

    Linux提供了足够的命令,让你窥探它的每个角落。

    接下来的命令都是些最常用的,不管精通不精通,想不起来要打屁股。

    6dd4273e7701ae14dcea7db9c54a0b49.png

CPU

  • 使用top查看cpu的load,使用shift+p按照cpu排序。

    需要了解wa,us等都是什么意思

  • 使用uptime查看系统启动时间和load,load是什么意思呢?

    什么算是系统过载?

    这是个高频问题,别怪我没告诉你

  • ps命令勃大茎深,除了查进程号外,你还需要知道R、S、D、T、Z、

  • 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 的各种统计信

  • 了解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 -lsysctl -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等几个元素去排查。下图是一张大体的排查故障或者性能问题的过程,看图,不多说。

b9719d29bb475e08da84ab6601f3890d.png

应用场景举例

下面举例从具体应用场景来说明各种命令的组合应用,此类场景数不胜数,需要个人积累。但强烈建议将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:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr

最后,附上http://www.brendangregg.com/ 的大图一张

8bb05257313a53ff361d24cd7f3180ea.png

End

软件领域有两种人才,一种是工程型的,一种是研究型的。在Linux领域里,相对于搞内核研究的来说,搞命令行的就属于工程型。工程型也有他自己的苦衷,比如,背诵命令就挺痛苦的,一般来说不太推荐背诵,第一覆盖的面不广,第二记的快忘的也快,浪费脑细胞。牛逼的记法就是用,用时间来冲淡烟云,见微知著,并体验其中的喜悦。爱她并天天抱她上床,真爱才成。

040ac4b2eaf02a6843aaf772745c420c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arn linux编译系统时错误的解决

今天打算编译支持orange pi开发板的Raspbain Jessie系统 从github上拿下源码,下载,编译,一直比较顺利 结果在编译一半的时候报错: /second-stage: line 206: /bin/sleep: cannot execute binary file: Exec format error 根据错误提示信息,找到了该语句如下: while kill -0 $1 …

【进出理论】投入与收益

笔者对网游相当无感&#xff0c;再加上以前玩过不少游戏。对现在的游戏没有多大的吸引力&#xff0c;倒是对爱情有所感性&#xff0c;及当代IT技术的发展。许多以前无法获取的东西&#xff0c;现在在网络寻找各种方式&#xff0c;或者若干想通了什么&#xff0c;就总可以获取到…

CSS笔记1

在divcss开发的时候&#xff0c;特别是新手特别喜欢追求完美&#xff0c;所以开发中或开发完后立即去验证开发的css是否符合w3c标准。虽然说验证w3c是好事但是&#xff0c;这个不是最重要的&#xff0c;最重要的是div css的兼容浏览器性能、css代码最优程度、特效兼容。 CSS扩展…

linux centos 光盘修复,CentOS7删除/boot/initramfsxxx.img并尝试光盘救援模式修复

CentOS7删除/boot/initramfsxxx.img并尝试光盘救援模式修复一、删除/boot/initramfs-3.10.0-957.el7.x86_64.img[rootswitch ~]# rm -f /boot/initramfs-3.10.0-957.el7.x86_64.img二、重启起不来三、插入光盘&#xff0c;进入修复模式(VMWare开机按esc)四、选择修复CentOS7系统…

django 模板两次for循环_Django模板之基本的 for 循环 和 List内容的显示方式

Django模板之基本的 for 循环 和 List内容的显示方式发布时间&#xff1a;2020-08-31 07:29:20来源&#xff1a;脚本之家阅读&#xff1a;116工程结构views.pydef home(request):TutorialList ["HTML", "CSS", "jQuery", "Python", &…

I/O多路转接之poll,epoll

1、poll函数原型&#xff1a;#include <poll.h>int poll(struct pollfd fds[], nfds_t nfds, int timeout)&#xff1b;参数说明:fds&#xff1a;是一个struct pollfd结构类型的数组&#xff0c;用于存放需要检测其状态的Socket描述符&#xff1b;每当调用这个函数之后&a…

amh在linux下修改伪静态,伪静态规则大全 - AMH云主机面板 - AMH开源社区 - amh.sh

1、WordPress伪静态if (-f $request_filename/index.html){rewrite (.*) $1/index.html break;}if (-f $request_filename/index.php){rewrite (.*) $1/index.php;}if (!-f $request_filename){rewrite (.*) /index.php;}2、PHPCMS伪静态rewrite ^/caipu-([0-9])-([0-9])-([0-9…

pn532写入手机nfc_NFC手机手环脱机模拟加密门禁卡,你get了吗?

目标&#xff1a;将门禁卡、考勤卡、会员卡、停车卡、电梯卡等等各种卡模拟进手机里&#xff0c;模拟后可用手机代替刷卡&#xff0c;无需root&#xff0c;不用电脑背景介绍&#xff1a;前言目前&#xff0c;IC卡已被广泛应用于身份识别、金融消费、安全认证等领域。大多数人每…

世纪互联云和华为共同打造的数据中心是一个很好的一步标志!

9月4日&#xff0c;华为公布高端智能手机Mate7&#xff08;2999元人民币&#xff09;&#xff0c;当中的处理器&#xff08;CPU&#xff09;是华为自产的海思麒麟&#xff08;Kirrin&#xff09;925&#xff0c;此举让高调国产操作系统者颜面丢尽&#xff0c;国家队无言以对。 …

linux安装vim plug, vim-plug 的安装和使用

正确安装 vim-plug之前写了一篇&#x1f984; 一篇文章讲清楚如何安装vim插件&#xff0c;见各位童鞋留言说 vim-plug 更好用。果然各种插件方便管理&#xff0c;安装也很简单。下面简单说下 vim-plug 的操作基本姿势&#xff1a;安装 vim-plugvim-plug 是一个 vim 的插件管理插…

测试连接oracle数据库耗时

maven项目 主程序:ConnOracle.java 1 package org.guangsoft.oracle;2 3 import java.sql.Connection;4 import java.sql.DriverManager;5 import java.sql.SQLException;6 7 import org.guangsoft.util.PropUtil;8 9 public class ConnOracle { 10 private static final S…

用尽洪荒之力整理的Mysql数据库32条军规

写在前面的话&#xff1a; 总是在灾难发生后&#xff0c;才想起容灾的重要性&#xff1b; 总是在吃过亏后&#xff0c;才记得曾经有人提醒过。 核心军规 1、不在数据库做运算 cpu计算务必移至业务层 2、控制单表数据量 int型不超过1000w&#xff0c;含char则不超过500w&#xf…

dw网页制作入学教程_简单的手机网页制作教程

很多小白会以为建站只能通过电脑&#xff0c;但实际上&#xff0c;用手机也能顺利建站&#xff0c;而且操作非常简单&#xff0c;不需要你懂技术知识哦&#xff01;下面就跟大家说说手机网页制作教程&#xff1a;首先&#xff0c;你需要选择一个比较好用的手机网页制作app。尽量…

拓展欧几里得理论基础(含一定证明)

首先有gcd(a,b)gcd(b,a%b)这个复杂度最差也是log2的 因为大数对小数取余的时候 这个小数如果是比大数的一半大 那么取余完会比大数的一半大&#xff0c;如果小数比大数的一半小 那么取余完还是会比大数的一半大&#xff0c;所以最差也是log2的。 然后是axbyc有解的充要条件是c整…

Sqli-labs less 64

Less-64 此处的sql语句为 $sql"SELECT * FROM security.users WHERE id(($id)) LIMIT 0,1"; 示例payload&#xff1a; http://127.0.0.1/sqli-labs/Less-64/?id1))and%20If(ascii(substr((select%20group_concat(table_name)%20from%20information_schema.tables%20…

linux 双显卡 黑屏 amd,Win10系统AMD双显卡笔记本开机出现黑屏怎么办?解决方法...

win10是一个全新的操作系统&#xff0c;所以我们在使用时很有可能会碰到一些没见过的新问题。比如&#xff0c;有用户在升级到Windows10后&#xff0c;发现AMD双显卡笔记本出现了开机黑屏的情况。具体表现为&#xff1a;Windows Logo加载之后&#xff0c;用户登陆之前会出现30s…

双目立体视觉建立深度图_关于双目立体视觉的三大基本算法及发展现状的总结...

作者&#xff1a;何文博双目立体视觉一直是机器视觉研究领域的发展热点和难点&#xff0c;“热”是因为双目立体视觉有着及其广阔的应用前景&#xff0c;且随着光学、计算机科学等学科的不断发展&#xff0c;双目立体技术将不断进步直到应用到人类生活的方方面面。“难”则是因…

layer弹出层

个人觉得风格不错的&#xff0c;所以收藏下来&#xff1a; layer.open({title: 提示,offset: 100px,skin: layui-layer-lan,content:这是一个open弹出框,time: 3000}); layer.open({type: 1 //Page层类型,area: [500px, 300px] //弹出层大小,title: 你好&#xff0c;layer。,sh…

[BZOJ 1834] [ZJOI2010]network 网络扩容

1834: [ZJOI2010]network 网络扩容 Time Limit: 3 SecMemory Limit: 64 MBDescription 给定一张有向图&#xff0c;每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求&#xff1a; 1、 在不扩容的情况下&#xff0c;1到N的最大流&#xff1b; 2、…

fw150us的linux驱动下载,迅捷FW150US1.0/2.0无线网卡驱动

迅捷FW150US1.0/2.0无线网卡驱动官方版是迅捷推出的一款超小型150M无线USB网卡&#xff0c;安装迅捷FW150US1.0/2.0无线网卡驱动官方版&#xff0c;即可正常连接电脑使用。迅捷FW150US1.0/2.0无线网卡驱动支持自动检测功能&#xff0c;能够自动调整速率&#xff0c;无线传输速率…