环境:
centos 7.4
摘要说明:
本系列主要讲述liunx基础操作;
本篇文章主要基于centos7来讲述liunx下常用系统级命令及其他常见命令补充。
步骤:
1.top(用于实时显示 process 的动态)
top语法及常用命令如下:
语法
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
参数说明:
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
实例:
显示进程信息
# top
显示完整命令
# top -c
以批处理模式显示程序信息
# top -b
以累积模式显示程序信息
# top -S
设置信息更新次数
top -n 2
//表示更新两次后终止更新显示
设置信息更新时间
# top -d 3
//表示更新周期为3秒
显示指定的进程信息
# top -p 139
//显示进程号为139的进程信息,CPU、内存占用率等
显示更新十次后退出
top -n 10
使用者将不能利用交谈式指令来对行程下命令
top -s
将更新显示二次的结果输入到名称为 top.log 的档案里
top -n 2 -b < top.log
我们任意liunx下执行top可看到如下:
其中每行解释如下:
第一行:任务队列信息,与uptime
命令执行结果相同。
- 09:14:48:系统当前时间
- up 17:39:主机已运行时间,这里指的是17小时,天则再前加xd
- 1 users:用户连接数(不是用户数,who命令)
- load average: 0.09, 0.12, 0.19:系统平均负载,统计最近1,5,15分钟的系统平均负载;load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:进程信息
- Tasks: 63 total:进程总数
- 1 running:正在运行的进程数
- 62 sleeping:睡眠的进程数
- 0 stopped:停止的进程数
- 0 zombie:僵尸进程数
第三行:CPU信息(当有多个CPU时,这些内容可能会超过两行)
- 0.0 us:用户空间所占CPU百分比
- 6.7 sy:内核空间占用CPU百分比
- 0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
- 93.3 id:空闲CPU百分比
- 0.0 wa:等待输入输出的CPU时间百分比
- 0.0 hi:硬件CPU中断占用百分比
- 0.0 si:软中断占用百分比
- 0.0 st:虚拟机占用百分比
第四行:Mem内存信息(与第五行的信息类似与free命令)
- 1883492 total:物理内存总量
- 544504 free:已使用的内存总量
- 593260 used:空闲的内存总量(free+used=total)
- 745728 buffers:用作内核缓存的内存量
第五行:swap信息
- 0 total:交换分区总量
- 0 used:已使用的交换分区总量
- 0 free:空闲交换区总量
- 1121828 cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
第六行开始:进程信息区
- PID:进程id
- USER:进程所有者的用户名
- PR:优先级
- NI:nice值。负值表示高优先级,正值表示低优先级
- VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES:进程使用的、未被换出的物理内存的大小
- SHR:共享内存大小
- S:进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
- %CPU:上次更新到现在的CPU时间占用百分比
- %MEM:进程使用的物理内存百分比
- TIME+:进程所使用的CPU时间总计,单位1/100秒
- COMMAND:命令名/行
- PPID:父进程id
- RUSER:Real user name(看了好多,都是这样写,也不知道和user有什么区别,欢迎补充此处)
- UID:进程所有者的id
- GROUP:进程所有者的组名
- TTY:启动进程的终端名。不是从终端启动的进程则显示为?
- P:最后使用的CPU,仅在多CPU环境下有意义
- TIME:进程使用的CPU时间总计,单位秒
- SWAP:进程使用的虚拟内存中被被换出的大小
- CODE:可执行代码占用的物理内存大小
- DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小
- nFLT:页面错误次数
- nDRT:最后一次写入到现在,被修改过的页面数
- WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
- Flags:任务标志
2.df -lh(查看系统各磁盘使用率)
使用如下:
[root@izbp1dham6enej0lrs00riz ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 4.1G 34G 11% /
devtmpfs 911M 0 911M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 312K 920M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/0
3.ps(服务进程查看)
常用来进行服务进程查看的命令有:
- ps -aux 通常加上管道一起使用即ps-aux|grep xx(服务名/进程id)
- ps -ef 通常加上管道一起使用即ps-aux|grep xx(服务名/进程id)
其中ps -ef使用的是标准格式显示进程,显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD
而ps -aux使用的是BSD格式来显示 java这个进程显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND
- UID //用户ID、但输出的是用户名
- PID //进程的ID
- PPID //父进程ID
- C //进程占用CPU的百分比
- STIME //进程启动到现在的时间
- TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
- CMD //命令的名称和参数
- USER //用户名
- %CPU //进程占用的CPU百分比
- %MEM //占用内存的百分比
- VSZ //该进程使用的虚拟內存量(KB)
- RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
- STAT //进程的状态
- START //该进程被触发启动时间
- TIME //该进程实际使用CPU运行的时间
4.netstat(用于查看网络环境)
常使用的有:
- netstat -a 显示详细的网络状况
- netstat -apu 显示UDP端口号的使用情况
- netstat -nlpt | grep xx(端口) 和管道同步使用查看端口占用情况;netstat -tunlp | grep 效果一致
- netstat -nap | grep xx(进程id) 和管道同步使用查看进程网络情况
5.chkconfig(用于管理服务的)
常使用的有:
- chkconfig --list 列出chkconfig所知道的所有的服务的情况
- chkconfig xx(服务名) on #开机启动该服务
- chkconfig xx(服务名) off #开机不启动该服务
6.kill(用于杀进程)
有时候服务由于热部署会产生多个进程,正常关闭无法关闭,这个时候就需要手动关闭进程,但需要注意别杀错进程;
经常使用:
- kill -9 xx(进程id) 彻底杀死进程;
7.mount(用于挂载)
通常使用:
将 /dev/hda1 挂在 /mnt 之下。
#mount /dev/hda1 /mnt
将 /dev/hda1 用唯读模式挂在 /mnt 之下。
#mount -o ro /dev/hda1 /mnt
将指定服务器的nfs4形态的目录挂载到本地/home/exp
mount -t nfs4 xxx.xxx.xxx.xxx(nfs服務器IP):/ /home/exp
7.ifconfig(显示或设置网络设备)
这里只推荐查看命令:
- ifconfig
- HWaddr/ether :网卡的硬件地址,即MAC地址
- inet:IPv4的IP 地址
- broadcast:广播地址
- netmask:子网掩码
- inet6 addr:IPv6地址
- MTU:最大传输单元
- Metric:用于计算路由的成本
- RX:表示网络启动到现在的封包接受情况 (Receive)
- packets:表示接包数
- errors:表示接包发生错误的数量
- dropped:表示丢弃的包数量
- overruns:表示接收时因过速而丢失的数据包数
- frame:表示发生frame错误而丢失的数据包数
- TX:从网络启动到现在传送的情况 (Transmit)
- collisions:冲突信息包的数目
- txqueuelen:发送队列的大小
- RX byte、TX byte:总传送/接受的量
8.其他常用命令
- whoami 查看当前登陆用户
- who 查看多少用户在使用系统
- date 查看系统时间,可跟时间格式使用
- cal 查看日历,可跟年份,查看指定的年份
-
free 查看内存情况,top的分支