暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

须弥零一 2021-04-26
812

须弥零一

介绍一些不常用但很有用的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 superjeremy
pwdhash: 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 root
Username: 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 60
60: 2 2 3 5

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

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

3. 连续分解多个数字

root@hecs-x-medium-2-linux-20210331093135:~# factor 
60
60: 2 2 3 5
100
100: 2 2 5 5
1034
1034: 2 11 47
1087
1087: 1087
77
77: 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 2
2
3
4
5
6
7

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

root@hecs-x-medium-2-linux-20210331093135:~# jot 8 10 2
10
9
8
7
5
4
3
2

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

root@hecs-x-medium-2-linux-20210331093135:~# for i in `jot 9 1`; do echo December $i; done
December 1
December 2
December 3
December 4
December 5
December 6
December 7
December 8
December 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 -n
12
15
21
25
26
4
7

seq命令 – 打印数字序列

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

语法格式:

seq [参数]

常用参数:



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

示例:

1. 产生5以内的整数

root@hecs-x-medium-2-linux-20210331093135:~# seq 5
1
2
3
4
5

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

root@hecs-x-medium-2-linux-20210331093135:~# seq -s ":::" -f "%03g" 98 101
098:::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" | bc
10000000000
root@hecs-x-medium-2-linux-20210331093135:~# echo "sqrt(100)" | bc
10


---- END ----



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


文章转载自须弥零一,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论