Linux常用命令及说明 — 结合工作(着重性能监控,包括CPU、内存、IO、网络、磁盘等)

      分享图片

      (一)Linux监控的几个常用命令(对于服务器后端程序猿很重要,必须掌握):

      命令 功能 命令 功能
      iostat 统计CPU及网络、设备和分区IO的数据 vmstat 展示给定时间服务器的状态值(包括CPU使用率、内存使用状况、虚拟内存交换情况、IO读写情况),很常用
      free 显示内存状况,包括空闲以及被使用的物理内存、交换内存以及被kernel使用的缓冲区 sar  System Activity report 系统活动报告,是目前Linux最为全面的系统性能分析工具之一 
      ps 显示当前正在运行的所有进程的快照 strace 跟踪进程执行时系统调和所接收的信号
      top 实时显示系统中各个进程的资源(cpu和load)占用状况,类似于windows任务管理器 tcpdump

      dump the traffic on a network, 根据用户定义对网络上的包进行截获的包分析工具,

      功能和查看pcap包的wireshark工具差不多

       

      • iostat

       统计CPU及网络、设备和分区IO的数据,具体命令行参数见下表:

      选项 含义
       -d  显示设备(磁盘)使用状态
       -k 某些使用block为单位的列强制使用kilobytes/每秒
       -x 显示更多统计信息
       -c  显示CPU利用率

      输入"iostat -x”,结果如下图:

      分享图片

      avg-cpu统计信息每段含义见下表:

      参数 含义
       %user   在用户态运行程序,CPU利用的百分比
       %nice  在nice优先级(即静态优先级,具体啥含义请百度)
       %system  在内核态运行程序,CPU利用的百分比
       %iowait 特别重要 — show the percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request
       %steal

       虚拟CPU等待的百分比 — Show the percentage of time spent in involuntary wait by the virtual CPU or CPUs

       while the hypervisor was servicing another virtual processor

       %idle  CPU 空闲的比列,CPU没有IO请求需要处理 — 和 %iowait含义相反

       

       设备(device)输出结果每段含义详细说明见下表:

      参数 含义
       rrqm/s 

       每秒这个设备相关的读取请求有多少被merge了,

       当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge

       wrqm/s  每秒这个设备相关的写入请求有多少被merge了
       r/s  The number of read requests that were issued to the device per second
       w/s  The number of write requests that were issued to the device per second
       rsec/s  每秒读取的扇区数
       wsec/s  每秒写入的扇区数
       avgrq-sz  
       avgqu-sz  
       await  每一个IO请求的处理的平均时间(单位是毫秒)
       svctm  
       %util

       在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,

       而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。

      一般地,如果该参数是100%表示设备已经接近满负荷运行了

      (当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

       

      参考 iostat(1) - Linux man page

      • ps
      • grep
      • top

      实时显示系统中各个进程的资源占用状况,类似于windows任务管理器,默认3秒钟刷新一次,太快了,看不过来,-d 可以指定,多少时间更新一次

      具体命令行参数说明见下表:

      选项 含义
      -a 按照内存使用率排序
      -d 设置多长时间(以秒为单位)刷新一次结果
      -p <pid>  查看指定进程ID的信息
       -u <username>   查看指定用户名的信息
       -i   不显示任何闲置 (idle) 或僵尸 (zombie) 的进程
       -n iterations  指定更新多少次信息后终止
       -c  显示完整命令,如mysql会显示 “/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql” 
       -s  安全模式
       -S  累积时间模式,开启此模式,会列出该进程及它已经死掉的子进程所使用的CPU时间

       

      例如,“top -d 30” —— 30秒刷新一次(默认按cpu占用率排序),结果如下图:

      分享图片

       输出结果前5行(统计的整体信息)的每一段的含义如下表所示:

      段1含义 段2含义 段3含义 段4含义 段5含义 段6含义 段7含义 段8含义
       1 - top 13:43:10 - 当前时间  up 4:21 - 系统运行时间,格式为"时:分"  1 user - 当前登录用户数

       load average: 0.01, 0.04, 0.01 - 系统负载,即任务队列的平均值

      三个数值依次为"1分钟5分钟 15分钟”到目前的平均值

             
       2 - Tasks 1012 total - 进程总数  1 running -  正在运行的进程数  1095 sleeping - 睡眠的进程数  6 stopped - 停止的进程数 0 zombie - 僵尸进程数       
       3 - Cpu(s)  0.8%us - 用户空间占用CPU百分比  0.1%sy - 内核空间占用CPU百分比  0.0%ni - 用户进程空间改变过优先级的占CPU百分比  99.2%id - 空闲CPU百分比 0.0%wa - 等待输入输出的CPU百分比  0.0%hi -  0.0%si -  0.0%st - 
       4 - Mem  132173688k total - 物理内存总量  38002800k used - 已使用的物理内存总量  94170888k free - 空闲内存总量  208420k buffers - 用于内核缓存的内存总量        
       5 -Swap  4194600k total - 交换区总量  0k used - 已使用的交换区总量  4194300k free - 空闲交换区总量  2624596k cached - 缓冲的交换区总量        

       

      在top命令模式下,按“f”键,会显示每个column的详细信息,如下图:

      分享图片

      每一列的含义翻译成中文如下表所示:

      列名 含义
      PID  进程ID
      USER  用户名
      PR  进程优先级
      NI  nice value,不知道怎么翻译好
      VIRT  进程使用的虚拟内存总量(kb)
      RES  进程使用的、未被换出的物理内存大小
      SHR  共享内存大小(kb)
      S  进程状态。D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
      %CPU  上次更新到现在的CPU时间占用百分比
      %MEM  进程当前使用的可被共享的内存容量
      TIME+  task自启动以来,累计占用cpu时间,精确到百分之一秒
      COMMAND  命令行或者程序名

       

      •  free

       显示空闲和使用的内存信息,命令参数选项如下表:

      选项 含义
       -b -k -m -g  单位分别为bytes, KB, MB, G
       -h 人类可读(即自动以MB,G等为单位显示)
       -t  额外显示总数 (RAM + swap)
       -o (old format) 不会显示 -/+ buffers/cache 这行信息

       

      输入“free -m”,以M为单位,便于精确计算讲解,结果如下图:

      分享图片

       

      输出结果具体每行每列的含义详见下表:

       行 total used free shared buffers cached
       Mem: 内存总数 (total = used + free) 已经使用的内存数量 空闲内存数量 共享内存数量,据说已经废弃不用 缓冲内存数量 缓存内存数量
       -/+ buffers/cache:  

      (- buffers/cache) used —— 反映的是被程序实实在在吃掉的内存

      使用的内存数 = 第一行即Mem行的 “used - buffers - cached” = 34562 - 87 - 1322 = 33151M

      (+ buffers/cache) free —— 反映的是可以挪用的内存总数

      空闲内存数 = 第一行即Mem行的 “free + buffers + cached” = 94513 + 87 + 1322 = 95922M

      差2M不知道哪里来的

           
       swap: (交换区) 交换区内存总数 交换区已使用内存数 交换区空闲内存数      
      • sar

      System Activity report 系统活动报告,是目前Linux最为全面的系统性能分析工具之一

      • vmstat
      • tcpdump

      dump the traffic on a network, 根据用户定义对网络上的包进行截获的包分析工具

       (二)基本简单命令

      列表汇总基本命令:

      命令 功能 命令 功能 命令 功能
       ls  查看当前目录下有哪些文件和文件夹  whereis  查找可执行的软件命令在哪里  clear/reset/ CTRL + l  清屏——切换到下一个新的屏幕
       pwd  显示当前目录的完整路径  cd  改变所在目录  vi  文本编辑器
       cat  输出文件的内容到屏幕  mkdir  创建目录  vim  程序编辑器
       sh  执行shell脚本  rmdir  删除目录  kill  杀死进程
       yum  软件包管理器  mv  移动文件  ifconfig  显示或者设置网络设备
       sudo  以系统管理员的身份执行指令,类似于windows  CMD,右键选择"以管理员身份运行“”  rm  删除文件  cal  日历
       df  查看磁盘使用情况  cp  复制文件  date  日期
       stat  显示文件或者文件系统的状态  touch  更新文件的访问时间和修改时间,如果不存在,则创建之  bc  计算器

       

      linux命令的常识:

        (1)大小写敏感,如 "top"可以识别,"Top" 则comand not found

        (2)-h (部分命令支持,如冲突则不支持)和 --help(大多数命令支持),查看命令帮助信息,如 rmdir --help,提示“ rmdir [OPTION]... DIRECTORY..

        (3)命令有缩写和全拼两种格式,如 rmdir 的"-p" <=> "--parents"

        (4)CTRL +  C ,exit 当前正在执行的命令;CTRL + Z , stop 当前正在执行的命令

        (5)命令格式说明,“【】”括起来表示选项可选,接下来紧跟的详细参数,如ls命令说明:“ls [OPTION]... [FILE]...

        (6)可通过“|”进行命令拼接,如“ps -ef | grep java | grep -v grep” 

        (7)linux 命令或者参数在输入1个或2个字符后,按Tab键,会列出可选命令和参数,如果输入3个或者4个字符,可查找出唯一的命令和参数,将自动补全

        (8)键盘“PgUp”“PgDn"及 键盘“↑”“↓” 可以切换到上一个或者下一个已输入的命令, 按键“←” 和“→” ,可以在命令里左右移动光标

        (8)linux里所有东西都被当做文件,不像windows有硬件设备的概念,如磁盘、CPU等,所以你装的所有软件,如mysql等都是文件

       

      详细论述:

      • ls

      查看当前目录下有哪些文件及文件夹,具体命令行参数说明见下表:

       

      常用选项 含义
      -l 一行显示一个文件或者文件夹,并显示诸如文件大小、文件最后修改时间、owner等信息
      -a 列出所有文件及文件夹,包括隐藏文件
      -R 把子文件夹下的文件也全部列出来,可以“ls -R -l”组合用
      -S 按文件大小倒叙列出所有文件
      -h 以人类可读的形式列出文件大小(K,M,G)

      如在 linux的根目录下,输入“ls”,结果如下图:

      分享图片

      如果是在包含有文件的目录下,输入“ls”,比如在root下,则会包含文件如 “install.log” 及文件夹 “Music” 等等,结果如下图:

      分享图片

       

      组合命令,ls -S -h -l结果如下图:

      分享图片

      • pwd

      显示当前的完整路径名,如下图:

      分享图片

      • cd

      切换当前目录,具体语法: cd [dirName],具体命令行参数说明见下表:

      选项 含义
       .. 切换到父级目录
       /  切换到根目录
       ~ 切换到home根目录

       

      • whereis

      查找命令—具体语法: whereis [ -sbmu ] [ -SBM dir ... -f ] name...,例如"whereis mysql",结果如下图:

      分享图片

      • cat

      输出文件内容到终端,例如“cat install.log”,结果如下图:

      分享图片

      • sh
      • ifconfig

      显示或者设置网络设备,输入“ifconfig”, 结果如下图(可以看到自己的ipv4 、ipv6 地址等信息):

      分享图片

      • kill
      • rm
      • mv
      • cp
      • touch

      更新文件的访问时间和修改时间,如果文件不存在,则创建之。如我在root根目录,“touch test2019.txt”,文件不存在则创建之,效果如下图:

      分享图片

      • mkdir

      创建目录,

      • rmdir
      • df
      • vi 及vim
      • yum 
      • sudo
      • stat

      显示文件或者文件系统的状态,具体语法: stat [OPTION]... FILE...,例如stat a.txt, 结果如下图:

      分享图片

      • bc

      内置计算器,"bc -q" 不会输出关于bc软件的一些信息,直接用(回车输出结果),如下图:

      分享图片

      • cal

      日历

      • date

      日期—具体语法: date [OPTION]... [+FORMAT],例如“date ‘+%Y % m%d %H %m’”,输出当期日期的年月日、时、分,结果如下图:

      分享图片

       

      附注:

       

      未完待续,空了接着完善

      *****************************************************************************************************

      精力有限,想法太多,专注做好一件事就行

      • 我只是一个程序猿。5年内把代码写好,技术博客字字推敲,坚持零拷贝和原创
      • 写博客的意义在于锻炼逻辑条理性,加深对知识的系统性理解,锻炼文笔,如果恰好又对别人有点帮助,那真是一件令人开心的事

      *****************************************************************************************************

      相关文章
      相关标签/搜索
      今期管家婆大图 玄机图香港挂牌正版彩图六合彩资料大全香港马会资料白小姐中特玄机香港挂牌之全篇 五家渠市| 金昌市| 昭觉县| 浪卡子县| 大英县| 偏关县| 靖安县| 大田县| 上栗县| 大埔县| 淮南市| 靖宇县| 望谟县| 桦南县| 武平县| 澄江县| 安泽县| 兴化市| 分宜县| 平江县| 洛宁县| 卫辉市| 黄石市| 古田县| 孙吴县| 平凉市| 双峰县| 五家渠市| 志丹县| 阜阳市| 松潘县| 清流县| 弥渡县| 禄劝| 泰和县| 丹阳市| 平湖市| 阜宁县| 石城县| 遵化市| 广丰县| 隆林| 马龙县| 成安县| 霍州市| 林西县| 象山县| 博野县| 石城县| 文水县| 沐川县| 新干县| 祥云县| 土默特右旗| 思南县| 迭部县| 宁晋县| 二连浩特市| 屏山县| 云霄县| 海宁市| 秦皇岛市| 闸北区| 贺兰县| 文登市| 鄂尔多斯市| 玛多县| 习水县| 根河市| 顺昌县| 措美县| 南召县| 陆良县| 内江市| 贞丰县| 红河县| 焦作市| 安吉县| 宜良县| 邯郸市| 德安县| 满城县| 普定县| 乌什县| 吉木乃县| 永寿县| 南宁市| 本溪| 兴化市| 珲春市| 大同县| 孟州市| 林周县| 元朗区| 鸡泽县| 木兰县| 五大连池市| 阿拉善盟| 三亚市| 迭部县| 固原市| 宣汉县| 乐昌市| 安徽省| 福泉市| 建德市| 陆川县| 安义县| 城固县| 库尔勒市| 乌兰县| 嵊泗县| 盐城市| 从化市| 莱芜市| 轮台县| 凤冈县| 弋阳县| 保亭| 时尚| 遂溪县| 长沙市| 沙河市| 苍南县| 荣成市| 新丰县| 桑植县| 砀山县| 临安市| 谷城县| 乐昌市| 宁津县| 衡阳县| 昌图县| 广河县| 甘南县| 嘉峪关市| 文化| 云安县| 双牌县| 宁夏| 夏津县| 桂阳县| 炉霍县| 新竹市| 府谷县| 广德县| 鄄城县| 武夷山市| 湖南省| 棋牌| 丹寨县| 皮山县| 呼和浩特市| 龙川县| 南雄市| 鄄城县| 霍林郭勒市| 灵石县| 浠水县| 西乌珠穆沁旗| 虞城县| 钟祥市| 安岳县| 印江| 丽江市| 聂荣县| 当雄县| 泽库县| 延安市| 玉山县| 平泉县| 墨玉县| 六安市| 彭山县| 金坛市| 蓬溪县| 旌德县| 庆城县| 红桥区| 巴林左旗| 汝城县| 舞钢市| 南召县| 聊城市| 孟州市| 鄂托克旗| 昆明市| 怀集县| 正镶白旗| 黄山市| 阿坝县| 柳林县| 五指山市| 长岭县| 桑日县| 哈密市| 仪陇县| 息烽县| 察雅县| 汝州市| 扶余县| 九龙坡区| 阜城县| 连州市| 新建县| 江口县| 屏边| 白朗县| 望都县| 界首市| 黄山市| 麻城市| 北碚区| 措美县| 奇台县| 西贡区| 新兴县| 上蔡县| 承德市| 建水县| 靖安县| 家居| 通道| 山阳县| 刚察县| 二手房| 辽阳市| 灌南县| 岱山县| 建昌县| 准格尔旗| 册亨县| 西和县| 鄂州市| 巴马| 广灵县| 莱西市| 彭阳县| 历史| 壤塘县| 阿坝| 绥江县| 喀喇沁旗| 化德县| 苏尼特右旗| 大埔县| 宿州市| 额尔古纳市| 银川市| 广东省| 宣化县| 应城市| 手游| 同心县| 辽阳县| 高青县| 淄博市| 华宁县| 无极县| 沙河市| 来安县| 环江| 榕江县| 宜宾市| 丰宁| 满洲里市| 陆良县| 丰台区| 丰都县| 敖汉旗| 衡阳县| 涿鹿县| 萝北县| 长春市| 新乡县| 遂宁市| 忻城县| 鄄城县| 哈尔滨市| 青铜峡市| 微山县| 葵青区| 信丰县| 永德县| 诸城市| 武定县| 沽源县| 昌乐县| 扶风县| 襄垣县| 白山市| 五大连池市| 孟津县| 章丘市| 右玉县| 巍山| 二连浩特市| 沿河| 舒兰市| 米易县| 连江县| 黔西县| 木里| 襄汾县| 闽清县| 遂昌县| 牡丹江市| 手游| 云浮市| 隆安县| 嵊泗县| 伊宁县| 项城市| 濉溪县| 神木县| 黑河市| 库车县| 郎溪县| 静宁县| 连江县| 达州市| 西宁市| 会宁县| 墨江| 灌阳县| 霞浦县| 镇江市| 崇礼县| 太白县| 新蔡县| 栾城县| 荆门市| 神池县| 柘荣县| 湟源县| 兴和县| 彰武县| 湖北省| 德昌县| 洱源县| 酒泉市| 南木林县| 丰顺县| 无为县| 正镶白旗| 马山县| 保山市| 鄂托克前旗| 修文县| 和顺县| 海阳市| 古蔺县| 策勒县| 杭锦旗| 太和县| 淮北市| 阳城县| 武安市| 凌海市| 伽师县| 安宁市| 北流市| 通化县| 内江市| 四子王旗| 黑龙江省| 华阴市| 晋江市| 电白县| 福泉市| 深州市| 宜兴市| 木兰县| 左权县| 丰镇市| 金山区| 西贡区| 嘉鱼县| 乌审旗| 资兴市| 滦平县| 荥经县| 定襄县| 宜丰县| 蒙山县| 秀山| 静安区| 句容市| 茶陵县| 巨野县| 永嘉县| 福安市| 肇东市| 南皮县| 安塞县| 驻马店市| 乌鲁木齐县| 金沙县| 大同市| 安丘市| 广灵县| 龙南县| 大田县| 潜山县| 安图县| 吉首市| 颍上县| 建瓯市| 连南| 湖州市| 镇巴县| 颍上县| 雷波县| 原平市| 类乌齐县| 遂平县| 阜新| 正镶白旗| 汶上县| 金川县| 靖边县| 喀喇| 三穗县| 大英县| 资兴市| 河南省| 博野县| 淮安市| 四平市| 秦皇岛市| 柳州市| 竹北市| 藁城市| 濉溪县| 象州县| 黄龙县| 隆尧县| 吕梁市| 竹北市| 高陵县| 若羌县| 宜宾县| 嘉祥县| 阿鲁科尔沁旗| 静安区| 青海省| 嘉祥县| 杭锦后旗| 化州市| 娄烦县| 云安县| 洛南县| 四子王旗| 华安县| 慈溪市| 房山区| 甘洛县| 百色市| 聊城市| 天峻县| 朝阳区| 遂宁市| 旌德县| 晋宁县| 任丘市| 会昌县| 洛宁县| 罗定市| 兰州市| 化隆| 二连浩特市| 民县| 瓦房店市| 牡丹江市| 乐亭县| 澜沧| 乡城县| 利川市| 交口县| 陆川县| 翼城县| 巩留县| 鱼台县| 景东| 绿春县| 镇沅| 靖远县| 阿拉善左旗| 五莲县| 宜黄县| 兰溪市| 遵化市| 酒泉市| 龙山县| 余姚市| 娄烦县| 格尔木市| 高要市| 蒲江县| 邯郸市| 宁安市| 汨罗市| 峨山| 略阳县| 普定县| 黔西县| 冷水江市| 项城市| 庆云县| 延寿县| 彰化市| 威信县| 柳河县| 东乡族自治县| 维西| 凌源市| 贵阳市| 乌恰县| 武陟县| 永昌县| 牙克石市| 杭锦后旗| 双城市| 五寨县| 开远市| 天峨县| 望奎县| 刚察县| 神农架林区| 义乌市| 田东县| 营口市| 漾濞| 南安市| 雷波县| 永昌县| 南安市| 英德市| 龙里县| 九寨沟县| 大理市| 株洲市| 宁国市| 武安市| 丹棱县| 始兴县| 盘锦市| 宁明县| 大港区| 新宁县| 仁寿县| 阜宁县| 成都市| 阿坝| 丰原市| 栾城县| 浙江省| 白城市| 武义县| 神池县| SHOW| 马龙县| 石首市| 汾阳市| 昭平县| 荃湾区| 铜陵市| 上饶市| 麻栗坡县| 呼伦贝尔市| 长垣县| 鲁甸县| 师宗县| 永胜县| 江油市| 余干县| 诸暨市| 湾仔区| 石渠县| 利辛县| 榆林市| 阜宁县| 吴堡县| 文登市| 芒康县| 林口县| 井冈山市| 肇庆市| 开江县| 德令哈市| 繁昌县| 乌兰浩特市| 大石桥市| 报价| 安顺市| 宜州市| 海宁市| 高雄市| 平果县| 双辽市| 乐山市| 乌兰浩特市| 堆龙德庆县| 蚌埠市| 万宁市| 江达县| 冀州市| 祁门县| 怀远县| 安庆市| 肇东市| 静乐县| 新绛县| 天峨县| http://3g.jx1870barv.fun http://m.jx1870connectv.fun http://3g.jx1870brandv.fun http://3g.jx1870contestv.fun http://wap.jx1870brandv.fun http://wap.jx1870continuev.fun http://m.jx1870conv.fun http://wap.jx1870dressv.fun http://www.jx1870endv.fun http://m.jx1870echov.fun http://wap.jx1870cardv.fun http://jx1870benefitv.fun http://m.jx1870checkv.fun http://3g.jx1870cardv.fun http://jx1870believev.fun http://wap.jx1870coachv.fun http://m.jx1870bridgev.fun http://3g.jx1870allowv.fun