总结一下Linux下常用的命令

nc

nc命令,这是Linux一般都带有的,被誉为“瑞士军刀”。windows和Linux都有,可以下载安装对应的平台工具。使用UDP和TCP协议的网络连接去读写数据,是一个稳定的后门工具。同时它也是一个功能强大的网络调试和嗅探工具。

使用格式:

nc [-options] hostname port[s] [ports] ... 连接到某个地方

nc -l -p port [options] [hostname] [port] 绑定端口等待连接

参数有下:

-e prog 程序重定向,一旦连接就执行。同时这样也有安全隐患

-i secs 延时间隔

-l 监听模式,用于入站连接

-n 制定数字的IP地址,不能用主机名

-p port 端口

-o file 记录16进制的传输

-r 任意指定本地及远程段口

-s addr 本地源地址

-u UDP模式

-v 详细输出 用两个 -v可得到更详细的内容

-w secs 超时

-z 将输入输出关掉,用于扫描

端口号可以指定单个,后者一个范围

当然nc 可以和watch命令配置动态实时监测

netstat

netstat命令用于显示各种网络相关信息,如:网络连接,路由表,接口状态多播成员等等

netstat输出结果可分为两个部分:有源TCP连接和有源Unix域套接口

有源TCP主要是用于监测网络传输相关

有源Unix用于本机通信,性能可以提高一倍

常见参数:

-a all的意思 显示所用选项,默认不显示LISTEN相关

-t tcp意思,仅显示tcp相关选项

-u udp的意思,仅显示udp相关

-n 拒绝显示的别名,能显示数字的全部转化成数字

-l 仅 列出有在listen的服务状态

-p 显示简历相关链接的程序名

-r 显示路由信息,路由表

-e 显示扩展信息

-s 按各个协议进行统计

-c 执行netstat的时间间隔

另外LISTEN和LISTENING状态只用-a 或 -l才能看到

netstat -a 列出所有端口,包括监听和未监听的

netstat -at 列出tcp端口

netstat -pt 先死PID和进程名字 (-p)

netstat -i 显示网络接口列表

可以利用watch 和 awk提取相关需要字段,用于监听

lsof

全称list open files,列出当前系统打开文件

应用程序打开文件的描述符提供了大量应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统检测以及排错有很大帮助

lsof常见参数:

lsof filename 显示打开指定文件的所有进程

lsof -a 表示两个参数都必须满足时才显示结果

lsof -c string 显示COMMAND列中包含指定字符串的进程打开的描述符

lsof -u username 显示所属user进程打开的文件

lsof -g gid 显示所属gid进程情况

lsof +d /DIR/ 显示目录下被进程打开的文件

lsof +D /DIR/ 同上,但是会递归

lsof -n 不将IP转化为hostname

lsof -i 用于显示符合条件的进程情况

ls -i[46]   [protocol] [@hostname|hostaddr][:service|port]

ipv4|ipv6  TCP|UDP

lsof -i:22 查看22端口运行情况

uptime

显示结果包括服务器已经运行的时间,有多少用户登录,和对服务器性能的总体评估

load average记录了上个1,5,15分钟间隔的负载情况,表示在队列中等待执行的进程的数量,如果CPU阻塞,该值就变大

load average最佳值为1,说明每个进程都可以立刻被CU处理,多个CPU的系统中,这个值应 除以 物理CPU的个数

top

top命令显示了实际CPU的使用情况,默认5s刷新一次

PID: 进程标识

USER: 进程所有者的用户名

PRI:进程的优先级

NI: nice级别

SIZE:进程占用的内存数量,包括代码,数据,和堆栈

RSS:进程使用的物理内存数量

SHARE:该进程和其他进程共享内存的数量

STAT:进程的状态

S 休眠状态

R 运行状态

T 停止状态

D 中断休眠状态

Z 僵尸状态

%CPU:共享的CPU使用

%MEM 共享的物理内存

TIME:进程占用的CPU时间

COMMAND:启动任务的命令行,参数

iostat

iostat是sysstat包的一部分,显示系统启动后平均CPU时间与uptime类似

可以显示磁盘子系统的使用情况,iostat可以用来检测CPU利用率和磁盘利用率

%user: user level(应用)的CPU占用率情况

