介绍一些不常用但很有用的Linux命令
介绍一些不常用但很有用的Linux命令
pwdhash命令 – 密码哈希生成器
pwdhash
命令的作用是可以在LDIF密码字段中生产可以使用的密码哈希值。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
标记可用来标识只展示用户的账户。语法格式:
lslogins [参数]
常用参数:
参数 | 描述 |
-a, --acc-expiration | 显示有关上次密码更改日期和账户到期日 |
--btmp-file | btmp的备用路径 |
-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 [参数]
常用参数:
参数 | 描述 |
number | 40位以内的整数 |
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
欢迎关注我的公众号“须弥零一”,原创技术文章第一时间推送。
评论