介绍一些不常用但很有用的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 superjeremypwdhash: 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 rootUsername: rootUID: 0Gecos field: rootHome directory: /rootShell: /bin/bashNo login: noPassword is locked: noPassword not required: noLogin by password disabled: noPrimary group: rootGID: 0Last login: 21:53Last terminal: pts/1Last hostname: 222.91.167.174Failed login: 10:46Failed login terminal: ssh:nottyHushed: noPassword expiration warn interval: 7Password changed: Mar31/08:00Maximum change time: 99999Running processes: 81Last 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 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:~# factor6060: 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" | bc3.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
欢迎关注我的公众号“须弥零一”,原创技术文章第一时间推送。
评论