%nice: 加入nice优先级的user level的CPU占用率情况

%sys:system level(内核) 的CPU占用情况

%idle:空闲的CPU资源情况

Device :块设备名

Tps:设备每秒进行传输的数量(每秒的I/O请求)。多个单独的I/O请求可以被组成一个传输操作,因为一个传输操作可以是不同的容量

Blk_read/s,Blk——wrtn/s:该设备每秒读写的块数量,块可能为不同容量

Blk_read,Blk_wrtn:自系统启动以来读写的块设备总量

vmstat

vmstat命令提供了对进程、内存、页面I/O块和CPU等信息的监控,vmstat可以显示检测结果的平均值或者取样值

.process(procs)

r:等待运行时间的进程数量

b:处在不可中断睡眠状态的进程

w:被交换出去但是仍然可以运行的进程,这个值是计算出来的

.memoryswpd:虚拟内存数量

free: 空闲内存数量

buff: 用作缓冲区的内存数量

.swap

si:从硬盘交换来的数量

so:交换到硬盘去得数量

.IO

bi:向一个块设备输出的快数量

bo:从一个块设备接受的块数量

.system

in:每秒发生的中断数量,包括时钟

cs:每秒发生的context switches的数量

.cpu 整个CPU运行时间百分比

us:非内核代码运行时间(用户时间,nice时间)

sy:内核代码运行时间(系统时间)

id:空闲时间

wa:等待I/O操作时间

vmstat附加参数:

.m: 显示内核的内存利用率

.a: 显示内存页面信息,包括活跃和不活跃的内存页面

.n: 显示报头行,这个参数在使用采样模式并命令结果输出到一个文件时用

-p 分区,vmstat提供对I/O结果的统计

ps/pstree

系统分析最常用的命令,ps提供正在运行进程列表

pstree命令可以以树状结构显示所有进程信息,并且可以整合子进程信息

sar

sar程序也是sysstat安装包一部分,用于手机、报告和保存系统的信息。

sar命令三个应用组成

sar: 用于显示数据

sa1/sa2:用于搜集和存储数据

sar命令生成的数据默认保存在/var/log/sa/目录下

也可以使用sar在命令行下得到一个实时的执行结果,搜集的数据可以包括CPU利用率、内存页面、网络I/O等等呢过

sar 3 5 每个3s执行一次,执行5次sar

free

free命令显示系统的所用内存使用情况,包括空闲、被使用的和被交换的空间。

free命令显示也包括一些内核使用的缓存和缓冲区信息

参数:

-b,-k,-m,-g分别是以bytes,kilobytes,megabytes,gigabytes显示结果

-l 区别显示low和high内存

-c {count} 显示free输出的次数

pmap

pmap命令显示一个或者多个进程使用内存数量,可以使用这个工具来确定服务器上哪个进程占用了过多的内存而导致内存瓶颈

strace

strace截取和记录进程的系统调用信息,还包括进程接受的命令信号。这是一个很好的诊断和调试工具,但是需要系统管理员权限

strace -p <pid>

ulimit

可以通过ulimit来控制系统资源的使用

mpstat

mpstat命令也是sysstat的一部分。主要用于监测一个多CPU系统中每个可用CPU的情况。mpstat命令可以显示每个CPU或者所有CPU的运行情况,同时也可以像vmstat命令那样使用参数进行一定频率的采样结果监测

valgrind

内存和性能检测工具,主要用于内存泄露检测,性能检测

