從命令列輕鬆將文字片段上傳到類似 Pastebin 的服務中

2019-12-19 09:51:00

每當需要線上共用程式碼片段時,我們想到的第一個便是 Pastebin.com,這是 Paul Dixon 於 2002 年推出的線上文字共用網站。現在,有幾種可供選擇的文字共用服務可以上傳和共用文字片段、錯誤紀錄檔、組態檔、命令輸出或任何型別的文字檔案。如果你碰巧經常使用各種類似於 Pastebin 的服務來共用程式碼,那麼這對你來說確實是個好訊息。向 Wgetpaste 打個招呼吧,它是一個命令列 BASH 實用程式,可輕鬆地將文字摘要上傳到類似 Pastebin 的服務中。使用 Wgetpaste 指令碼,任何人都可以與自己的朋友、同事或想在類似 Unix 的系統中的命令列中檢視/使用/審查程式碼的人快速共用文字片段。

安裝 Wgetpaste

Wgetpaste 在 Arch Linux [Community] 儲存庫中可用。要將其安裝在 Arch Linux 及其變體(如 Antergos 和 Manjaro Linux)上,只需執行以下命令:

$ sudo pacman -S wgetpaste

對於其他發行版,請從 Wgetpaste 網站 獲取原始碼,並按如下所述手動安裝。

首先下載最新的 Wgetpaste tar 檔案:

$ wget http://wgetpaste.zlin.dk/wgetpaste-2.28.tar.bz2

提取它:

$ tar -xvjf wgetpaste-2.28.tar.bz2

它將 tar 檔案的內容提取到名為 wgetpaste-2.28 的資料夾中。

轉到該目錄:

$ cd wgetpaste-2.28/

wgetpaste 二進位制檔案複製到 $PATH 中,例如 /usr/local/bin/

$ sudo cp wgetpaste /usr/local/bin/

最後,使用命令使其可執行:

$ sudo chmod +x /usr/local/bin/wgetpaste

將文字片段上傳到類似 Pastebin 的服務中

使用 Wgetpaste 上傳文字片段很簡單。讓我向你展示一些範例。

1、上傳文字檔案

要使用 Wgetpaste 上傳任何文字檔案,只需執行:

$ wgetpaste mytext.txt

此命令將上傳 mytext.txt 檔案的內容。

範例輸出:

Your paste can be seen here: https://paste.pound-python.org/show/eO0aQjTgExP0wT5uWyX7/

你可以通過郵件、簡訊、whatsapp 或 IRC 等任何媒體共用 pastebin 的 URL。擁有此 URL 的人都可以存取它,並在他們選擇的 Web 瀏覽器中檢視文字檔案的內容。

這是 Web 瀏覽器中 mytext.txt 檔案的內容:

你也可以使用 tee 命令顯示貼上的內容,而不是盲目地上傳它們。

為此,請使用如下的 -t 選項。

$ wgetpaste -t mytext.txt

2、將文字片段上傳到其他服務

預設情況下,Wgetpaste 會將文字片段上傳到 poundpython(https://paste.pound-python.org/)服務。

要檢視支援的服務列表,請執行:

$ wgetpaste -S

範例輸出:

Services supported: (case sensitive):Name: | Url:=============|=================bpaste | https://bpaste.net/codepad | http://codepad.org/dpaste | http://dpaste.com/gists | https://api.github.com/gists*poundpython | https://paste.pound-python.org/

在這裡,* 表示預設服務。

如你所見,Wgetpaste 當前支援五種文字共用服務。我並沒有全部嘗試,但是我相信所有服務都可以使用。

要將內容上傳到其他服務,例如 bpaste.net,請使用如下所示的 -s 選項。

$ wgetpaste -s bpaste mytext.txtYour paste can be seen here: https://bpaste.net/show/5199e127e733

3、從標準輸入讀取輸入

Wgetpaste 也可以從標準輸入讀取。

$ uname -a | wgetpaste

此命令將上傳 uname -a 命令的輸出。

4、上傳命令及命令的輸出

有時,你可能需要貼上命令及其輸出。為此,請在如下所示的引號內指定命令的內容。

$ wgetpaste -c 'ls -l'

這會將命令 ls -l 及其輸出上傳到 pastebin 服務。

當你想讓其他人清楚地知道你剛執行的確切命令及其輸出時,此功能很有用。

如你在輸出中看到的,我執行了 ls -l 命令。

5、上載系統紀錄檔檔案、組態檔

就像我已經說過的,我們可以上載你的系統中任何型別的文字檔案,而不僅僅是普通的文字檔案,例如紀錄檔檔案、特定命令的輸出等。例如,你剛剛更新了 Arch Linux 機器,最後系統損壞了。你問你的同事該如何解決此問題,他(她)想閱讀 pacman.log 檔案。 這是上傳 pacman.log 檔案內容的命令:

$ wgetpaste /var/log/pacman.log

與你的同事共用 pastebin URL,以便他/她可以檢視 pacman.log,並通過檢視紀錄檔檔案來幫助你解決問題。

通常,紀錄檔檔案的內容可能太長,你不希望全部共用它們。在這種情況下,只需使用 cat 命令讀取輸出,然後使用 tail -n 命令定義要共用的行數,最後將輸出通過管道傳遞到 Wgetpaste,如下所示。

$ cat /var/log/pacman.log | tail -n 50 | wgetpaste

上面的命令將僅上傳 pacman.log 檔案的“最後 50 行”。

6、將輸入網址轉換為短連結

預設情況下,Wgetpaste 將在輸出中顯示完整的 pastebin URL。如果要將輸入 URL 轉換為短連結,只需使用 -u 選項。

$ wgetpaste -u mytext.txtYour paste can be seen here: http://tinyurl.com/y85d8gtz

7、設定語言

預設情況下,Wgetpaste 將上傳“純文字”中的文字片段。

要列出指定服務支援的語言,請使用 -L 選項。

$ wgetpaste -L

該命令將列出預設服務(poundpython https://paste.pound-python.org/)支援的所有語言。

我們可以使用 -l 選項來改變它。

$ wgetpaste -l Bash mytext.txt

8、在輸出中禁用語法突出顯示或 html

如上所述,文字片段將以特定的語言格式(純文字、Bash 等)顯示。

但是,你可以更改此行為,以使用 -r 選項顯示原始文字摘要。

$ wgetpaste -r mytext.txtYour raw paste can be seen here: https://paste.pound-python.org/raw/CUJhQ3jEmr2UvfmD2xCL/

如你在上面的輸出中看到的,沒有語法突出顯示,沒有 html 格式。只是原始輸出。

9、更改 Wgetpaste 預設值

所有預設值(DEFAULT_{NICK,LANGUAGE,EXPIRATION}[_${SERVICE}]DEFAULT_SERVICE)都可以在 /etc/wgetpaste.conf 中全域性更改,也可以在 ~/.wgetpaste.conf 檔案中針對每個使用者更改。但是,這些檔案在我的系統中預設情況下並不存在。我想我們需要手動建立它們。開發人員已經在這裡這裡為這兩個檔案提供了範例內容。只需使用給定的樣本內容手動建立這些檔案,並相應地修改引數即可更改 Wgetpaste 的預設設定。

10、獲得幫助

要顯示幫助部分,請執行:

$ wgetpaste -h