【shell】使用shell生成包含大寫、小寫、數(shù)字、特殊字符的隨機(jī)字符串

一、關(guān)于fold命令

你有沒有發(fā)現(xiàn)自己在某種情況下想要折疊或中斷命令的輸出,以適應(yīng)特定的寬度?

在運(yùn)行虛擬機(jī)的時(shí)候,特別是沒有 GUI 的服務(wù)器。 以防萬一,如果你想限制一個(gè)命令的輸出為一個(gè)特定的寬度, fold 命令在這里就能派的上用場了!?

fold 命令會(huì)以適合指定的寬度調(diào)整輸入文件中的每一行,并將其打印到標(biāo)準(zhǔn)輸出。

# fold --help

# which fold

# rpm -qf /usr/bin/fold

# yum info coreutils

二、關(guān)于tr命令

通過使用 tr,你可以非常容易地實(shí)現(xiàn) sed 的許多最基本功能。

你可以將 tr 看作為 sed 的(極其)簡化的變體:它可以用一個(gè)字符來替換另一個(gè)字符,或者可以完全除去一些字符,也可以用它來除去重復(fù)字符。

tr用來從標(biāo)準(zhǔn)輸入中通過替換或刪除操作進(jìn)行字符轉(zhuǎn)換。

tr主要用于刪除文件中控制字符或進(jìn)行字符轉(zhuǎn)換。

使用tr時(shí)要轉(zhuǎn)換兩個(gè)字符串:字符串1用于查詢,字符串2用于處理各種轉(zhuǎn)換。

tr剛執(zhí)行時(shí),字符串1中的字符被映射到字符串2中的字符,然后轉(zhuǎn)換操作開始。

1、去除重復(fù)的字符

將連續(xù)的幾個(gè)相同字符壓縮為一個(gè)字符 ,注意只能是連續(xù)的字符。

# 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、大小寫相互轉(zhuǎn)換

將語句中所有的小寫字母變成大寫字母,其中-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進(jìn)行補(bǔ)集的替換

# echo 172.16.30.141|tr -dc . ; echo

三、利用Linux隨機(jī)產(chǎn)生含大小寫字母、數(shù)字、特殊字符的密碼

#??</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系統(tǒng)產(chǎn)生隨機(jī)數(shù)/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生成隨機(jī)密碼

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


將語句中所有的小寫字母變成大寫字母,其中-t可省略

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容