Linux 项目实用命令的更多相关文章

  1. Linux常用实用命令

    Linux是我们开发人员必不可少的系统,也是经常接触到的.然而,Linux命令比较多,有些不常用也难记住.那么,我们如何更高效的使用Linux命令,而又不必全面地学习呢?今天就给大家分享一下我在开发过 ...

  2. linux下实用命令

    也使用了一段时间的debian,过程中总结了一些常用的又实用的命令,在这里分享给大家=.= 很多命令选项很多,在这里我只总结最实用的一些选项提供给大家,详细选项解释大家可以去问google. 1.df ...

  3. 【Linux】——实用命令

    [前言] Linux的命令可以分为文件存取.目录操作.进程管理.权限管理.磁盘操作等内容,大量的命令方便了用户进行更快捷更高效的工作.但有一点需要说明的是,如果不采用linux的命令,也可以完成相应的 ...

  4. Linux里实用命令之添加行号、文本和语法高亮显示

    写在前面的话 本博主我,强烈建议,来看此博文的朋友们,都玩玩. 最好,在刚入门的时候呢,不加行号,不玩文本和语法高亮显示,以后会深有体会.磨炼自己! 步骤一:进入 /etc/virc配置文件 步骤二: ...

  5. 在linux下用命令行编译 java的eclipse项目

    由于jdk的版本问题导致在windows上编译打包好的jar包放在linux服务器上运行的时候出现一点小异常,所以决定在linux上进行一次项目编译,这有两个选择1.在相同的linux环境下安装lin ...

  6. Linux Tomcat日志查看实用命令

    实用命令: 查看tomcat运行日志 tail -f catalina.out 通过关键字搜索查看日志 cat jeewx-2015-09-20.log | grep 验证码 查看固定时间日志 cat ...

  7. 个人的Linux实用命令

    Linux下的命令有那么多,我不可能也不想去把每一个都记住,列举一些自己工作中很实用的命令,这些命令或许不是很常用,但是有时候却离不了. 1.网络方面 service iptables start/s ...

  8. Linux中date命令的各种实用方法--转载

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的 ...

  9. 14: linux实用命令

    1.1 基本实用命令整理 1.查找大文件文件 du -sh ./*|grep G                 # 查看当前目录下个文件大于1G的文件夹 2.查找日志文件中 5xx数量,并进行排序 ...

随机推荐

  1. MyEclipse格式化JSP代码,其中Javascript无法格式化的原因

    MyEclipse格式化JSP代码,其中Javascript无法格式化的原因: 可能是JSP页面代码有错误的地方,而且可能是一个很微小的错误,比如多写了一个标点符号,这个需要仔细检查,包括HTML.C ...

  2. 【解决】venv 的名字在 zsh prompt 中不显示

    venv 的名字在 zsh prompt 中不显示 ➜ liyongjiandeMBP.lan [/Users/liyongjian/lyj] python3 -m venv lyj_venv ➜ l ...

  3. 解决 Android sdk content loader 0%

    第一次遇到这种情况,真的很头痛,没办法 ,是问题就要解决,在网上找了一些方法,归纳了下来. 方法一(关闭后重启): 遇到Eclipse右下角一直显示“Android sdk content loade ...

  4. 程序设计的SOLID原则

    要想设计一个良好的程序,建议采用SOLID原则,若考虑了SOLID,可以使程序在模块内具有高内聚.而模块间具有低耦合的特点. SOLID原则包括5方面的内容: S---单责任原则(SRP) 一个模块只 ...

  5. python函数的返回值

    返回值:return1.没有返回值    #不写return    #只写return:结束一个函数    #return None2.有一个返回值    #可以返回任何数据类型    #只要返回就可 ...

  6. 第一个网页(仿照当当网,仅仅使用CSS)

    这个网页是在学过CSS之后,对当当网首页进行模仿的网页,没有看当当网的网页源码,纯按照自己之前学的写的,由于是刚学过HTML和CSS才一个星期,所以里面有许多地方写的非常没有水平,仅仅用来学习使用,欢 ...

  7. 1511: [POI2006]OKR-Periods of Words

    1511: [POI2006]OKR-Periods of Words https://www.lydsy.com/JudgeOnline/problem.php?id=1511 题意: 对于一个串的 ...

  8. java Spring boot使用spring反射

    spring 反射 当你配置各种各样的bean时,是以配置文件的形式配置的,你需要用到哪些bean就配哪些,spring容器就会根据你的需求去动态加载,你的程序就能健壮地运行. 1.可以通过类名去实例 ...

  9. uwsgi配置文件

    [uwsgi] http = :9000 #the local unix socket file than commnuincate to Nginx #socket端口这个用作nginx与其通讯 s ...

  10. 通过圆形按钮的绘制熟悉Qt的绘图机制,掌握这种终极方法

    基本上用QPainter就可以实现 1. QPainter painter(this); //开始的标志(可以不用) painter.begin(this); //保存最初的设置 painter.sa ...