Linux Shell指令碼攻略2 命令之樂(2)

2021-08-08 01:24:33 字數 2448 閱讀 8829

tr可以對來自標準輸入的內容進行字元替換、字元刪除以及重複字元壓縮。它可以將一組字元變成另一組字元,因而通常也被稱為轉換(translate)命令。

tr只能通過stdin,而無法通過命令列引數來接受輸入,其呼叫格式如下:

將輸入字元由大寫轉換成小寫

通過在tr中使用集合的概念,我們可以輕鬆地將字元從乙個集合對映到另乙個集合中。我們可以據此進行數字加密和解密

rot13是乙個著名的加密演算法,在rot13演算法中,文字加密和解密都使用同乙個函式。

tr還可以用來將製表符轉換成空格:

tr刪除字元

字符集補集

tr壓縮字元

字元類。tr可以像使用集合一樣使用各種不同的字元類,這些字元類如下所示:

檢驗和(checksum)程式用來從檔案中生成校驗和金鑰,然後利用這個校驗和金鑰核實檔案的完整性。

最知名且使用最為廣泛的校驗和技術是md5sum和sha-1,它們對檔案內容使用相應的演算法來生成校驗和。

md5sum

sha-1從給定的輸入檔案中生成乙個長度為40個字元的十六進製制串。用來計算sha-1串的命令是sha1sum,用法和md5sum非常相似。

對目錄進行校驗。校驗和是從檔案中計算得來的,對目錄計算校驗和意味著我們需要對目錄中的所有檔案以遞迴的方式進行計算。這可以通過命令md5deepsha1deep來實現。首先需要安裝md5deep軟體包以確保能找到這些命令。

$ md5deep -rl directory_path > directory.md5

# `-r`使用遞迴的方式

# `-l`使用相對路徑。預設情況下,`md5deep`會輸出檔案的絕對路徑。

或者結合find來遞迴計算校驗和:

$ find directory_path -type -f -print0 | xargs -0 md5sum >> directory.md5

$ md5sum -c directory.md5

加密技術主要用於防止資料遭受未經授權的訪問。常用的加密演算法有crypt、gpg、base64、md5sum、sha1sum以及openssl。

crypt是乙個簡單的加密工具,從stdin接受乙個檔案以及口令作為輸入,然後將加密資料輸出到stdout,因此要對輸入輸出檔案使用重定向。

如果需要解密檔案,可以使用:

gpg(gnu隱私保護)是一種應用廣泛的工具,它使用加密技術來保護檔案,以確保資料在送達目的地之前無法被讀取。

base64是一組相似的編碼方案,它將ascii字元轉換成以64為基數的形式(radix-64 representation),以可讀的ascii字串來描述二進位制資料。base64命令可以用來編碼/解碼base64字串。

或者或者

md5sum和sha1sum都是單向雜湊演算法,均無法逆推出原始資料,他們通常用於驗證資料完整性或為特定資料生成唯一的金鑰。

shadow-like雜湊(salt雜湊)。

sort命令能夠幫助我們對文字檔案和stdin進行排序操作,它通常會配合其他命令來生成所需要的輸出。

uniq是乙個經常與sort一同使用的命令。它的作用是從文字或stdin中提取唯一(或重複)的行。

對一組檔案進行排序

按照數字順序進行排序

按照逆序進行排序:

按照月份進行排序:

合併兩個已排序過的檔案:

找出已排序檔案中不重複的行:

檢查檔案是否已經排序過:

#!/bin/bash

# 功能描述:排序

sort -c filename ;

if [ $? -eq

0 ]; then

echo sorted;

else

echo unsorted;

fi

依據鍵或列進行排序:

uniq命令通過消除重複內容,從給定輸入中(stdin或命令列引數檔案)找出唯一的行。它也可以用來找出輸入中出現的重複行。

# 建立臨時檔案

$ filename=`mktemp`

$ echo $filename

# 建立臨時目錄

$ dirname=`mktemp -d`

$ echo $dirname

# 如果僅僅是想生成檔名,又不希望建立實際的檔案或目錄,如下:

$ tmpfile=`mktemp -u`

$ echo $tmpfile

# 根據母版建立臨時檔名

$ mktemp test.***

Linux Shell指令碼攻略(三)

一.find命令 1.根據檔名或正規表示式匹配搜尋 2.基於目錄深度的搜尋 maxdepth mindepth 3.根據檔案型別搜尋 4.根據檔案時間搜尋 atime 訪問時間 mtime 修改時間 ctime 變化時間 eg find type f atime 7 print 最近7天訪問的檔案 ...

linux shell指令碼攻略 一

變數數 算 重定向陣列 別名終端資訊 日期相關 除錯指令碼 函式和引數 管道命令 字段分隔符和迭代器 迴圈算術比較 檔案系統相關測試 字串比較 日期內容 格式星期 a 例如 sat a 例如 saturday 月 b 例如nov b 例如 november 日 d 例如31 固定格式日期 d 例如 ...

Linux Shell指令碼攻略筆記2之命令之樂

cat 檔案拼接 cat 1.txt 2.txt 擺脫多餘空白行 cat s ss.tst 或者tr cat ss.tst tr s n 顯示行號 n cat n ss.tst 錄屏 script t 2 timing.log a output.session exit結束 回放 scriptrep...