介绍一些不常用但很有用的Linux命令

须弥零一

共 5983字,需浏览 12分钟

 · 2021-04-28

须弥零一

介绍一些不常用但很有用的Linux命令

本篇文章属于科普项的文章,没有太多的逻辑和概念。仅仅介绍一些平时可能不怎么用,但是如果你知道了就会给你带来效率的Linux命令。下面就开始本篇的愉快之旅吧。

pwdhash命令 – 密码哈希生成器

pwdhash 命令的作用是可以在LDIF密码字段中生产可以使用的密码哈希值。
哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。
在密码学中,hash算法的作用主要是用于消息摘要和签名,换句话说,它主要用于对整个消息的完整性进行校验。

Ubuntu 安装:

apt install 389-ds-base

语法格式:

pwdhash [参数] [密码]

常用参数:

参数描述
-H显示摘要信息
-s<算法>指定要使用的密码方案,比如MD5、SHA1、SHA256、SHA512、SSHA、SSHA256或SSHA512
-c<密码><密码2>对密码进行比较
-D<配置目录>从ns-slapd配置直接进入密码模式

示例:

1. 生成jeremysong的哈希值

root@hecs-x-medium-2-linux-20210331093135:~# pwdhash jeremysong{SSHA512}wYBjZ7l9dx7tyowIKCvUhei3hfCBVSyTpzmtJaVTCYQIGzGZHmDXOF6NGACowMN5xLun4hCajwj41vjyeAnmDVTUkefIEkOS

2. 生成jeremysong的MD5值

root@hecs-x-medium-2-linux-20210331093135:~# pwdhash -s md5 jeremysong{MD5}9C8jbapHNTOgANa9jKx7UA==

3. 对jeremysong和superjeremy的哈希值进行比较

root@hecs-x-medium-2-linux-20210331093135:~# pwdhash -c jeremysong superjeremypwdhash: password does not match.

lslogins命令 – 显示系统中现有用户的相关信息

lslogins 命令会展示出系统中现有用户的相关信息,-u 标记可用来标识只展示用户的账户。
该命令检查wtmp和btmp日志,/etc/shadow(如果需要)和 /etc/passwd并输出所需数据。

语法格式:

lslogins [参数]

常用参数:

参数描述
-a, --acc-expiration显示有关上次密码更改日期和账户到期日
--btmp-filebtmp的备用路径
-c, --colon-separate用冒号代替换行符
-e, --export以NAME=VALUE格式输出数据
-f, --failed显示有关用户上次失败登录尝试的数据
-G, --supp-groups显示有关补充组的信息
-L, --last显示包含有关用户上次登录会话的信息的数据
-l, --logins仅显示登录名(用户)中指定登录名的用户的数据名称或用户名)
-o, --output指定要打印的输出列
-p, --pwd显示与按密码登录相关的信息
-r, --raw原始输出(无列)
-u, --user-accs显示用户帐户

示例:

1. 展示出系统中现有用户的相关信息

root@hecs-x-medium-2-linux-20210331093135:~# lslogins -u rootUsername:                           root                                UID:                                0                                   Gecos field:                        root                                Home directory:                     /root                               Shell:                              /bin/bash                           No login:                           no                                  Password is locked:                 no                                  Password not required:              no                                  Login by password disabled:         no                                  Primary group:                      root                                GID:                                0                                   Last login:                         21:53                               Last terminal:                      pts/1                               Last hostname:                      222.91.167.174                      Failed login:                       10:46                               Failed login terminal:              ssh:notty                           Hushed:                             no                                  Password expiration warn interval:  7                                   Password changed:                   Mar31/08:00                         Maximum change time:                99999                               Running processes:                  81                                  Last logs:22:17 CRON[9450]: pam_unix(cron:session): session opened for user root by (uid=0)22:17 CRON[9451]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)22:17 CRON[9450]: pam_unix(cron:session): session closed for user root

factor命令 – 分解因数

factor 命令用于分解因数。
factor 是Ubuntu自带的分解质因数的指令,速度飞快。系统自带的 factor 没用 gmp,不支持2^128(大概40位)以上的数,如果自己编译coreutils 使其支持 gmp,就可以开始算任意位的数了。

