月度归档: 2022 年 12 月

  • systool命令 – 显示系统中设备的信息

    systool命令指令显示基于总线、类和拓扑显示系统中设备的信息。

    语法格式:systool [参数]

    常用参数:

    -a显示被请求资源的属性
    -b显示指定总线的信息
    -c显示指定类的信息
    -d仅显示设备
    -h显示指令的用法
    -m显示指定模块的信息

    参考实例

    显示系统中设备的信息:

    [root@jiloc ~]# systool
  • docker命令 – 管理应用容器引擎

    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命令 – 测试网络及主机的安全

    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命令 – 拷贝及转换文件

    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命令-添加行号

    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命令 – 文件分割

    split命令可以将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件 。

    语法格式:split [参数] [切割文件][文件名]

    常用参数:

    -b指定每多少字节切成一个小文件
    –help查看帮助信息
    –version显示版本信息
    -C与参数”-b”相似,但是在切 割时将尽量维持每行的完整性

    参考实例

    将文件”README”每6行切割成一个文件:

    [root@jiloc ~]# split -6 README 
  • dos2unix命令 – 将DOS格式的文本文件转换成UNIX格式

    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命令 – 查询与设置网卡参数

    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命令 – 修补文件

    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命令 – 载入模块

    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命令 – 文本和数据进行处理的编程语言

    awk命令来自于三位创始人”Alfred Aho,Peter Weinberger, Brian Kernighan “的姓氏缩写,其功能是用于对文本和数据进行处理的编程语言。使用awk命令可以让用户自定义函数或正则表达式对文本内容进行高效管理,与sed、grep并称为Linux系统中的文本三剑客。

    语法格式:awk 参数 文件

    常用参数:

    -F指定输入时用到的字段分隔符
    -v自定义变量
    -f从脚本中读取awk命令
    -m对val值设置内在限制

    内置变量:

    变量名称说明
    ARGC命令行参数个数
    ARGV命令行参数排列
    ENVIRON支持队列中系统环境变量的使用
    FILENAMEawk浏览的文件名
    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命令 – 压缩执行文件

    gzexe命令用来压缩可执行文件,压缩后的文件仍然为可执行文件,在执行时进行自动解压缩。当您去执行被压缩过的执行文件时,该文件会自动解压然后继续执行,和使用一般的执行文件相同。这个命令也可以看成是gunzip命令的一个扩展。

    语法格式:gzexe [参数] [文件]

    常用参数:

    -d解开压缩文件

    参考实例

    压缩可执行文件:

    [root@jiloc ~]# gzexe abc

    解压可执行文件:

    [root@jiloc ~]# gzexe -d test.sh
WeChat