相关命令工具
lsof
lsof - list open files,列出那些文件被启用了
lsof [ -?abChKlnNOPRtUvVX ] [ -A A ] [ -c c ] [ +c c ] [ +|-d d ] [ +|-D D ] [ +|-e s ] [ +|-f [cfgGn] ] [ -F [f] ] [ -g [s] ] [ -i [i] ] [ -k k ] [ +|-L [l] ] [ +|-m m ] [ +|-M ] [ -o [o] ] [ -p s ] [ +|-r [t[m<fmt>]] ] [ -s [p:s] ] [ -S [t] ] [ -T [t] ] [ -u s ] [ +|-w ] [ -x [fl] ] [ -z [z] ] [ -Z [Z] ] [ -- ] [names]
-?|-h 显示帮助
-a and或or选择
-b 避免内核阻碍
-c c cmd c ^c /c/[bix]
+c w COMMAND width (9)
+d s 目录 s 文件
-d s 被FD设置选择
+D D dir D tree *SLOW?*
+|-e s exempt s *RISKY*
-i select IPv[46] files
-K 列出任务(threads)
-l 列出uid
-n 不用主机名
-N 选择NFS文件
-o 列出文件offset
-O no overhead *RISKY*
-P no port names
-R list paRent PID
-s 列出文件尺寸
-t 简洁列表
-T 关闭 TCP/TPI 信息
-U 选择 Unix 套接字
-v 列出版本信息
-V 详细搜索
+|-w Warnings (+)
-X 跳过 TCP&UDP* 文件
-Z Z context [Z]
-- 末选项扫描
+f|-f +filesystem or -file names
+|-f[gG] flaGs
-F [f] select fields; -F? for help
+|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)
+m [m] use|create mount supplement
+|-M portMap registration (-)
-o o o 0t offset digits (8)
-p s exclude(^)|select PIDs
-S [t] t second stat timeout (15)
-T qs TCP/TPI Q,St (s) info
-g [s] exclude(^)|select and print process group IDs
-i i select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
+|-r [t[m<fmt>]] repeat every t seconds (15); + until no files, - forever.An optional suffix to t is m<fmt>,
m must separate t from <fmt> and <fmt> is an strftime(3) format for the marker line.
-s p:s exclude(^)|select protocol (p = TCP|UDP) states by name(s).
-u s exclude(^)|select login|UID set s
-x [fl] cross over +d|+D File systems or symbolic Links
names select named files or files on named file systems
例如
lsof MOUNT_POINT
sync
sync - flush file system buffers,强制同步,更新超级块
用法:
sync
mknod
mknod - make block or character special files
Create the special file NAME of the given TYPE.
mknod [options]... name type [major minor]
[options]
-m, --mode=MODE 设置文件权限给MODE, not a=rw - umask
-Z 设置 SELinux 安全上下文给默认类型
--context[=CTX] 如同 -Z, or 如果 CTX 被指定,设置 SELinux or SMACK安全上下文给CTX
[type]
b 创建一个块指定的文件(buffered)
c, u 创建一个字符指定文件 (unbuffered)
p 创建一个 FIFO
losetup
losetup - set up and control loop(环路) devices
losetup [options] [<loopdev>]
losetup [options] -f | <loopdev> <file>
-a, --all 列出所有使用的设备
-d, --detach <loopdev> [...] 分离一个或多个设备
-D, --detach-all 分离所有使用的设备
-f, --find 找到第一个不用的设备
-c, --set-capacity <loopdev> 重设设备
-j, --associated <file> 列出设备关联的文件<file>
-l, --list 列出所有或指定的信息
-o, --offset <num> start at offset <num> into file
-O, --output <cols> 指定输出的列, --list
--sizelimit <num> 设备限制为文件的<num> bytes
-P, --partscan 创建分区循环设备
-r, --read-only 安装只读循环设备
--show 在安装后显示设备名 (with -f)
Available --list columns:
NAME 环设备命令
AUTOCLEAR 自动清除标记设置
BACK-FILE 设备支持文件
BACK-INO 支持文件inode号
BACK-MAJ:MIN 支持文件major:minor 设备号
MAJ:MIN 环设备 major:minor 号
OFFSET 从开始处偏离
PARTSCAN partscan flag set
RO 只读设备
SIZELIMIT 采用bytes的文件尺寸限制
用法示例:
Get info:
losetup loopdev
losetup -l [-a]
losetup -j file [-o offset]
Delete loop:
losetup -d loopdev...
Delete all used loop devices:
losetup -D
Print name of first unused loop device:
losetup -f
Setup loop device:
losetup [-o offset] [--sizelimit size][-p pfd] [-rP] {-f[--show]|loopdev} file
Resize loop device:
losetup -c loopdev
uuidgen
uuidgen - create a new UUID value,创建新的uuid值
uuidgen [options]
-r, --random 产生基于随机数的uuid
-t, --time 产生基于时间的uuid
free
free - Display amount of free and used memory in the system,显示内存空间使用状态
free [options]
-b, --bytes 采用bytes显示
-k, --kilo 采用kilobytes显示
-m, --mega 以MB 为单位显示
-g, --giga 以GB 为单位显示
--tera 采用terabytes显示
-h, --human 使用人类可读的显示
--si 使用1000而不是1024的格式
-l, --lohi 显示低或高内存使用的状态
-t, --total 显示RAM + swap
-s N, --seconds N 重复打印每 N 秒
-c N, --count N 重复打印 N 时间然后退出
-w, --wide 广泛输出
在没有装好的系统时查看内存
cat /proc/meminfo
df
df - report file system disk space usage,查看文件系统空间占用信息
df [OPTION]... [FILE]...
-a或--all: 包含全部的文件系统;
--block-size=<区块大小>: 以指定的区块大小来显示区块数目;
-h或--human-readable: 以可读性较高的方式来显示信息;
-H或--si: 与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes: 显示inode的信息;
-k或--kilobytes: 指定区块大小为1024字节;
-l或--local: 仅显示本地端的文件系统;
-m或--megabytes: 指定区块大小为1048576字节;
--no-sync: 在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability: 使用POSIX的输出格式;
--sync: 在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>: 仅显示指定文件系统类型的磁盘信息;
-T或--print-type: 显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>: 不要显示指定文件系统类型的磁盘信息
du
du - estimate(预估)file space usage,查看某目录总体空间占用状态。
Summarize disk usage of each FILE, recursively for directories.
du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
-0, --null 以0字节而不是以换行符结束每个输出行
-a, --all 为所有文件计数,而不是只给目录计数
--apparent-size 打印当前尺寸而不是磁盘使用率
-B, --block-size=SIZE 以指定的SIZE来规范显示,e.g.,'-BM' prints sizes in units of 1,048,576 bytes;see SIZE format below
-b, --bytes 等价于 '--apparent-size --block-size=1'
-c, --total 显示总的统计
-D, --dereference-args 仅取消引用在命令行中的软链接
-d, --max-depth=N 显示一个目录的统计信息 (or file, with --all), --max-depth=0 is the same as --summarize
--files0-from=F 总结在文件F中的指定为NUL-terminated文件的磁盘使用率,如果F为-,则从标准输入中读取名称
-H 等价于--dereference-args (-D)
-h, --human-readable 以可读格式显示 (e.g., 1K 234M 2G)
--inodes 列出节点使用信息
-k 如同--block-size=1K
-L, --dereference 取消所有软链接
-l, --count-links 若是硬链接的话多次计算尺寸
-m 如同 --block-size=1M
-P, --no-dereference 不允许任何软链接
-S, --separate-dirs 不包括子目录的尺寸
--si 如同 -h, 但使用的是1000而不是1024
-s, --summarize 仅显示每个参数的汇总
-t, --threshold=SIZE 如果为正数,则排除小于SIZE的项,若为负载数则为大于SIZE的项
--time 显示在目录中任何文件或子目录最近修改的时间
--time=WORD 用WORD来代替修改时间atime, access, use, ctime or status来显示时间
--time-style=STYLE 用STYLE来显示时间,可以是:full-iso, long-iso, iso, or +FORMAT;FORMAT可理解为 'date'
-X, --exclude-from=FILE 排除任何匹配到的FILE的文件
--exclude=PATTERN 排除匹配到PATTERN的文件
-x, --one-file-system 在不同的文件系统中跳过目录
lscpu
lscpu - display information about the CPU architecture,查看cpu情况
lscpu [options]
-a, --all 显示在线或离线的cpu情况 (default for -e)
-b, --online 仅显示在线cpu (default for -p)
-c, --offline 仅显示离线cpu
-e, --extended[=<list>] 输出一个扩展的可读格式
-p, --parse[=<list>] 输出一个不变的格式
-s, --sysroot <dir> 使用指定的目录作为系统root
-x, --hex 以16进制掩码显示而不是列出cpu
Available columns:
CPU logical CPU number
CORE logical core number
SOCKET logical socket number
NODE logical NUMA node number
BOOK logical book number
CACHE shows how caches are shared between CPUs
POLARIZATION CPU dispatching mode on virtual hardware
ADDRESS physical address of a CPU
CONFIGURED shows if the hypervisor has allocated the CPU
ONLINE shows if Linux currently makes use of the CPU
查看cpu情况,用于无法使用命令的情况
cat /proc/cpuinfo
dd
dd - convert(转换)and copy a file
Copy a file, converting and formatting according to the operands.
dd [OPERAND]...
dd OPTION
用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=# : block size, 复制单元大小
count=# : 复制多少个bs
of=file 写到所命名的文件而不是到标准输出
if=file 从所命名文件读取而不是从标准输入
bs=size 指定块大小(既是是ibs 也是obs)
ibs=size 一次读size个byte
obs=size 一次写size个byte
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs 大小的块
seek=blocks 从开头忽略blocks个obs 大小的块
count=n 只拷贝n个记录
conv=conversion[,conversion...] 用指定的参数转换文件
转换参数:
ascii 转换 EBCDIC(十进制交换码)为ASCII
ebcdic 转换 ASCII为EBCDIC
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件
sync 把每个输入块填充到ibs 个字节,不足部分用空(NUL)字 字符补齐
备份MBR:
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MBR中的bootloader:
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
有一个大与2K 的二进制文件fileA 。现在想从第64 个字节位置开始读取,需要读取的大小是128Byts 。又有fileB, 想把上面读取到的128Bytes 写到第32 个字节开始的位置,替换128Bytes ,实现如下:
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
备份:
dd if=/dev/sdx of=/dev/sdy
将本地的/dev/sdx 整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/image
将/dev/sdx 全盘数据备份到指定路径的image 文件
dd if=/dev/sdx | gzip >/path/to/image.gz
备份/dev/sdx 全盘数据,并利用gzip 压缩,保存到指定路径
恢复:
dd if=/path/to/image of=/dev/sdx
将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
将压缩的备份文件恢复到指定盘
拷贝内存资料到硬盘
dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin 文件
从光盘拷贝iso 镜像
dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root 文件夹下,并保存为cd.iso 文件
销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行
得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size 大小
测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
测试硬盘读速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
修复硬盘
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1,2 年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生, 且这个过程是安全高效的
备份mbr分区表
恢复mbr分区表
convert
相当于window中的ps,由包ImageMagick-6.7.8.9-15.el7_2.x86_64提供
convert - convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.
convert [input-options] input-file [output-options] output-file
查看man了解更多配置选项