语法格式:

factor [参数]

常用参数:

参数描述
number40位以内的整数
pf主因子方法
pcf主成分因子

示例:

1. 60的分解因数

root@hecs-x-medium-2-linux-20210331093135:~# factor 6060: 2 2 3 5

2. 1987的分解因数(没有返回更多因子,这是因为 1987 是一个 质数)

root@hecs-x-medium-2-linux-20210331093135:~# factor 10871087: 1087

3. 连续分解多个数字

root@hecs-x-medium-2-linux-20210331093135:~# factor 6060: 2 2 3 5100100: 2 2 5 510341034: 2 11 4710871087: 10877777: 7 11

jot命令 – 创建数字列表

jot 命令可以创建一系列数字。给定数字总数及起始数字即可。可帮助您根据您提供的值创建数字列表,作为起始编号和要在其后查看的值的数量。
通过 jot 执行计算的语法,并使用 jot 命令在Ubuntu命令行中执行高效数学运算。不过可能首先需要安装Athena-jot才能在Ubuntu上使用 jot 命令。

Ubuntu 安装:

apt install athena-jot

语法格式:

jot [参数]

常用参数:

参数描述
x打印x个数值
y数字y之后
z在数字y之后反转打印x个数字,直到数字z

示例:

1. 在数字2之后打印6个数值

root@hecs-x-medium-2-linux-20210331093135:~# jot 6 2234567

2. 在数字10之后反转打印8个数字,直到数字2

root@hecs-x-medium-2-linux-20210331093135:~# jot 8 10 2109875432

3. 从第1天(y值)开始打印12月份的9天(x值)

root@hecs-x-medium-2-linux-20210331093135:~# for i in `jot 9 1`; do echo December $i; doneDecember 1December 2December 3December 4December 5December 6December 7December 8December 9

shuf命令 – 产生随机的排列

shuf 命令将输入的内容随机排列并输出。 shuf 命令当没有文件或文件为-时,读取标准输入。

语法格式:

shuf [参数]

常用参数:

参数描述
-e将每个ARG视为输入行
-i将数字范围LO(最低)到HI(最高)之间的作为输入行
--help显示帮助信息并退出

示例:

1. 模拟硬币抛掷,获取前10个结果

root@hecs-x-medium-2-linux-20210331093135:~# shuf -r -n 10 -e "正面" -e "反面"正面反面反面反面正面反面正面正面反面反面

2. 模拟体彩超级大乐透

root@hecs-x-medium-2-linux-20210331093135:~# shuf -i 1-35 -n 5|sort -n && shuf -i 1-12 -n 2|sort -n121521252647

seq命令 – 打印数字序列

seq 命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式、宽度、分割符号进行控制。

语法格式:

seq [参数]

常用参数:



-f格式
-s字符串
-w在列前添加0 使得宽度相同

示例:

1. 产生5以内的整数

root@hecs-x-medium-2-linux-20210331093135:~# seq 512345

2. 产生98~101之间的整数,并且要求数字之间的分隔符为”:::”

root@hecs-x-medium-2-linux-20210331093135:~# seq -s ":::" -f "%03g" 98 101098:::099:::100:::101

bc命令 – 浮点运算

bc 的英文全拼为 “ Binary Calculator ”,是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而 bc 命令可以很方便的进行浮点运算,当然整数运算也不再话下。

语法格式:

bc [选项]

常用参数:



-i强制进入交互式模式
-l定义使用的标准数学库
-w定义使用的标准数学库
-q打印正常的GNU bc环境信息

示例:

1. 算术操作高级运算bc命令它可以执行浮点运算和一些高级函数

root@hecs-x-medium-2-linux-20210331093135:~# echo "1.212*3" | bc 3.636

2. 设定小数精度(数值范围)

root@hecs-x-medium-2-linux-20210331093135:~# echo "scale=2;3/8" | bc.37

3. 计算平方和平方根

root@hecs-x-medium-2-linux-20210331093135:~# echo "10^10" | bc10000000000root@hecs-x-medium-2-linux-20210331093135:~# echo "sqrt(100)" | bc10


---- END ----



欢迎关注我的公众号“须弥零一”,原创技术文章第一时间推送。


浏览 53
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报