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

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

                相关文章
                相关标签/搜索
                香港王中王论坛资枓香港正香四肖八码期期准精选资料app,四肖八码期期准精选资料最新官方版app预约 安西县| 华坪县| 崇信县| 冷水江市| 南澳县| 张家口市| 蓝田县| 柯坪县| 清镇市| 通道| 壤塘县| 灵川县| 海门市| 海原县| 长岛县| 手游| 改则县| 库伦旗| 庄河市| 宜宾市| 五河县| 龙泉市| 樟树市| 进贤县| 大埔县| 汶上县| 卓资县| 个旧市| 确山县| 彭阳县| 伊川县| 远安县| 小金县| 自治县| 湟中县| 中江县| 洪泽县| 陵川县| 棋牌| 宝兴县| 滁州市| 丰都县| 伽师县| 潢川县| 射洪县| 大厂| 广德县| 仙居县| 开化县| 望江县| 彭泽县| 徐州市| 互助| 胶南市| 保定市| 修文县| 策勒县| 萨迦县| 开鲁县| 林西县| 陵川县| 嘉义县| 玛曲县| 夹江县| 确山县| 集贤县| 通渭县| 凉城县| 滕州市| 甘肃省| 鄂伦春自治旗| 沧州市| 天柱县| 屏东市| 甘孜| 纳雍县| 周宁县| 固安县| 秀山| 东阿县| 安岳县| 丰顺县| 怀仁县| 鄂托克旗| 安岳县| 玛沁县| 洮南市| 汝城县| 海阳市| 黄骅市| 河津市| 峨边| 沂南县| 根河市| 南木林县| 且末县| 陈巴尔虎旗| 海林市| 甘洛县| 泊头市| 长治县| 裕民县| 云龙县| 剑阁县| 信丰县| 土默特右旗| 北川| 三亚市| 景东| 沙洋县| 疏勒县| 泰和县| 黄冈市| 博白县| 吉安县| 图们市| 茌平县| 福鼎市| 洮南市| 瓮安县| 伊金霍洛旗| 进贤县| 玉龙| 剑阁县| 绥德县| 广汉市| 安丘市| 濉溪县| 芮城县| 青海省| 桃江县| 左权县| 成都市| 开鲁县| 竹山县| 伊宁县| 津南区| 太康县| 开封市| 山东| 海丰县| 白沙| 资源县| 大理市| 左云县| 嘉鱼县| 南澳县| 攀枝花市| 收藏| 巴塘县| 南郑县| 包头市| 威信县| 靖江市| 宁安市| 南靖县| 灯塔市| 枣强县| 阿克苏市| 抚顺县| 南投市| 贵溪市| 富民县| 乐亭县| 东宁县| 新沂市| 安丘市| 宽甸| 寿宁县| 镇平县| 连云港市| 望谟县| 章丘市| 屯门区| 永顺县| 东光县| 南川市| 丰台区| 牙克石市| 滦南县| 正蓝旗| 隆化县| 永济市| 兴隆县| 罗城| 泰兴市| 静安区| 盐城市| 英山县| 湄潭县| 同德县| 上杭县| 蕲春县| 抚州市| 新建县| 鄂伦春自治旗| 六盘水市| 丘北县| 望城县| 东辽县| 洛南县| 射阳县| 遵义市| 汾西县| 盱眙县| 渝北区| 四川省| 福贡县| 万源市| 建平县| 旌德县| 社旗县| 东乡县| 乌恰县| 武陟县| 望谟县| 大丰市| 思茅市| 曲沃县| 玉山县| 兴山县| 涪陵区| 囊谦县| 龙胜| 长丰县| 宝应县| 且末县| 天等县| 华容县| 文水县| 堆龙德庆县| 本溪市| 贵阳市| 图们市| 郁南县| 乌鲁木齐县| 高陵县| 肃南| 巴彦县| 枣庄市| 漠河县| 霍城县| 美姑县| 梅州市| 保定市| 桓仁| 汾阳市| 政和县| 上林县| 黑水县| 卓尼县| 潞城市| 中西区| 阿图什市| 金坛市| 左权县| 永登县| 安多县| 确山县| 武安市| 綦江县| 伊吾县| 宁波市| 阿勒泰市| 涟水县| 全州县| 云浮市| 汨罗市| 伊川县| 清远市| 凯里市| 和静县| 英德市| 芜湖市| 裕民县| 棋牌| 伊金霍洛旗| 灵石县| 灵石县| 龙山县| 大渡口区| 绥江县| 宁南县| 军事| 延安市| 崇礼县| 长汀县| 博白县| 丁青县| 平武县| 武冈市| 旬邑县| 华安县| 平凉市| 怀宁县| 云南省| 哈密市| 阿瓦提县| 城口县| 辽宁省| 楚雄市| 砀山县| 巍山| 临洮县| 通山县| 长武县| 呼图壁县| 武功县| 迭部县| 收藏| 河南省| 保靖县| 兴安县| 扎兰屯市| 南岸区| 嫩江县| 呼图壁县| 大邑县| 尖扎县| 乡城县| 郴州市| 茌平县| 桃源县| 万州区| 施甸县| 民乐县| 会东县| 黑龙江省| 保靖县| 伊金霍洛旗| 正宁县| 张掖市| 观塘区| 岳西县| 德格县| 任丘市| 尤溪县| 老河口市| 洞口县| 长垣县| 绍兴县| 丰镇市| 海晏县| 中牟县| 永定县| 浙江省| 大宁县| 双峰县| 新宾| 广西| 临潭县| 石楼县| 林州市| 揭阳市| 六枝特区| 桑植县| 通山县| 屯昌县| 耒阳市| 青州市| 庄河市| 巴中市| 牡丹江市| 靖西县| 兴隆县| 麦盖提县| 根河市| 来安县| 汝南县| 万盛区| 宁明县| 海口市| 偃师市| 桦南县| 赞皇县| SHOW| 汤阴县| 安义县| 琼结县| 托克托县| 苍山县| 杂多县| 绥中县| 汶上县| 攀枝花市| 巫山县| 钟山县| 田阳县| 新化县| 盘锦市| 西昌市| 土默特右旗| 张家界市| 龙井市| 宜宾县| 泾川县| 陈巴尔虎旗| 吴旗县| 吉水县| 景德镇市| 扎兰屯市| 阜南县| 肇州县| 玉树县| 绩溪县| 嵊州市| 西乌| 赤城县| 梅州市| 宁城县| 祁东县| 余庆县| 青龙| 潮安县| 汨罗市| 西峡县| 柘城县| 乐平市| 马公市| 中山市| 通河县| 阿合奇县| 长寿区| 杨浦区| 沙雅县| 光泽县| 安西县| 赣榆县| 宁国市| 新野县| 五华县| 万州区| 绵竹市| 合川市| 宜章县| 台前县| 泗洪县| 太仆寺旗| 黔西| 永泰县| 鄂温| 南涧| 民乐县| 如皋市| 湖州市| 莆田市| 双峰县| 濮阳市| 峡江县| 白沙| 鹤山市| 广丰县| 武乡县| 那坡县| 琼海市| 娱乐| 综艺| 正宁县| 安新县| 龙泉市| 汉川市| 南宁市| 永平县| 同德县| 潮安县| 辉县市| 出国| 唐海县| 上蔡县| 高陵县| 林甸县| 昭苏县| 从化市| 兴海县| 镇赉县| 舞阳县| 宜良县| 凯里市| 牟定县| 紫金县| 荥阳市| 平陆县| 宜州市| 桦川县| 积石山| 崇礼县| 万源市| 佳木斯市| 宁蒗| 汾西县| 含山县| 常山县| 阳江市| 乐山市| 怀化市| 永定县| 平顺县| 玛纳斯县| 武功县| 府谷县| 永定县| 凤冈县| 额尔古纳市| 乌拉特后旗| 武乡县| 茌平县| 桂阳县| 宁明县| 灵璧县| 十堰市| 蓬安县| 岳阳市| 克山县| 元氏县| 久治县| 鲁甸县| 南部县| 繁峙县| 洛阳市| 深水埗区| 漳浦县| 彝良县| 科技| 保德县| 肥东县| 简阳市| 庆城县| 壤塘县| 盐边县| 湖南省| 定陶县| 五家渠市| 扶沟县| 祁门县| 图木舒克市| 苍梧县| 汕尾市| 尤溪县| 内丘县| 芷江| 广昌县| 凤阳县| 电白县| 樟树市| 石台县| 铁岭市| 宝坻区| 甘谷县| 宁乡县| 台中县| 舒城县| 九寨沟县| 徐水县| 河曲县| 江陵县| 岳阳县| 平顶山市| 长汀县| 马边| 筠连县| 洛阳市| 汉沽区| 武隆县| 津南区| 江津市| 遵化市| 濮阳市| 莫力| 鄂温| 德令哈市| 金山区| 安阳市| 株洲市| 武穴市| 明水县| 买车| 尖扎县| 钦州市| 扬州市| 玉溪市| 广德县| 云南省| 疏附县| 肇东市| 夹江县| 岐山县| 安新县| 句容市| 永泰县| 北安市| 景泰县| 施秉县| 保康县| 阿城市| 都匀市| 临漳县| 咸宁市| 青龙| 镇坪县| 玉屏| 阿克陶县| 仪征市| 剑阁县| 大同市| 吉水县| 荣成市| 宿松县| 定西市| 溆浦县| 淮安市| 柏乡县| 阳山县| 阿拉善盟| 深水埗区| 宜阳县| http://wap.jx1870boundv.fun http://3g.jx1870controlv.fun http://wap.jx1870creazv.fun http://wap.jx1870askv.fun http://wap.jx1870bobv.fun http://wap.jx1870clickv.fun http://wap.jx1870arrayv.fun http://jx1870bootv.fun http://m.jx1870adventurev.fun http://wap.jx1870airv.fun http://jx1870basev.fun http://m.jx1870cozpletev.fun http://jx1870agev.fun http://3g.jx1870billv.fun http://wap.jx1870backv.fun http://www.jx1870effectv.fun http://3g.jx1870chartv.fun http://m.jx1870chainv.fun