【shell】使用shell生成包含大写、小写、数字、特殊字符的随机字符串

一、关于fold命令

你有没有发现自己在某种情况下想要折叠或中断命令的输出,以适应特定的宽度?

在运行虚拟机的时候,特别是没有 GUI 的服务器。 以防万一,如果你想限制一个命令的输出为一个特定的宽度, fold 命令在这里就能派的上用场了! 

fold 命令会以适合指定的宽度调整输入文件中的每一行,并将其打印到标准输出。

# fold --help

# which fold

# rpm -qf /usr/bin/fold

# yum info coreutils

 

二、关于tr命令

通过使用 tr,你可以非常容易地实现 sed 的许多最基本功能。

你可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符,也可以用它来除去重复字符。

tr用来从标准输入中通过替换或删除操作进行字符转换。

tr主要用于删除文件中控制字符或进行字符转换。

使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。

tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。

1、去除重复的字符

将连续的几个相同字符压缩为一个字符 ,注意只能是连续的字符。

# echo aabbccddeeff | tr -s [a-z]

# echo aabbccddeeff | tr -s  'a-z'

# echo aabbccddeeff112233 | tr -s 'a-z-0-9'

# echo aabbccddeeff112233 | tr -s [a-z-0-9]

2、删除空白行

删除空白行就是删除换行符/n   注意这些空白行上只有回车符,没有空格符 

3、大小写相互转换

将语句中所有的小写字母变成大写字母,其中-t可省略

# echo "Hello World I Love You" |tr -t [a-z] [A-Z]

# echo "Hello World I Love You" |tr -t 'a-z' 'A-Z'

# echo "Hello World I Love You" |tr 'a-z' 'A-Z'

# echo "Hello World I Love You" |tr [a-z] [A-Z]

 

4、删除指定的字符

5、利用-c进行补集的替换

# echo 172.16.30.141|tr -dc . ; echo

三、利用Linux随机产生含大小写字母、数字、特殊字符的密码

#  </dev/urandom  tr -dc   'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~'  |  head -c 15 ; echo

# tr -dc   'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~'   </dev/urandom | head -c 15; echo

 

四、参考

 

如何使用Linux的fold命令来限制文件列宽

https://www.linuxprobe.com/fold-linux.html

https://m.yisu.com/zixun/233025.html

 

/dev/random 维基百科

https://zh.wikipedia.org/wiki//dev/random

/dev/urandom 不得不说的故事

http://tinylab.org/myths-about-urandom

Linux系统产生随机数/dev/random 和 /dev/urandom

https://www.cnblogs.com/zhouhbing/p/5820899.html

Secure Random Password Generator

http://www.csgnetwork.com/randpassgen.html

 

How to generate a random string?

https://unix.stackexchange.com/questions/230673/how-to-generate-a-random-string

https://stackoverflow.com/questions/30947873/generate-random-passwords-in-shell-with-one-special-character

https://www.howtogeek.com/howto/30184/10-ways-to-generate-a-random-password-from-the-command-line

 

 

Shell生成随机密码

https://www.cnblogs.com/so-cool/p/9951629.html

https://blog.csdn.net/lmzf2011/article/details/92767883

https://pwdpwd.com/post/generate-random-string

 

Shell 编程从入门到放弃

https://zhenye-na.github.io/2019/11/13/shell-scripting-from-beginner-to-expert.html

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值