systool命令指令显示基于总线、类和拓扑显示系统中设备的信息。
语法格式:systool [参数]
常用参数:
| -a | 显示被请求资源的属性 |
| -b | 显示指定总线的信息 |
| -c | 显示指定类的信息 |
| -d | 仅显示设备 |
| -h | 显示指令的用法 |
| -m | 显示指定模块的信息 |
参考实例
显示系统中设备的信息:
[root@jiloc ~]# systool
systool命令指令显示基于总线、类和拓扑显示系统中设备的信息。
语法格式:systool [参数]
常用参数:
| -a | 显示被请求资源的属性 |
| -b | 显示指定总线的信息 |
| -c | 显示指定类的信息 |
| -d | 仅显示设备 |
| -h | 显示指令的用法 |
| -m | 显示指定模块的信息 |
参考实例
显示系统中设备的信息:
[root@jiloc ~]# systool
docker命令的功能是用于管理应用容器引擎,可以让开发者们打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何主流的Linux系统之上,也可以用于实现虚拟化。
语法格式:docker [参数]
常用参数:
| ps | 显示状态为运行(Up)的容器 |
| cp | 从容器里向外拷贝文件或目录 |
| kill | 发送信号给容器,默认SIGKILL |
参考实例
关闭全部正在运行的容器:
[root@jiloc ~]# docker kill $(docker ps -q)
删除已经停止的容器:
[root@jiloc ~]# docker rm `docker ps -a -q`
登陆指定的容器系统中(con01):
[root@jiloc ~]# docker exec -it con01 /bin/bash
停止指定的容器系统(con01):
[root@jiloc ~]# docker stop con01
启动指定的容器系统(con01):
[root@jiloc ~]# docker start con01
hping3命令是用于生成和解析TCPIP协议数据包的开源工具,也是安全审计、防火墙测试等工作的标配工具 。
目前最新版是hping3,支持使用tcl脚本自动化地调用其API。优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机进行细致地探测。
语法格式:hping3 [参数]
常用参数:
| -c | 发送数据包的次数 |
| -m | 设置TCP序列数 |
| -v | 版本信息 |
| -I | 网卡接口 |
参考实例
对目标端口扫描:
[root@jiloc ~]# hping3 -I eth0 -S 192.168.10.1 -p 80
测试目标防火墙:
[root@jiloc ~]# hping3 -S -c 1000000 -a 10.10.10.10 -p 21 10.10.10.10
在发送端使用签名打包的ICMP包发送文件:
[root@jiloc ~]#hping3 192.168.1.108 --icmp -d 100 --sign signature --file /etc/passwd
很直观的看到TTL的变化:
[root@jiloc ~]# hping3 -z 192.168.0.107
使用随机地址伪装自己的地址:
[root@jiloc ~]# hping3 --rand-source 192.168.0.107
dd命令来自于英文词组“disk dump”的缩写,其功能是用于拷贝及转换文件。使用dd命令可以按照指定大小的数据块来拷贝文件,并在拷贝的过程中对内容进行转换。
语法格式:dd 参数 对象
常用参数:
| -v | 显示版本信息 |
| -h | 显示帮助信息 |
参考实例
生成一个指定大小(500M)的新文件:
[root@jiloc ~]# dd if=/dev/zero of=bigfile count=1 bs=500M 1+0 records in 1+0 records out 524288000 bytes (524 MB, 500 MiB) copied, 1.13337 s, 463 MB/s
拷贝指定文件的前50个字节:
[root@jiloc ~]# dd if=anaconda-ks.cfg of=ana.cfg count=1 bs=50 1+0 records in 1+0 records out 50 bytes copied, 0.000441764 s, 113 kB/s
拷贝指定文件的内容,并将所有字符转换成大写后输出到新文件中:
[root@jiloc ~]# dd if=anaconda-ks.cfg of=ana.cfg conv=ucase 2+1 records in 2+1 records out 1388 bytes (1.4 kB, 1.4 KiB) copied, 0.000234248 s, 5.9 MB/s
nl命令是一个很好用的编号过滤工具。该命令可以读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。
语法格式:nl [参数] [文件]
常用参数:
| -b | 指定行号指定的方式 |
| -n | 列出行号表示的方式 |
| -w | 行号栏位的占用的位数 |
| -p | 在逻辑定界符处不重新开始计算。 |
参考实例
用 nl 列出 log2.log 的内容:
[root@jiloc ~]# nl log2.log
用 nl 列出 log2.log 的内容,空本行也加上行号:
[root@jiloc ~]# nl -b a log2.log
让行号前面自动补上0,统一输出格式:
[root@jiloc ~]# nl -b a -n rz log2.log
空行不显示行号:
[root@jiloc ~]# nl -b t log2.log
添加的行号在右:
[root@jiloc~]# nl -n rn log2.log
split命令可以将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件 。
语法格式:split [参数] [切割文件][文件名]
常用参数:
| -b | 指定每多少字节切成一个小文件 |
| –help | 查看帮助信息 |
| –version | 显示版本信息 |
| -C | 与参数”-b”相似,但是在切 割时将尽量维持每行的完整性 |
参考实例
将文件”README”每6行切割成一个文件:
[root@jiloc ~]# split -6 README
dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以rn作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以n作为断行标志的,表示成十六进制就是0A。
DOS格式的文本文件在Linux下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件。如果是个shell脚本,而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。
语法格式:dos2unix [参数] [文件]
常用参数:
| -k | 保持输出文件的日期不变 |
| -q | 安静模式,不提示任何警告信息 |
| -V | 查看版本 |
| -c | 转换模式:ASCII 7bit ISO Mac |
| -o | 写入到源文件 |
| -n | 写入到新文件 |
参考实例
最简单的用法就是dos2unix直接跟上文件名:
[root@jiloc ~]# dos2unix file
如果一次转换多个文件,把这些文件名直接跟在dos2unix之后。(注:也可以加上-o参数,也可以不加,效果一样)
[root@jiloc ~]# dos2unix file1 file2 file3 [root@jiloc ~]# dos2unix -o file1 file2 file3
上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用-n参数。
[root@jiloc ~]# dos2unix -n oldfile newfile
如果要保持文件时间戳不变,加上-k参数。所以上面几条命令都是可以加上-k参数来保持文件时间戳的。
[root@jiloc ~]# dos2unix -k file [root@jiloc ~]# dos2unix -k file1 file2 file3 [root@jiloc ~]# dos2unix -k -o file1 file2 file3 [root@jiloc ~]# dos2unix -k -n oldfile newfile
ethtool命令用于查询ethX网口基本设置、及设置网卡的参数。
语法格式:ethtool [参数]
常用参数:
| -i | 显示网卡驱动的信息 |
| -E | 修改网卡只读存储器字节 |
| -K | 修改网卡 Offload 的状态 |
| ethx | 查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等 |
| -s | 修改网卡的部分配置 |
| -t | 让网卡执行自我检测 |
参考实例
查询网口基本设置:
[root@jiloc ~]# ethtool eth0
查询网口的驱动相关信息:
[root@jiloc ~]# ethtool -i eth0 driver: e1000 version: 7.3.21-k8-NAPI firmware-version:
设置网口工作方式:
[root@jiloc ~]# ethtool -s eth0 autoneg off speed 100 duplex full [root@jiloc ~]# ethtool eth0
查看网卡,在接收/发送数据时,有没有出错 :
[root@jiloc ~]# ethtool -S eth0
停止网卡的发送模块TX:
[root@jiloc ~]# ethtool -A tx off eth0
patch命令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一 。
语法格式:patch [参数]
常用参数:
| -b | 备份每一个原始文件 |
| -B | 设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称 |
| -c | 把修补数据解译成关联性的差异 |
| -d | 设置工作目录 |
| -D | 用指定的符号把改变的地方标示出来 |
| -e | 把修补数据解译成ed指令可用的叙述文件 |
| -E | 若修补过后输出的文件其内容是一片空白,则移除该文件 |
| -f | 此参数的效果和指定”-t”参数类似,但会假设修补数据的版本为新版本 |
| -F | 设置监别列数的最大值 |
| -g | 设置以RSC或SCCS控制修补作业 |
| -i | 读取指定的修补文件 |
| -l | 忽略修补数据与输入数据的跳格,空格字符 |
| -n | 把修补数据解译成一般性的差异 |
| -N | 忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使 用过 |
| -o | 设置输出文件的名称,修补过的文件会以该名称存放 |
| -p | 设置欲剥离几层路径名称 |
| -f | 设置保存拒绝修补相关信息的文件名称,预设的文件名称为.rej |
| -R | 假设修补数据是由新旧文件交换位置而产生 |
| -s | 不显示指令执行过程,除非发生错误 |
| -t | 自动略过错误,不询问任何问题 |
| -T | 此参数的效果和指定”-Z”参数类似,但以本地时间为主 |
| -u | 把修补数据解译成一致化的差异 |
| -v | 显示版本信息 |
| -V | 用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用”-z”参数变更,当使用”-V”参数指定不同备份方式时,也会产生不同字尾的备份字符串 |
| -Y | 设置文件备份时,附加在文件基本名称开头的字首字符串 |
| -z | 此参数的效果和指定”-B”参数类似,差别在于修补作业使用的路径与文件名若为src/linux/fs/super.c,加上”backup/”字符串后,文件super.c会备份于/src/linux/fs/backup目录里 |
| -Z | 把修补过的文件更改,存取时间设为UTC |
| –backup-if-mismatch | 在修补数据不完全吻合,且没有刻意指定要备份文件时,才备份文件 |
| –binary | 以二进制模式读写数据,而不通过标准输出设备 |
| –help | 查看帮助信息 |
| –nobackup-if-mismatch | 在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件 |
| –verbose | 详细显示指令的执行过程 |
参考实例
使用patch指令将文件”file1″升级,其升级补丁文件为”file.patch”:
[root@jiloc ~]# patch -p0 file1 file.patch
使用patch来应用补丁:
[root@jiloc ~]# patch -p0 < foo.patch
insmod命令用于将给定的模块加载到内核中。
Linux有许多功能是通过模块的方式,在需要时才载入kernel。如此可使kernel较为精简,进而提高效率,以及保有较大的弹性。这类可载入的模块,通常是设备驱动程序。
语法格式:insmod [参数]
常用参数:
| -f | 不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入 |
| -k | 将模块设置为自动卸除 |
| -m | 输出模块的载入信息 |
| -o | 指定模块的名称,可使用模块文件的文件名 |
| -p | 测试模块是否能正确地载入kernel |
| -s | 将所有信息记录在系统记录文件中 |
| -v | 执行时显示详细的信息 |
| -x | 不要汇出模块的外部符号 |
| -X | 汇出模块所有的外部符号,此为预设置 |
参考实例
加载RAID1阵列级别模块,如下所示:
[root@jiloc ~]# insmod /lib/modules/2.6.
awk命令来自于三位创始人”Alfred Aho,Peter Weinberger, Brian Kernighan “的姓氏缩写,其功能是用于对文本和数据进行处理的编程语言。使用awk命令可以让用户自定义函数或正则表达式对文本内容进行高效管理,与sed、grep并称为Linux系统中的文本三剑客。
语法格式:awk 参数 文件
常用参数:
| -F | 指定输入时用到的字段分隔符 |
| -v | 自定义变量 |
| -f | 从脚本中读取awk命令 |
| -m | 对val值设置内在限制 |
内置变量:
| 变量名称 | 说明 |
| ARGC | 命令行参数个数 |
| ARGV | 命令行参数排列 |
| ENVIRON | 支持队列中系统环境变量的使用 |
| FILENAME | awk浏览的文件名 |
| FNR | 浏览文件的记录数 |
| FS | 设置输入域分隔符,等价于命令行 -F选项 |
| NF | 浏览记录的域的个数 |
| NR | 已读的记录数 |
| OFS | 输出域分隔符 |
| ORS | 输出记录分隔符 |
| RS | 控制记录分隔符 |
参考实例
仅显示指定文件中第1、2列的内容(默认以空格为间隔符):
[root@jiloc ~]# awk ' {print $1,$2} ' anaconda-ks.cfg
#version=RHEL8 ignoredisk --only-use=sda autopart --type=lvm # Partition clearpart --none ………………省略部分输出信息………………以冒号为间隔符,仅显示指定文件中第1列的内容:
[root@jiloc ~]# awk -F : '{print $1}' /etc/passwd
root bin daemon adm lp sync shutdown
………………省略部分输出信息………………以冒号为间隔符,显示系统中所有UID号码大于500的用户信息(第3列):
[root@jiloc ~]# awk -F : '$3>=500' /etc/passwd nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin geoclue:x:997:995:User for geoclue:/var/lib/geoclue:/sbin/nologin ………………省略部分输出信息………………
仅显示指定文件中含有指定关键词root的内容:
[root@jiloc ~]# awk '/root/{print}' anaconda-ks.cfg
rootpw --iscrypted $6$n9sZuTcY8Yzk4l.Q$LsuMNAROewyx.LomDtPpL9iJIOD3tsRThnzsAGE0hZXLMtdVCHVQ3pxzm3El8K2kuhcYLXJnhz.xUDGiE27s/1 pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty以冒号为间隔符,仅显示指定文件中最后一个字段的内容:
[root@jiloc ~]# awk -F: '{print $NF}' /etc/passwd
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/bin/sync
………………省略部分输出信息………………gzexe命令用来压缩可执行文件,压缩后的文件仍然为可执行文件,在执行时进行自动解压缩。当您去执行被压缩过的执行文件时,该文件会自动解压然后继续执行,和使用一般的执行文件相同。这个命令也可以看成是gunzip命令的一个扩展。
语法格式:gzexe [参数] [文件]
常用参数:
| -d | 解开压缩文件 |
参考实例
压缩可执行文件:
[root@jiloc ~]# gzexe abc
解压可执行文件:
[root@jiloc ~]# gzexe -d test.sh