---top: 实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具.
参数:
-b:以批处理模式操作,
-c:显示完整的命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i:使top不显示任何闲置或者僵死进程。
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数,完成后将会退出 top
交互命令:
1)基础操作
1:显示CPU详细信息,每核显示一行
d / s :修改刷新频率,单位为秒
h:可显示帮助界面
n:指定进程列表显示行数,默认为满屏行数
q:退出top
2)面板隐藏显示
l:隐藏/显示第1行负载信息;
t:隐藏/显示第2~3行CPU信息;
m:隐藏/显示第4~5行内存信息;
3)进程列表排序
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序
w:将当前设置写入~/.toprc文件中
说明:
--前5行系统的资源使用状况
第1行:top - 14:26:46 up 16 days, 23:56, 2 users, load average: 0.51, 0.58, 0.32
==>任务信息队列
1)top:系统当前时间
2)up:系统运行时间
3)users:当前登录用户数
4)load average:系统平均负载,包含三个值,
分别表示1分钟、5分钟、15分钟内正在等待CPU处理的进程队列情况。
第2行Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie
==>进程信息
1) Tasks:系统中的进程总数
2) running:正在运行的进程总数
3) sleeping:正在休眠的进程数
4) stopped:停止的进程数
5) zombie:僵尸进程数,如果不是0,则需要检查僵尸进程
第3行 %Cpu(s): 0.0 us, 0.8 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
==>CPU 信息
1) us:用户空间的占用率
2) sy:内核空间的占用率
3) ni:改变过优先级的用户进程占用率
4) id:空闲 CPU 的占用率
5) wa: 等待输入/输出进程的占用率
6) hi: 硬中断的占用率(硬中断是硬盘、网卡等硬件设备发送给CPU的中断消息)
7) si:软中断的占用率(软中断是由程序发出的中断)
8) st:有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比
第4行 MiB Mem : 15996.5 total, 642.6 free, 8673.8 used, 6680.2 buff/cache
==>物理内存信息
1) total:物理内存总量
2) free:空闲内存量
3) used:使用的内存量
4) buffer/cache:用作内核缓冲/缓存的内存量
第5行 MiB Swap: 4096.0 total, 4042.7 free, 53.2 used. 7023.0 avail Mem
==>交换分区信息
1) total:交换区内存总量
2) free:空闲交换区总量
3) used:使用的交换区总量
4) buffer/cache:缓冲/缓存的交换区总量
--第6行开始,显示系统中进程的信息,显示如下内容(共12列):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1) PID: 进程id
2) USER:该进程所属的用户
3) PR: 优先级,数值越小优先级越高
4) NI: 优先级,负值表示高优先级,正值表示低优先级
5) VIRT: 使用虚拟内存的大小,单位为 KB,VIRT=SWAP+RES
6) RES: 使用物理内存的大小,单位KB,RES=CODE+DATA
7) SHR: 共享内存大小,单位KB
8) S: 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
9) %CPU: 占用 CPU 的百分比
10) %MEM: 占用内存百分比
11) TIME+: 使用CPU的时间
12) COMMAND: 进程的命令名
例子:
top -c ##显示整个命令行而不只是显示命令名
top -n 1 -d 3 ##显示的刷新速率为1S一次,显示3次后退出
top -i ##不显示任何闲置或者僵死进程;
top -u user ##显示user用户下的所有进程;
top -p 23456 ##显示进程号为23456的进程信息;
---df: 检查文件系统的磁盘空间占用情况
参数:
-a: 显示所有文件系统的磁盘使用情况,包括 /proc文件系统。
-h:方便阅读方式显示,自动以k, m和g字节为单位显示;
-k: 以k字节为单位显示。
-m: 以M字节为单位显示;
-i: 显示i节点信息,而不是磁盘块。
-l: 只显示本地文件系统
-t: 显示各指定类型的文件系统的磁盘空间使用情况。
-x: 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T: 显示文件系统类型。
例子:
df -ah ##显示全部系统磁盘使用情况,单位自动适应;
df -l ##显示本地的磁盘情况;
df -k ##以单位为k字节进行显示;
df -i ##以inode模式来显示磁盘使用情况
df -T ##显示文件系统类型;
---du: 用于查看文件或目录的磁盘使用情况,帮助管理存储空间
参数:
-h: 以人性化的格式显示文件大小 (例如 1K, 234M)
-s:显示总计磁盘使用量
-c:显示总计磁盘使用量,但包括每个文件的大小
-d:--max-depth=N 限制显示的目录深度为N层
–exclude=PATTERN 排除与PATTERN匹配的文件或目录
-B, --block-size=SIZE: 指定块大小 (默认为1K)
-a: 显示所有文件和目录的磁盘空间使用情况
例子:
du -h dir/* ##显示dir目录下的各个文件和目录占用的磁盘空间大小 ;
du -sh ##显示当前目录占磁盘的总空间大小
du -ch ##显示每个文件的大小,并在末尾显示总计磁盘使用量
du -h --max-depth=1 ##只想查看当前目录下一级子目录的磁盘使用情况
du -h --exclude=ignore ##统计排除名为"ignore"的目录
du -h -B 1MB ##以MB为单位显示文件大小
---free:用来显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。
free命令的实现原理是在查询 /proc/meminfo文件里的信息;
参数:
-b:以Byte为单位显示内存使用情况。
-k:以KB为单位显示内存使用情况。
-m:以MB为单位显示内存使用情况。
-g:以GB为单位显示内存使用情况。
-o:不显示缓冲区调节列。
-s<间隔秒数>: 每隔N秒打印一次内存信息,Ctrl+c中断循环显示。
-c N:重复打印内存信息N次
-t:显示内存总和列。
-h:人性化自动显示内存信息;
-l: 显示高低内存的利用率
-V:显示版本信息
例子:
free
free -m ##显示内存的信息,单位MB
free -g ##显示内存的信息,单位GB
free -ht ####显示内存的信息,单位自动调整,便于查看
free -l ##显示高低内存的利用率
free -s 1 -t ##每隔1秒打印一次全部内存信息,按ctrl+c退出;
free -c 3 ##连续打印三次内存信息;
结果输出说明:
total used free shared buff/cache available
Mem: 16380460 7956548 1624640 1328 6799272 8132380
Swap: 4194300 53760 4140540
1)total:物理内存的总大小
2)used:被使用的大小
3)free:可用的空闲内存大小
4)shared:被多个进程共享的内存
5)buffer/cached:磁盘缓存的大小
6)available:还可以被进程使用的物理内存大小
---ps: 用于查看当前系统中运行的进程信息
参数:
-A 显示所有进程(等价于-e)
-a 显示一个终端的所有进程
-e 显示所有进程,而不仅仅是当前用户的进程
-u 显示指定用户的进程的详细信息,如进程所有者、CPU 使用率、内存使用率等
-N 忽略选择
-d 显示所有进程,但省略所有的会话
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用
-p pid 进程使用cpu的时间
-g gid or groupname 显示组的所有进程
-U username: 显示该用户下的所有进程,且显示各个命令的详细路径,
-f 全部列出,通常和其他选项联用
-l 长格式(有F,wchan,C 等字段)
-m 显示所有的线程
-H 显示进程的层次
例子:
ps -ef ##查看包有进程信息
ps -aux ##查看所有进程
ps -p PID ##查看指定PID的进程信息
ps -aux|grep dhcp ## 查看dhcp进程
ps -aux --sort=-pcpu|head -5 ##查看cpu占用率前5的进程
ps -fU root ##查看 用户为root的所有进程;
ps -Ha ##查看进程的层次结构
ps -r ##只查看正在进行的进程
STAT字段说明:
D:无法中断的休眠状态(通常 IO 的进程)
R:正在运行可中在队列中可过行的
S:处于休眠状态
T:停止或被追踪
W:进入内存交换
X: 死掉的进程
Z: 僵尸进程
<:优先级高的进程
N:优先级较低的进程
L:有些页被锁进内存
s: 进程的领导者(在它之下有子进程)
l: 多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads)
+: 位于后台的进程组
---nice:为正在运行的进程设置或显示优先级。它可以帮助控制进程在CPU中的执行优先级。
参数:
-n <val>:调整进程的优先级,是个相对值,数值范围是-20至19,默认值是10。
val值为负时,表示优先级调高 ;反之,则表示优先级高低;
-p:指定要调整优先级的进程ID。
例子:
nice -n 1 vim & ##将 vim 的优先级值增加1,相当于优先级降低;
nice -n -5 -p 1234 ##将 pid为1234的优先级提高,值减少5;
ps -l ##可用于查看进程的优先级
---mount: 用于将具有特定文件系统的设备连接到指定的挂载点,进而来访问设备上的内容;
用法: mount -t <文件系统类型> -o <常见选项> <设备名称> <指定要挂载点路径>
参数:
-l:以列表的形式显示当前已挂载的文件系统。
-t: <文件系统类型>:指定要挂载的文件系统的类型,例如ext4、ntfs等。
-o: <选项>:指定挂载选项,比如读写权限、访问控制等。
--常见选项:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
remount:重新挂载一个已经挂载的文件系统,可以修改挂载选项。
user:允许普通用户挂载文件系统,而不仅仅是超级用户。
nouser:只允许超级用户挂载文件系统。
exec:允许在文件系统中执行可执行文件。
noexec:禁止在文件系统中执行可执行文件
例子:
mount ##查看当前系统中已经挂载的文件系统情况
mount -l ##显示当前已挂载的文件系统
mount -o ro /dev/sda1 /mnt ##以只读模式挂载文件系统
mount -o remount,rw /dev/sdc1 /mnt ##重新挂载已挂载的文件系统
##查看接入的硬盘设备信息,确定要挂载的设备节点名称;如:/dev/sda1
sudo fdisk -l
###使用mount命令将NTFS设备挂载到目标目录
sudo mount -t ntfs-3g /dev/sdb1 /mnt/ntfs_drive
#指定中文编码格式挂载u盘到/tmp/usb目录下
sudo mount -t vfat -o iocharset=cp936 /dev/sda1 /tmp/usb
##网络nfs的挂载方法
sudo mount -t nfs -o nolock 192.168.0.100:/home/nfs /tmp/nfs
##把/home/data目录制作成iso格式文件
mkisofs -r -J -V mydisk -o /tmp/mydisk.iso /home/data
##使用/mnt/vcdrom挂载点就可以访问光盘镜像文件mydisk.iso内容
mount -o loop -t iso9660 /tmp/mydisk.iso /mnt/vcdrom
说明各种文件类型:
--光盘或光盘镜像:iso9660
--DOS fat16文件系统:msdos
--Windows 9x fat32文件系统:vfat
--Windows NT ntfs文件系统:ntfs
--Mount Windows文件网络共享:smbfs
--UNIX(LINUX) 文件网络共享:nfs
---umount:卸载挂载的设备
参数:
-f: 强制卸载
-a:卸除/etc/mtab中记录的所有文件系统;
-l:延迟卸载;
-n:卸除时不要将信息存入/etc/mtab文件中;
-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;
-t<文件系统类型>:仅卸除选项中所指定的文件系统
例子:
sudo umount /mnt/usb ##卸载U盘;
或sudo umount /dev/sda1
sudo umount -f /mnt/usb ##如果U盘设备正在使用中,可使用-f强制卸载
umount -vl /mnt/mymount/ ###执行延迟卸载
---tree: 用于以树状结构展示文件系统目录的层次结构。
参数:
-a: 显示所有文件和目录,包括隐藏的文件和目录
-L level: 限制显示的层级数。例如,使用 -L 2 将只显示目录的前两级
-d: 只显示目录,而不显示文件
-f: 在文件名前显示完整的路径
-i: 不显示树状图的线条
p pattern : 只显示符合模式匹配的文件和目录
例子:
tree -L 2 /home ##显示目录的深度
tree -d /home/user ##只显示目录;
tree -l /home/user ##显示文件和目录的详细信息
tree -a /home/user ##显示隐藏文件
---pstree: 命令以树状图的方式展现进程之间的派生关系,能够直观显示进程之间的关联
工具安装:sudo apt-get install psmisc
参数:
-a:显示每个程序的完整指令,包含路径、参数或是常驻服务的标识;
-c:不使用精简标识法;
-h:列出树状图时,特别标明正在执行的程序;
-H<程序识别码>:此参数的效果和指定-h参数类似,但特别标明指定的程序;
-l:采用长列格式显示树状图;
-n:用程序识别码排序,预设是以程序名称来排序;
-p:显示程序识别码;
-u:显示用户名称;
-U:使用UTF-8列绘图字符;
-V:显示版本信息。
例子:
pstree -p ##显示当前所有进程的进程号和父进程号
pstree -a ##显示所有进程的详细信息,遇到相同的进程名会进行压缩显示
pstree -u ##该命令将显示进程的所有者
---uname: 打印当前系统相关的信息,其包括内核版本号、硬件架构、主机名称和操作系统类型等等。
参数:
-a: 打印全部的信息。
-s: 打印内核名称。
-n: 打印在网络上的主机名称。
-r: 打印内核的发行编号。
-v: 打印内核的版本。
-m: 打印主机的硬件架构名称。
-p: 打印处理器类型或“unknown”。
-i: 打印硬件平台信息或“unknown”。
-o: 打印操作系统信息。
例子:
uname -a ##打印系统全部信息
uname -r ##打印内核版本
uname -v ##打印系统发行版本
或cat /etc/issue
uname -p ##打印处理器型号
uname -m ##打印硬件架构
---mkfs: 用于创建文件系统,格式化指定的磁盘分区,
例如创建Ext2、Ext3、Ext4、XFS等文件系统。
参数:
-t <目录> :指定文件系统类型
-m #--mke2fs-conf <文件>:指定mke2fs.conf文件
-b <块大小> :指定文件系统块大小
-c :创建文件系统时进行检测
-l <文件> :指定坏块文件
-j :用ext3日志文件系统类型格式化
-J :指定日志参数
-m <保留块百分比> :保留给用户的块分比
-L <卷标>:设置文件系统卷标
-O <功能选项> :启用或禁用某些文件系统功能
-q :不显示mke2fs进度信息
-T <文件类型> :指定文件系统类型 (默认为ext2)。
例子:
#格式化/dev/sda1分区为ext4文件系统。
mkfs -t ext4 /dev/sda1
#格式化/dev/sdb1分区为ntfs文件系统。
mkfs -t ntfs /dev/sdb1
#格式化/dev/sdc1分区为fat32文件系统。
mkfs -t fat32 /dev/sdc1
#格式化/dev/sdf1分区为ext2文件系统。
mkfs.ext2 /dev/sdf1
#格式化/dev/sdg1分区为ext3文件系统。
mkfs.ext3 /dev/sdg1
#格式化/dev/sdh1分区为vfat文件系统。
mkfs.vfat /dev/sdh1
#格式化/dev/sdi1分区为cramfs文件系统。
mkfs.cramfs -F /dev/sdi1
#格式化/dev/sdj1分区为reiserfs文件系统。
mkfs.reiserfs /dev/sdj1
#将/dev/sda1格式化为ext4文件系统,并保留5%的空间供系统管理员使用。
mkfs.ext4 -m 5 /dev/sda1
#将/dev/sde1格式化为fat文件系统,并不保留空间供系统管理员使用。
mkfs.fat -m 0 /dev/sde1
##格式化分区,并指定block的大小为2048 Bytes
mke2fs -t ext4 -b 2048 /dev/sdb1
##创建一个vfat的文件系统,同时检查是否有坏轨存在
mkfs -V -t vfat -c /dev/hda5
补充说明:
mkswap: 把一个分区格式化成为swap交换区;
mkswap /dev/sda6 ##创建此分区为交换分区;
swapon /dev/sda6 ##加载交换分区;
swapon -s ##查看交换分区;
---fdisk: 用来管理磁盘分区的工具
参数:
-b: <分区大小> 指定每个分区的大小。
-l: 列出素所有分区表
-u: 与”-l”搭配使用,显示分区数目
-s: <分区编号> 将指定的分区大小输出到标准输出上,单位为区块。
菜单操作说明:
m :显示菜单和帮助信息
a :活动分区标记/引导分区
d :删除分区
l :显示分区类型
n :新建分区
p :显示分区信息
q :退出不保存
t :设置分区号
v :进行分区检查
w :保存修改
x :扩展应用,高级功能
例子:
sudo fdisk -lu ##显示当前分区情况,可查看插入的u盘或磁盘设备名称
sudo fdisk /dev/sdb ##选择磁盘,进行分区操作;
具体操作可见菜单操作相关的命令说明。
---lsusb: 显示系统中以及连接到系统的USB总线信息的工具.
显示本机的usb设备列表,可以显示出usb的详细信息,包括设备的读取速度和描述符
安装命令: apt-get install usbutils
参数:
-v, --verbose:显示USB设备的详细信息
-vv:显示USB设备的完整信息
-s:仅显示指定的总线和(或)设备号的设备
-d:仅显示指定厂商和产品编号的设备
-D:设备路径。不扫描/proc/bus/usb,而以指定的设备路径取代
-t, --tree:以树状结构显示物理USB设备的层次
-V, --version:显示命令的版本信息
例子:
lsusb -v ##查看本系统usb所有设备的详细信息
lsusb -t ##以树状结构显示无理USB设备的层次
lsusb -v -d 0bda: ##查看指定厂商的设备信息;
lsusb -s
ls /dev/bus/usb/ ##查看本机有几条usb总线;
==》001 002
---lspci: 用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息
安装命令:sudo apt-get install pciutils
参数:
-n: 以数字方式显示PCI厂商和设备代码
-t: 以树状结构显示PCI设备的层次关系
-b: 以总线为中心的视图
-s: 仅显示指定总线插槽的设备和功能块信息
-i: 指定PCI编号列表文件,不使用默认文件
-m: 以机器可读方式显示PCI设备信息
例子:
lspci ##显示当前主机的所有PCI总线信息
lspci -t ##以树状结构显示PCI设备的层次关系
lspci |grep VGA ##显示VGA pci总线信息
lspci -n ##以数字方式显示PCI厂商和设备代码
---bg / fg / jobs / ctrl+z: 可以用于调度正在运行的任务,并使程序在前台和后台之间切换
job参数:
-l:显示作业列表时包括进程号
-n:显示上次使用 jobs 命令后状态发生变化的作业
-p:仅显示作业对应的进程号
-r:仅显示运行中的作业
-s:仅显示已暂停的作业
例子:
jobs -l ##查看后台运行的进程 ;
fg ##将后台中的命令调至前台继续运行
bg ##将一个在后台暂停的命令,变成继续执行
ctrl+z ##将一个正在前台执行的命令放到后台,并且暂停
& ##把这个命令放到后台执行
本文暂时没有评论,来添加一个吧(●'◡'●)