linux目前常用的命令总结

iostat的简单使用

iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。

显示本地所有设备的负载情况

1
2
3
4
5
6
7
8
9
10
11
12
iostat

Linux 3.10.0-957.27.2.el7.x86_64 (mon1) 2019年11月14日 _x86_64_ (1 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
1.29 0.00 0.93 0.03 0.00 97.75

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 6.95 72.93 164.26 34864916 78520152
sdb 0.00 0.01 0.00 6660 0
dm-0 5.29 55.27 155.12 26419805 74152752
dm-1 6.68 17.61 9.13 8416528 4365352

cpu的各个属性的说明

1
2
3
4
5
6
7
8
9
10
11
12
13
%user:CPU处在用户模式下的时间百分比。

%nice:CPU处在带NICE值的用户模式下的时间百分比。

%system:CPU处在系统模式下的时间百分比。

%iowait:CPU等待输入输出完成时间的百分比。

%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

%idle:CPU空闲时间百分比。

//如果%iowait值过高,则系统的磁盘io存在瓶颈

显示指定磁盘的信息

1
2
3
4
5
6
iostat -d /dev/sda

Linux 3.10.0-957.27.2.el7.x86_64 (mon1) 2019年11月14日 _x86_64_ (1 CPU)

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 6.95 72.92 164.24 34872580 78549270

显示tty和CPU的信息

1
2
3
4
5
6
7
8
9
10
11
12
iostat -t
Linux 3.10.0-957.27.2.el7.x86_64 (mon1) 2019年11月14日 _x86_64_ (1 CPU)

2019年11月14日 13时31分27秒
avg-cpu: %user %nice %system %iowait %steal %idle
1.29 0.00 0.93 0.03 0.00 97.75

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 6.95 72.91 164.22 34872708 78550420
sdb 0.00 0.01 0.00 6660 0
dm-0 5.29 55.25 155.09 26426397 74183020
dm-1 6.68 17.60 9.13 8417728 4365352

mount的简单使用

mount 命令用来挂载文件系统。其基本命令格式为:
mount -t type [-o options] device dir
device:指定要挂载的设备,比如磁盘、光驱等。
dir:指定把文件系统挂载到哪个目录。
type:指定挂载的文件系统类型,一般不用指定,mount 命令能够自行判断。
options:指定挂载参数,比如 ro 表示以只读方式挂载文件系统。

查看本机支持的文件系统

很多时候需要查看本机所支持的文件系统。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
cat /proc/filesystems

[root@ceph-node2 _posts]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev ramfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev tmpfs
nodev devtmpfs
nodev debugfs
nodev securityfs
nodev sockfs
nodev dax
nodev bpf
nodev pipefs
nodev anon_inodefs
nodev configfs
nodev devpts
nodev hugetlbfs
nodev autofs
nodev pstore
nodev mqueue
xfs
nodev rpc_pipefs
nodev overlay

第一列说明文件系统是否需要挂载在一个块设备上, nodev 表明后面的文件系统不需要挂接在块设备上。 第二列是内核支持的文件系统。

mount 的输出

1
2
3
4
mount

tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,size=186324k,mode=700,uid=42,gid=42)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=186324k,mode=700)

挂载的设备为 tmpfs,挂载点为 /run/user/42,文件系统的类型为 tmpfs。括号中的 rw 表示以可读写的方式挂载文件系统。

挂载磁盘

1
sudo mount /dev/sdb1 /mnt

挂载光驱

1
sudo mount /dev/cdrom /mnt

把只读的挂载改为读写模式

1
sudo mount /mnt -o rw, remount

xargs使用总结

xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令

命令的一般格式为:

1
somecommand |xargs -item  command

参数详解

-a file 从文件中读入作为sdtin
-e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。
-p 当每次执行一个argument的时候询问一次用户。
-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
-t 表示先打印命令,然后再执行。
-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
-r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。
-s num 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数。
-L num 从标准输入一次读取 num 行送给 command 命令。
-l 同 -L。
-d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。
-x exit的意思,主要是配合-s使用。。
-P 修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。

实例分析

删除ceph某个image的所有数据对象

1
[root@ceph-node2 ceph_client_cpp]# rados -p rbd ls | grep rbd_data.1e6ec4f0dcf5ed.* | xargs -n 200  rados -p rbd rm

解析

1
rados -p rbd ls | grep rbd_data.1e6ec4f0dcf5ed.*

该指令输出所有id为1e6ec4f0dcf5ed的数据对象

1
xargs -n 200

将200个输出作为参数赋值给后面的命令

1
rados -p rbd rm

删除 rbd的数据对象

blkid

blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、
UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。

查询系统的文件系统信息

1
blkid

查询某个磁盘的文件系统信息

1
blkid /dev/sda